diff options
Diffstat (limited to 'doc')
43 files changed, 778 insertions, 517 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index d2554349d01..be906fd96fb 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog | |||
| @@ -1,10 +1,67 @@ | |||
| 1 | 2013-03-16 Glenn Morris <rgm@gnu.org> | 1 | 2013-06-02 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 2 | ||
| 3 | * emacs.texi (Top): Add some stuff specific to www.gnu.org. | 3 | * cmdargs.texi (General Variables): Use "unix:path=/dev/null" as |
| 4 | dummy value for $DBUS_SESSION_BUS_ADDRESS. It also suppresses | ||
| 5 | autolaunching of the D-Bus session bus. | ||
| 6 | |||
| 7 | 2013-06-03 Juri Linkov <juri@jurta.org> | ||
| 8 | |||
| 9 | * display.texi (Highlight Interactively): Add global keybindings | ||
| 10 | with the key prefix `M-s h'. Document old command `highlight-phrase'. | ||
| 11 | Document new command `highlight-symbol-at-point'. | ||
| 12 | |||
| 13 | 2013-06-01 Glenn Morris <rgm@gnu.org> | ||
| 14 | |||
| 15 | * programs.texi (Semantic): Fix typo. | ||
| 16 | |||
| 17 | 2013-05-30 Xue Fuqiao <xfq.free@gmail.com> | ||
| 18 | |||
| 19 | * maintaining.texi (Types of Log File): Supplement some | ||
| 20 | information of change log files. | ||
| 21 | |||
| 22 | 2013-05-15 Juri Linkov <juri@jurta.org> | ||
| 23 | |||
| 24 | * search.texi (Repeat Isearch): Mention key `RET' to finish | ||
| 25 | editing the string. (Bug#13348) | ||
| 26 | |||
| 27 | 2013-05-14 Glenn Morris <rgm@gnu.org> | ||
| 28 | |||
| 29 | * ack.texi (Acknowledgments): Don't mention obsolete sup-mouse.el. | ||
| 30 | |||
| 31 | 2013-05-09 Glenn Morris <rgm@gnu.org> | ||
| 32 | |||
| 33 | * sending.texi (Mail Sending): Fix typo. | ||
| 34 | |||
| 35 | * windows.texi (Change Window): Fix typo. | ||
| 36 | |||
| 37 | * custom.texi (Changing a Variable): Fix typo. | ||
| 38 | |||
| 39 | * trouble.texi (Contributing): Remove obsolete info re pretesters. | ||
| 40 | |||
| 41 | 2013-05-05 Paul Eggert <eggert@cs.ucla.edu> | ||
| 42 | |||
| 43 | `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273). | ||
| 44 | * cmdargs.texi (Initial Options): | ||
| 45 | * files.texi (Customize Save): Document this. | ||
| 46 | |||
| 47 | 2013-05-04 Glenn Morris <rgm@gnu.org> | ||
| 48 | |||
| 49 | * calendar.texi (Importing Diary): Mention diary-from-outlook-function. | ||
| 50 | |||
| 51 | 2013-03-17 Paul Eggert <eggert@cs.ucla.edu> | ||
| 52 | |||
| 53 | doc: convert some TeX accents to UTF-8 | ||
| 54 | * ack.texi (Acknowledgments): | ||
| 55 | * emacs.texi (Acknowledgments): | ||
| 56 | Convert some TeX accents (e.g., '@l{}') to UTF-8 (e.g., 'ł'). | ||
| 57 | Apparently the TeX accents cause problems when generating gnu.org | ||
| 58 | web pages, e.g., @l{} is rendered as '/l' on | ||
| 59 | <http://www.gnu.org/software/emacs/manual/html_node/ | ||
| 60 | emacs/Acknowledgments.html>. | ||
| 4 | 61 | ||
| 5 | 2013-03-16 Glenn Morris <rgm@gnu.org> | 62 | 2013-03-16 Glenn Morris <rgm@gnu.org> |
| 6 | 63 | ||
| 7 | * Version 24.3 released. | 64 | * emacs.texi (Top): Add some stuff specific to www.gnu.org. |
| 8 | 65 | ||
| 9 | 2013-03-04 Paul Eggert <eggert@cs.ucla.edu> | 66 | 2013-03-04 Paul Eggert <eggert@cs.ucla.edu> |
| 10 | 67 | ||
diff --git a/doc/emacs/ack.texi b/doc/emacs/ack.texi index 439e2a09cae..92874ad6276 100644 --- a/doc/emacs/ack.texi +++ b/doc/emacs/ack.texi | |||
| @@ -166,7 +166,7 @@ David M. Brown wrote @file{array.el}, for editing arrays and other | |||
| 166 | tabular data. | 166 | tabular data. |
| 167 | 167 | ||
| 168 | @item | 168 | @item |
| 169 | W@l{}odek Bzyl and Ryszard Kubiak wrote @file{ogonek.el}, a package for | 169 | Włodek Bzyl and Ryszard Kubiak wrote @file{ogonek.el}, a package for |
| 170 | changing the encoding of Polish characters. | 170 | changing the encoding of Polish characters. |
| 171 | 171 | ||
| 172 | @item | 172 | @item |
| @@ -605,7 +605,7 @@ files and running a PostScript interpreter interactively from within | |||
| 605 | Emacs. | 605 | Emacs. |
| 606 | 606 | ||
| 607 | @item | 607 | @item |
| 608 | Karel Klí@v{c} contributed SELinux support, for preserving the | 608 | Karel Klíč contributed SELinux support, for preserving the |
| 609 | Security-Enhanced Linux context of files on backup and copy. | 609 | Security-Enhanced Linux context of files on backup and copy. |
| 610 | 610 | ||
| 611 | @item | 611 | @item |
| @@ -635,7 +635,7 @@ R. Dodd. He also wrote @file{ls-lisp.el}, a Lisp emulation of the | |||
| 635 | program. | 635 | program. |
| 636 | 636 | ||
| 637 | @item | 637 | @item |
| 638 | David K@ringaccent{a}gedal wrote @file{tempo.el}, providing support for | 638 | David Kågedal wrote @file{tempo.el}, providing support for |
| 639 | easy insertion of boilerplate text and other common constructions. | 639 | easy insertion of boilerplate text and other common constructions. |
| 640 | 640 | ||
| 641 | @item | 641 | @item |
| @@ -694,7 +694,7 @@ directory-local variables; and the @code{info-finder} feature that | |||
| 694 | creates a virtual Info manual of package keywords. | 694 | creates a virtual Info manual of package keywords. |
| 695 | 695 | ||
| 696 | @item | 696 | @item |
| 697 | Károly L@H{o}rentey wrote the ``multi-terminal'' code, which allows | 697 | Károly Lőrentey wrote the ``multi-terminal'' code, which allows |
| 698 | Emacs to run on graphical and text terminals simultaneously. | 698 | Emacs to run on graphical and text terminals simultaneously. |
| 699 | 699 | ||
| 700 | @item | 700 | @item |
| @@ -1058,8 +1058,7 @@ contributed extensively to the MS-Windows port of Emacs. | |||
| 1058 | 1058 | ||
| 1059 | @item | 1059 | @item |
| 1060 | Wolfgang Rupprecht wrote Emacs 19's floating-point support (including | 1060 | Wolfgang Rupprecht wrote Emacs 19's floating-point support (including |
| 1061 | @file{float-sup.el} and @file{floatfns.c}), and @file{sup-mouse.el}, | 1061 | @file{float-sup.el} and @file{floatfns.c}). |
| 1062 | support for the Supdup mouse on lisp machines. | ||
| 1063 | 1062 | ||
| 1064 | @item | 1063 | @item |
| 1065 | Kevin Ryde wrote @file{info-xref.el}, a library for checking | 1064 | Kevin Ryde wrote @file{info-xref.el}, a library for checking |
| @@ -1224,7 +1223,7 @@ Olaf Sylvester wrote @file{bs.el}, a package for manipulating Emacs | |||
| 1224 | buffers. | 1223 | buffers. |
| 1225 | 1224 | ||
| 1226 | @item | 1225 | @item |
| 1227 | Tibor @v{S}imko and Milan Zamazal wrote @file{slovak.el}, support for | 1226 | Tibor Šimko and Milan Zamazal wrote @file{slovak.el}, support for |
| 1228 | editing text in Slovak language. | 1227 | editing text in Slovak language. |
| 1229 | 1228 | ||
| 1230 | @item | 1229 | @item |
diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi index 52b966b76e1..075d753ae7a 100644 --- a/doc/emacs/calendar.texi +++ b/doc/emacs/calendar.texi | |||
| @@ -1542,7 +1542,8 @@ variety of other formats. | |||
| 1542 | messages. While viewing such a message in Rmail or Gnus, do @kbd{M-x | 1542 | messages. While viewing such a message in Rmail or Gnus, do @kbd{M-x |
| 1543 | diary-from-outlook} to import the entry. You can make this command | 1543 | diary-from-outlook} to import the entry. You can make this command |
| 1544 | recognize additional appointment message formats by customizing the | 1544 | recognize additional appointment message formats by customizing the |
| 1545 | variable @code{diary-outlook-formats}. | 1545 | variable @code{diary-outlook-formats}. Other mail clients can set |
| 1546 | @code{diary-from-outlook-function} to an appropriate value. | ||
| 1546 | 1547 | ||
| 1547 | @c FIXME the name of the RFC is hardly very relevant. | 1548 | @c FIXME the name of the RFC is hardly very relevant. |
| 1548 | @cindex iCalendar support | 1549 | @cindex iCalendar support |
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi index 19b439afc7f..3dc64fdd127 100644 --- a/doc/emacs/cmdargs.texi +++ b/doc/emacs/cmdargs.texi | |||
| @@ -251,7 +251,8 @@ terminal's standard input stream (@code{stdin}) instead. | |||
| 251 | but @file{site-start.el} is loaded nonetheless. It also causes Emacs | 251 | but @file{site-start.el} is loaded nonetheless. It also causes Emacs |
| 252 | to exit after processing all the command options. In addition, it | 252 | to exit after processing all the command options. In addition, it |
| 253 | disables auto-saving except in buffers for which auto-saving is | 253 | disables auto-saving except in buffers for which auto-saving is |
| 254 | explicitly requested. | 254 | explicitly requested, and when saving files it omits the @code{fsync} |
| 255 | system call unless otherwise requested. | ||
| 255 | 256 | ||
| 256 | @item --script @var{file} | 257 | @item --script @var{file} |
| 257 | @opindex --script | 258 | @opindex --script |
| @@ -437,8 +438,8 @@ when you specify a relative directory name. | |||
| 437 | @item DBUS_SESSION_BUS_ADDRESS | 438 | @item DBUS_SESSION_BUS_ADDRESS |
| 438 | Used by D-Bus when Emacs is compiled with it. Usually, there is no | 439 | Used by D-Bus when Emacs is compiled with it. Usually, there is no |
| 439 | need to change it. Setting it to a dummy address, like | 440 | need to change it. Setting it to a dummy address, like |
| 440 | @samp{unix:path=/tmp/foo}, suppresses connections to the D-Bus session | 441 | @samp{unix:path=/dev/null}, suppresses connections to the D-Bus session |
| 441 | bus. | 442 | bus as well as autolaunching the D-Bus session bus if not running yet. |
| 442 | @item EMACSDATA | 443 | @item EMACSDATA |
| 443 | Directory for the architecture-independent files that come with Emacs. | 444 | Directory for the architecture-independent files that come with Emacs. |
| 444 | This is used to initialize the variable @code{data-directory}. | 445 | This is used to initialize the variable @code{data-directory}. |
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index fae61252724..45fa45191f3 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi | |||
| @@ -345,7 +345,7 @@ hidden, nor on subgroups that are hidden or not visible in the buffer. | |||
| 345 | @kindex C-x C-c @r{(customization buffer)} | 345 | @kindex C-x C-c @r{(customization buffer)} |
| 346 | @findex Custom-set | 346 | @findex Custom-set |
| 347 | @findex Custom-save | 347 | @findex Custom-save |
| 348 | The command @kbd{C-c C-c} (@code{Custom-set}) is equivalent using to | 348 | The command @kbd{C-c C-c} (@code{Custom-set}) is equivalent to using |
| 349 | the @samp{[Set for Current Session]} button. The command @kbd{C-x | 349 | the @samp{[Set for Current Session]} button. The command @kbd{C-x |
| 350 | C-s} (@code{Custom-save}) is like using the @samp{[Save for Future | 350 | C-s} (@code{Custom-save}) is like using the @samp{[Save for Future |
| 351 | Sessions]} button. | 351 | Sessions]} button. |
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index f5ec8946e1b..482d7e7741a 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi | |||
| @@ -903,14 +903,16 @@ that you specify explicitly the regular expressions to highlight. You | |||
| 903 | control them with these commands: | 903 | control them with these commands: |
| 904 | 904 | ||
| 905 | @table @kbd | 905 | @table @kbd |
| 906 | @item C-x w h @var{regexp} @key{RET} @var{face} @key{RET} | 906 | @item M-s h r @var{regexp} @key{RET} @var{face} @key{RET} |
| 907 | @itemx C-x w h @var{regexp} @key{RET} @var{face} @key{RET} | ||
| 908 | @kindex M-s h r | ||
| 907 | @kindex C-x w h | 909 | @kindex C-x w h |
| 908 | @findex highlight-regexp | 910 | @findex highlight-regexp |
| 909 | Highlight text that matches @var{regexp} using face @var{face} | 911 | Highlight text that matches @var{regexp} using face @var{face} |
| 910 | (@code{highlight-regexp}). The highlighting will remain as long as | 912 | (@code{highlight-regexp}). The highlighting will remain as long as |
| 911 | the buffer is loaded. For example, to highlight all occurrences of | 913 | the buffer is loaded. For example, to highlight all occurrences of |
| 912 | the word ``whim'' using the default face (a yellow background) | 914 | the word ``whim'' using the default face (a yellow background) |
| 913 | @kbd{C-x w h whim @key{RET} @key{RET}}. Any face can be used for | 915 | @kbd{M-s h r whim @key{RET} @key{RET}}. Any face can be used for |
| 914 | highlighting, Hi Lock provides several of its own and these are | 916 | highlighting, Hi Lock provides several of its own and these are |
| 915 | pre-loaded into a list of default values. While being prompted | 917 | pre-loaded into a list of default values. While being prompted |
| 916 | for a face use @kbd{M-n} and @kbd{M-p} to cycle through them. | 918 | for a face use @kbd{M-n} and @kbd{M-p} to cycle through them. |
| @@ -918,7 +920,9 @@ for a face use @kbd{M-n} and @kbd{M-p} to cycle through them. | |||
| 918 | You can use this command multiple times, specifying various regular | 920 | You can use this command multiple times, specifying various regular |
| 919 | expressions to highlight in different ways. | 921 | expressions to highlight in different ways. |
| 920 | 922 | ||
| 921 | @item C-x w r @var{regexp} @key{RET} | 923 | @item M-s h u @var{regexp} @key{RET} |
| 924 | @itemx C-x w r @var{regexp} @key{RET} | ||
| 925 | @kindex M-s h u | ||
| 922 | @kindex C-x w r | 926 | @kindex C-x w r |
| 923 | @findex unhighlight-regexp | 927 | @findex unhighlight-regexp |
| 924 | Unhighlight @var{regexp} (@code{unhighlight-regexp}). | 928 | Unhighlight @var{regexp} (@code{unhighlight-regexp}). |
| @@ -926,13 +930,15 @@ Unhighlight @var{regexp} (@code{unhighlight-regexp}). | |||
| 926 | If you invoke this from the menu, you select the expression to | 930 | If you invoke this from the menu, you select the expression to |
| 927 | unhighlight from a list. If you invoke this from the keyboard, you | 931 | unhighlight from a list. If you invoke this from the keyboard, you |
| 928 | use the minibuffer. It will show the most recently added regular | 932 | use the minibuffer. It will show the most recently added regular |
| 929 | expression; use @kbd{M-p} to show the next older expression and | 933 | expression; use @kbd{M-n} to show the next older expression and |
| 930 | @kbd{M-n} to select the next newer expression. (You can also type the | 934 | @kbd{M-p} to select the next newer expression. (You can also type the |
| 931 | expression by hand, with completion.) When the expression you want to | 935 | expression by hand, with completion.) When the expression you want to |
| 932 | unhighlight appears in the minibuffer, press @kbd{@key{RET}} to exit | 936 | unhighlight appears in the minibuffer, press @kbd{@key{RET}} to exit |
| 933 | the minibuffer and unhighlight it. | 937 | the minibuffer and unhighlight it. |
| 934 | 938 | ||
| 935 | @item C-x w l @var{regexp} @key{RET} @var{face} @key{RET} | 939 | @item M-s h l @var{regexp} @key{RET} @var{face} @key{RET} |
| 940 | @itemx C-x w l @var{regexp} @key{RET} @var{face} @key{RET} | ||
| 941 | @kindex M-s h l | ||
| 936 | @kindex C-x w l | 942 | @kindex C-x w l |
| 937 | @findex highlight-lines-matching-regexp | 943 | @findex highlight-lines-matching-regexp |
| 938 | @cindex lines, highlighting | 944 | @cindex lines, highlighting |
| @@ -940,7 +946,31 @@ the minibuffer and unhighlight it. | |||
| 940 | Highlight entire lines containing a match for @var{regexp}, using face | 946 | Highlight entire lines containing a match for @var{regexp}, using face |
| 941 | @var{face} (@code{highlight-lines-matching-regexp}). | 947 | @var{face} (@code{highlight-lines-matching-regexp}). |
| 942 | 948 | ||
| 943 | @item C-x w b | 949 | @item M-s h p @var{phrase} @key{RET} @var{face} @key{RET} |
| 950 | @itemx C-x w p @var{phrase} @key{RET} @var{face} @key{RET} | ||
| 951 | @kindex M-s h p | ||
| 952 | @kindex C-x w p | ||
| 953 | @findex highlight-phrase | ||
| 954 | @cindex phrase, highlighting | ||
| 955 | @cindex highlighting phrase | ||
| 956 | Highlight matches of @var{phrase}, using face @var{face} | ||
| 957 | (@code{highlight-phrase}). @var{phrase} can be any regexp, | ||
| 958 | but spaces will be replaced by matches to whitespace and | ||
| 959 | initial lower-case letters will become case insensitive. | ||
| 960 | |||
| 961 | @item M-s h . | ||
| 962 | @itemx C-x w . | ||
| 963 | @kindex M-s h . | ||
| 964 | @kindex C-x w . | ||
| 965 | @findex highlight-symbol-at-point | ||
| 966 | @cindex symbol, highlighting | ||
| 967 | @cindex highlighting symbol at point | ||
| 968 | Highlight the symbol found near point without prompting, using the next | ||
| 969 | available face automatically (@code{highlight-symbol-at-point}). | ||
| 970 | |||
| 971 | @item M-s h w | ||
| 972 | @itemx C-x w b | ||
| 973 | @kindex M-s h w | ||
| 944 | @kindex C-x w b | 974 | @kindex C-x w b |
| 945 | @findex hi-lock-write-interactive-patterns | 975 | @findex hi-lock-write-interactive-patterns |
| 946 | Insert all the current highlighting regexp/face pairs into the buffer | 976 | Insert all the current highlighting regexp/face pairs into the buffer |
| @@ -952,7 +982,9 @@ These patterns are extracted from the comments, if appropriate, if you | |||
| 952 | invoke @kbd{M-x hi-lock-find-patterns}, or if you visit the file while | 982 | invoke @kbd{M-x hi-lock-find-patterns}, or if you visit the file while |
| 953 | Hi Lock mode is enabled (since that runs @code{hi-lock-find-patterns}). | 983 | Hi Lock mode is enabled (since that runs @code{hi-lock-find-patterns}). |
| 954 | 984 | ||
| 955 | @item C-x w i | 985 | @item M-s h f |
| 986 | @itemx C-x w i | ||
| 987 | @kindex M-s h f | ||
| 956 | @kindex C-x w i | 988 | @kindex C-x w i |
| 957 | @findex hi-lock-find-patterns | 989 | @findex hi-lock-find-patterns |
| 958 | Extract regexp/face pairs from comments in the current buffer | 990 | Extract regexp/face pairs from comments in the current buffer |
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index e78eb7845f3..d2ec2154024 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi | |||
| @@ -1370,11 +1370,11 @@ Berry, Anna M. Bigatti, Ray Blaak, Martin Blais, Jim Blandy, Johan | |||
| 1370 | Bockgård, Jan Böcker, Joel Boehland, Lennart Borgman, Per Bothner, | 1370 | Bockgård, Jan Böcker, Joel Boehland, Lennart Borgman, Per Bothner, |
| 1371 | Terrence Brannon, Frank Bresz, Peter Breton, Emmanuel Briot, Kevin | 1371 | Terrence Brannon, Frank Bresz, Peter Breton, Emmanuel Briot, Kevin |
| 1372 | Broadey, Vincent Broman, Michael Brouwer, David M. Brown, Stefan Bruda, | 1372 | Broadey, Vincent Broman, Michael Brouwer, David M. Brown, Stefan Bruda, |
| 1373 | Georges Brun-Cottan, Joe Buehler, Scott Byer, W@l{}odek Bzyl, | 1373 | Georges Brun-Cottan, Joe Buehler, Scott Byer, Włodek Bzyl, |
| 1374 | Bill Carpenter, Per Cederqvist, Hans Chalupsky, Chris Chase, Bob | 1374 | Bill Carpenter, Per Cederqvist, Hans Chalupsky, Chris Chase, Bob |
| 1375 | Chassell, Andrew Choi, Chong Yidong, Sacha Chua, Stewart Clamen, James | 1375 | Chassell, Andrew Choi, Chong Yidong, Sacha Chua, Stewart Clamen, James |
| 1376 | Clark, Mike Clarkson, Glynn Clements, Andrew Cohen, Daniel Colascione, | 1376 | Clark, Mike Clarkson, Glynn Clements, Andrew Cohen, Daniel Colascione, |
| 1377 | Edward O'Connor, Christoph Conrad, Ludovic Courtès, Andrew Csillag, | 1377 | Christoph Conrad, Ludovic Courtès, Andrew Csillag, |
| 1378 | Toby Cubitt, Baoqiu Cui, Doug Cutting, Mathias Dahl, Julien Danjou, Satyaki | 1378 | Toby Cubitt, Baoqiu Cui, Doug Cutting, Mathias Dahl, Julien Danjou, Satyaki |
| 1379 | Das, Vivek Dasmohapatra, Dan Davison, Michael DeCorte, Gary Delp, Nachum | 1379 | Das, Vivek Dasmohapatra, Dan Davison, Michael DeCorte, Gary Delp, Nachum |
| 1380 | Dershowitz, Dave Detlefs, Matthieu Devin, Christophe de Dinechin, Eri | 1380 | Dershowitz, Dave Detlefs, Matthieu Devin, Christophe de Dinechin, Eri |
| @@ -1403,14 +1403,14 @@ Josefsson, Alexandre Julliard, Arne Jørgensen, Tomoji Kagatani, | |||
| 1403 | Brewster Kahle, Tokuya Kameshima, Lute Kamstra, Ivan Kanis, David | 1403 | Brewster Kahle, Tokuya Kameshima, Lute Kamstra, Ivan Kanis, David |
| 1404 | Kastrup, David Kaufman, Henry Kautz, Taichi Kawabata, Taro Kawagishi, | 1404 | Kastrup, David Kaufman, Henry Kautz, Taichi Kawabata, Taro Kawagishi, |
| 1405 | Howard Kaye, Michael Kifer, Richard King, Peter Kleiweg, Karel | 1405 | Howard Kaye, Michael Kifer, Richard King, Peter Kleiweg, Karel |
| 1406 | Klí@v{c}, Shuhei Kobayashi, Pavel Kobyakov, Larry K. Kolodney, David | 1406 | Klíč, Shuhei Kobayashi, Pavel Kobyakov, Larry K. Kolodney, David |
| 1407 | M. Koppelman, Koseki Yoshinori, Robert Krawitz, Sebastian Kremer, | 1407 | M. Koppelman, Koseki Yoshinori, Robert Krawitz, Sebastian Kremer, |
| 1408 | Ryszard Kubiak, Igor Kuzmin, David Kågedal, Daniel LaLiberte, Karl | 1408 | Ryszard Kubiak, Igor Kuzmin, David Kågedal, Daniel LaLiberte, Karl |
| 1409 | Landstrom, Mario Lang, Aaron Larson, James R. Larus, Vinicius Jose | 1409 | Landstrom, Mario Lang, Aaron Larson, James R. Larus, Vinicius Jose |
| 1410 | Latorre, Werner Lemberg, Frederic Lepied, Peter Liljenberg, Christian | 1410 | Latorre, Werner Lemberg, Frederic Lepied, Peter Liljenberg, Christian |
| 1411 | Limpach, Lars Lindberg, Chris Lindblad, Anders Lindgren, Thomas Link, | 1411 | Limpach, Lars Lindberg, Chris Lindblad, Anders Lindgren, Thomas Link, |
| 1412 | Juri Linkov, Francis Litterio, Sergey Litvinov, Emilio C. Lopes, | 1412 | Juri Linkov, Francis Litterio, Sergey Litvinov, Emilio C. Lopes, |
| 1413 | Martin Lorentzon, Dave Love, Eric Ludlam, Károly L@H{o}rentey, Sascha | 1413 | Martin Lorentzon, Dave Love, Eric Ludlam, Károly Lőrentey, Sascha |
| 1414 | Lüdecke, Greg McGary, Roland McGrath, Michael McNamara, Alan Mackenzie, | 1414 | Lüdecke, Greg McGary, Roland McGrath, Michael McNamara, Alan Mackenzie, |
| 1415 | Christopher J. Madsen, Neil M. Mager, Ken Manheimer, Bill Mann, | 1415 | Christopher J. Madsen, Neil M. Mager, Ken Manheimer, Bill Mann, |
| 1416 | Brian Marick, Simon Marshall, Bengt Martensson, Charlie Martin, | 1416 | Brian Marick, Simon Marshall, Bengt Martensson, Charlie Martin, |
| @@ -1421,7 +1421,7 @@ Monnier, Keith Moore, Jan Moringen, Morioka Tomohiko, Glenn Morris, | |||
| 1421 | Don Morrison, Diane Murray, Riccardo Murri, Sen Nagata, Erik Naggum, | 1421 | Don Morrison, Diane Murray, Riccardo Murri, Sen Nagata, Erik Naggum, |
| 1422 | Gergely Nagy, Nobuyoshi Nakada, Thomas Neumann, Mike Newton, Thien-Thi Nguyen, | 1422 | Gergely Nagy, Nobuyoshi Nakada, Thomas Neumann, Mike Newton, Thien-Thi Nguyen, |
| 1423 | Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Niksic, Jeff Norden, | 1423 | Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Niksic, Jeff Norden, |
| 1424 | Andrew Norman, Kentaro Ohkouchi, Christian Ohler, | 1424 | Andrew Norman, Edward O'Connor, Kentaro Ohkouchi, Christian Ohler, |
| 1425 | Kenichi Okada, Alexandre Oliva, Bob Olson, Michael Olson, Takaaki Ota, | 1425 | Kenichi Okada, Alexandre Oliva, Bob Olson, Michael Olson, Takaaki Ota, |
| 1426 | Pieter E. J. Pareit, Ross Patterson, David Pearson, Juan Pechiar, | 1426 | Pieter E. J. Pareit, Ross Patterson, David Pearson, Juan Pechiar, |
| 1427 | Jeff Peck, Damon Anton Permezel, Tom Perrine, William M. Perry, Per | 1427 | Jeff Peck, Damon Anton Permezel, Tom Perrine, William M. Perry, Per |
| @@ -1441,7 +1441,7 @@ Philippe Schnoebelen, Jan Schormann, Alex Schroeder, Stefan Schoef, | |||
| 1441 | Rainer Schoepf, Raymond Scholz, Eric Schulte, Andreas Schwab, Randal | 1441 | Rainer Schoepf, Raymond Scholz, Eric Schulte, Andreas Schwab, Randal |
| 1442 | Schwartz, Oliver Seidel, Manuel Serrano, Paul Sexton, Hovav Shacham, | 1442 | Schwartz, Oliver Seidel, Manuel Serrano, Paul Sexton, Hovav Shacham, |
| 1443 | Stanislav Shalunov, Marc Shapiro, Richard Sharman, Olin Shivers, Tibor | 1443 | Stanislav Shalunov, Marc Shapiro, Richard Sharman, Olin Shivers, Tibor |
| 1444 | @v{S}imko, Espen Skoglund, Rick Sladkey, Lynn Slater, Chris Smith, | 1444 | Šimko, Espen Skoglund, Rick Sladkey, Lynn Slater, Chris Smith, |
| 1445 | David Smith, Paul D. Smith, Wilson Snyder, William Sommerfeld, Simon | 1445 | David Smith, Paul D. Smith, Wilson Snyder, William Sommerfeld, Simon |
| 1446 | South, Andre Spiegel, Michael Staats, Thomas Steffen, Ulf Stegemann, | 1446 | South, Andre Spiegel, Michael Staats, Thomas Steffen, Ulf Stegemann, |
| 1447 | Reiner Steib, Sam Steingold, Ake Stenhoff, Peter Stephenson, Ken | 1447 | Reiner Steib, Sam Steingold, Ake Stenhoff, Peter Stephenson, Ken |
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index 1f78747eaa6..13fa516af66 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi | |||
| @@ -705,13 +705,27 @@ setting the latter variable, you can control how these modes handle | |||
| 705 | final newlines. | 705 | final newlines. |
| 706 | 706 | ||
| 707 | @vindex write-region-inhibit-fsync | 707 | @vindex write-region-inhibit-fsync |
| 708 | When Emacs saves a file, it invokes the @code{fsync} system call to | 708 | Normally, when a program writes a file, the operating system briefly |
| 709 | force the data immediately out to disk. This is important for safety | 709 | caches the file's data in main memory before committing the data to |
| 710 | if the system crashes or in case of power outage. However, it can be | 710 | disk. This can greatly improve performance; for example, when running |
| 711 | disruptive on laptops using power saving, as it may force a disk | 711 | on laptops, it can avoid a disk spin-up each time a file is written. |
| 712 | spin-up each time you save a file. If you accept an increased risk of | 712 | However, it risks data loss if the operating system crashes before |
| 713 | data loss, you can set @code{write-region-inhibit-fsync} to a | 713 | committing the cache to disk. |
| 714 | non-@code{nil} value to disable the synchronization. | 714 | |
| 715 | To lessen this risk, Emacs can invoke the @code{fsync} system call | ||
| 716 | after saving a file. Using @code{fsync} does not eliminate the risk | ||
| 717 | of data loss, partly because many systems do not implement | ||
| 718 | @code{fsync} properly, and partly because Emacs's file-saving | ||
| 719 | procedure typically relies also on directory updates that might not | ||
| 720 | survive a crash even if @code{fsync} works properly. | ||
| 721 | |||
| 722 | The @code{write-region-inhibit-fsync} variable controls whether | ||
| 723 | Emacs invokes @code{fsync} after saving a file. The variable's | ||
| 724 | default value is @code{nil} when Emacs is interactive, and @code{t} | ||
| 725 | when Emacs runs in batch mode. | ||
| 726 | |||
| 727 | Emacs never uses @code{fsync} when writing auto-save files, as these | ||
| 728 | files might lose data anyway. | ||
| 715 | 729 | ||
| 716 | @node Interlocking | 730 | @node Interlocking |
| 717 | @subsection Protection against Simultaneous Editing | 731 | @subsection Protection against Simultaneous Editing |
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index c8d9e9f2087..33e398ebf75 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi | |||
| @@ -342,7 +342,9 @@ before version control systems. | |||
| 342 | modification log for the entire system, which makes change log files | 342 | modification log for the entire system, which makes change log files |
| 343 | somewhat redundant. One advantage that they retain is that it is | 343 | somewhat redundant. One advantage that they retain is that it is |
| 344 | sometimes useful to be able to view the transaction history of a | 344 | sometimes useful to be able to view the transaction history of a |
| 345 | single directory separately from those of other directories. | 345 | single directory separately from those of other directories. Another |
| 346 | advantage is that commit logs can't be fixed in many version control | ||
| 347 | systems. | ||
| 346 | 348 | ||
| 347 | A project maintained with version control can use just the version | 349 | A project maintained with version control can use just the version |
| 348 | control log, or it can use both kinds of logs. It can handle some | 350 | control log, or it can use both kinds of logs. It can handle some |
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index 459221a9088..70eecf1c97b 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi | |||
| @@ -1356,7 +1356,7 @@ the menu item named @samp{Source Code Parsers (Semantic)} in the | |||
| 1356 | @samp{Tools} menu. This enables Semantic mode, a global minor mode. | 1356 | @samp{Tools} menu. This enables Semantic mode, a global minor mode. |
| 1357 | 1357 | ||
| 1358 | When Semantic mode is enabled, Emacs automatically attempts to | 1358 | When Semantic mode is enabled, Emacs automatically attempts to |
| 1359 | parses each file you visit. Currently, Semantic understands C, C++, | 1359 | parse each file you visit. Currently, Semantic understands C, C++, |
| 1360 | Scheme, Javascript, Java, HTML, and Make. Within each parsed buffer, | 1360 | Scheme, Javascript, Java, HTML, and Make. Within each parsed buffer, |
| 1361 | the following commands are available: | 1361 | the following commands are available: |
| 1362 | 1362 | ||
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi index 377264223a5..e146177255e 100644 --- a/doc/emacs/search.texi +++ b/doc/emacs/search.texi | |||
| @@ -175,7 +175,7 @@ element in the minibuffer, where you can edit it. | |||
| 175 | 175 | ||
| 176 | @kindex M-e @r{(Incremental search)} | 176 | @kindex M-e @r{(Incremental search)} |
| 177 | To edit the current search string in the minibuffer without | 177 | To edit the current search string in the minibuffer without |
| 178 | replacing it with items from the search ring, type @kbd{M-e}. Type | 178 | replacing it with items from the search ring, type @kbd{M-e}. Type @key{RET}, |
| 179 | @kbd{C-s} or @kbd{C-r} to finish editing the string and search for it. | 179 | @kbd{C-s} or @kbd{C-r} to finish editing the string and search for it. |
| 180 | 180 | ||
| 181 | @node Error in Isearch | 181 | @node Error in Isearch |
diff --git a/doc/emacs/sending.texi b/doc/emacs/sending.texi index 4c8af7e650e..1402d8a85be 100644 --- a/doc/emacs/sending.texi +++ b/doc/emacs/sending.texi | |||
| @@ -374,7 +374,7 @@ This is the default, unless you have already set the variables for | |||
| 374 | sending mail via @code{smtpmail-send-it} (see below). | 374 | sending mail via @code{smtpmail-send-it} (see below). |
| 375 | 375 | ||
| 376 | @item smtpmail-send-it | 376 | @item smtpmail-send-it |
| 377 | Send mail using the through an external mail host, such as your | 377 | Send mail through an external mail host, such as your |
| 378 | Internet service provider's outgoing SMTP mail server. If you have | 378 | Internet service provider's outgoing SMTP mail server. If you have |
| 379 | not told Emacs how to contact the SMTP server, it prompts for this | 379 | not told Emacs how to contact the SMTP server, it prompts for this |
| 380 | information, which is saved in the @code{smtpmail-smtp-server} variable | 380 | information, which is saved in the @code{smtpmail-smtp-server} variable |
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi index 1c667bc56cb..d0b6b5191c1 100644 --- a/doc/emacs/trouble.texi +++ b/doc/emacs/trouble.texi | |||
| @@ -1138,12 +1138,9 @@ form that is clearly safe to install. | |||
| 1138 | @section Contributing to Emacs Development | 1138 | @section Contributing to Emacs Development |
| 1139 | @cindex contributing to Emacs | 1139 | @cindex contributing to Emacs |
| 1140 | 1140 | ||
| 1141 | If you would like to help pretest Emacs releases to assure they work | 1141 | If you would like to work on improving Emacs, please contact |
| 1142 | well, or if you would like to work on improving Emacs, please contact | 1142 | the maintainers at @email{emacs-devel@@gnu.org}. You can ask for |
| 1143 | the maintainers at @email{emacs-devel@@gnu.org}. A pretester | 1143 | suggested projects or suggest your own ideas. |
| 1144 | should be prepared to investigate bugs as well as report them. If you'd | ||
| 1145 | like to work on improving Emacs, please ask for suggested projects or | ||
| 1146 | suggest your own ideas. | ||
| 1147 | 1144 | ||
| 1148 | If you have already written an improvement, please tell us about it. If | 1145 | If you have already written an improvement, please tell us about it. If |
| 1149 | you have not yet started work, it is useful to contact | 1146 | you have not yet started work, it is useful to contact |
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi index 7ed0c682296..7c80cefcc7e 100644 --- a/doc/emacs/windows.texi +++ b/doc/emacs/windows.texi | |||
| @@ -258,7 +258,7 @@ Make all windows the same height (@code{balance-windows}). | |||
| 258 | the space that it occupied is given to an adjacent window (but not the | 258 | the space that it occupied is given to an adjacent window (but not the |
| 259 | minibuffer window, even if that is active at the time). Deleting the | 259 | minibuffer window, even if that is active at the time). Deleting the |
| 260 | window has no effect on the buffer it used to display; the buffer | 260 | window has no effect on the buffer it used to display; the buffer |
| 261 | continues to exist, and you can still switch to with @kbd{C-x b}. | 261 | continues to exist, and you can still switch to it with @kbd{C-x b}. |
| 262 | 262 | ||
| 263 | @findex kill-buffer-and-window | 263 | @findex kill-buffer-and-window |
| 264 | @kindex C-x 4 0 | 264 | @kindex C-x 4 0 |
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog index e12c57d4b76..5e4655506f6 100644 --- a/doc/lispintro/ChangeLog +++ b/doc/lispintro/ChangeLog | |||
| @@ -1,10 +1,38 @@ | |||
| 1 | 2013-03-16 Glenn Morris <rgm@gnu.org> | 1 | 2013-04-24 Eli Zaretskii <eliz@gnu.org> |
| 2 | 2 | ||
| 3 | * emacs-lisp-intro.texi: Add some stuff specific to www.gnu.org. | 3 | * makefile.w32-in (INFO_OPTS): Add "-I$(emacsdir)" to fix last |
| 4 | commit. | ||
| 5 | |||
| 6 | 2013-04-24 Glenn Morris <rgm@gnu.org> | ||
| 7 | |||
| 8 | * emacs-lisp-intro.texi (emacsver.texi): Include it. | ||
| 9 | (copying): For non-printed versions, uses Emacs version rather | ||
| 10 | than that of the printed book. | ||
| 11 | (Complications, Lisp macro, defvar and asterisk, defcustom): Copyedits. | ||
| 12 | * Makefile.in (emacsdir): New variable.. | ||
| 13 | (MAKEINFO_OPTS, ENVADD): Add $emacsdir. | ||
| 14 | (srcs): Add emacsver.texi. | ||
| 15 | (dist): Include emacsver.texi. Edit emacsdir. | ||
| 16 | * makefile.w32-in (emacsdir): New variable. | ||
| 17 | (INFO_SOURCES): Add emacsver.texi. | ||
| 18 | (ENVADD): Add $emacsdir (and $texinfodir). | ||
| 19 | |||
| 20 | 2013-04-23 Xue Fuqiao <xfq.free@gmail.com> | ||
| 21 | |||
| 22 | * emacs-lisp-intro.texi (Complications, defvar, Writing Defuns) | ||
| 23 | (Prevent confusion, Determining the Element, lambda): Refine the | ||
| 24 | doc about Lisp macros, reported by Glenn Morris. | ||
| 25 | |||
| 26 | 2013-04-21 Xue Fuqiao <xfq.free@gmail.com> | ||
| 27 | |||
| 28 | * emacs-lisp-intro.texi (defcustom, defun) | ||
| 29 | (simplified-beginning-of-buffer, defvar, Building Robots, Review) | ||
| 30 | (save-excursion): `defun' and `defcustom' are now macros rather | ||
| 31 | than special forms. (Bug#13853) | ||
| 4 | 32 | ||
| 5 | 2013-03-16 Glenn Morris <rgm@gnu.org> | 33 | 2013-03-16 Glenn Morris <rgm@gnu.org> |
| 6 | 34 | ||
| 7 | * Version 24.3 released. | 35 | * emacs-lisp-intro.texi: Add some stuff specific to www.gnu.org. |
| 8 | 36 | ||
| 9 | 2013-03-03 Glenn Morris <rgm@gnu.org> | 37 | 2013-03-03 Glenn Morris <rgm@gnu.org> |
| 10 | 38 | ||
diff --git a/doc/lispintro/Makefile.in b/doc/lispintro/Makefile.in index a6b50b88ad9..338b4ad86c4 100644 --- a/doc/lispintro/Makefile.in +++ b/doc/lispintro/Makefile.in | |||
| @@ -25,6 +25,8 @@ version=@version@ | |||
| 25 | buildinfodir = $(srcdir)/../../info | 25 | buildinfodir = $(srcdir)/../../info |
| 26 | # Directory with the (customized) texinfo.tex file. | 26 | # Directory with the (customized) texinfo.tex file. |
| 27 | texinfodir = $(srcdir)/../misc | 27 | texinfodir = $(srcdir)/../misc |
| 28 | # Directory with emacsver.texi. | ||
| 29 | emacsdir = $(srcdir)/../emacs | ||
| 28 | 30 | ||
| 29 | MKDIR_P = @MKDIR_P@ | 31 | MKDIR_P = @MKDIR_P@ |
| 30 | 32 | ||
| @@ -33,17 +35,18 @@ INFO_EXT=@INFO_EXT@ | |||
| 33 | INFO_OPTS=@INFO_OPTS@ | 35 | INFO_OPTS=@INFO_OPTS@ |
| 34 | 36 | ||
| 35 | MAKEINFO = @MAKEINFO@ | 37 | MAKEINFO = @MAKEINFO@ |
| 36 | MAKEINFO_OPTS = --force -I $(srcdir) | 38 | MAKEINFO_OPTS = --force -I $(emacsdir) -I $(srcdir) |
| 37 | TEXI2DVI = texi2dvi | 39 | TEXI2DVI = texi2dvi |
| 38 | TEXI2PDF = texi2pdf | 40 | TEXI2PDF = texi2pdf |
| 39 | DVIPS = dvips | 41 | DVIPS = dvips |
| 40 | 42 | ||
| 41 | ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \ | 43 | ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \ |
| 42 | MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" | 44 | MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" |
| 43 | 45 | ||
| 44 | mkinfodir = @${MKDIR_P} ${buildinfodir} | 46 | mkinfodir = @${MKDIR_P} ${buildinfodir} |
| 45 | 47 | ||
| 46 | srcs = ${srcdir}/emacs-lisp-intro.texi ${srcdir}/doclicense.texi | 48 | srcs = ${srcdir}/emacs-lisp-intro.texi ${srcdir}/doclicense.texi \ |
| 49 | ${emacsdir}/emacsver.texi | ||
| 47 | 50 | ||
| 48 | .PHONY: info dvi html pdf ps | 51 | .PHONY: info dvi html pdf ps |
| 49 | 52 | ||
| @@ -97,9 +100,10 @@ dist: | |||
| 97 | rm -rf emacs-lispintro-${version} | 100 | rm -rf emacs-lispintro-${version} |
| 98 | mkdir emacs-lispintro-${version} | 101 | mkdir emacs-lispintro-${version} |
| 99 | cp ${srcdir}/*.texi ${srcdir}/*.eps ${srcdir}/*.pdf \ | 102 | cp ${srcdir}/*.texi ${srcdir}/*.eps ${srcdir}/*.pdf \ |
| 100 | ${texinfodir}/texinfo.tex \ | 103 | ${texinfodir}/texinfo.tex ${emacsdir}/emacsver.texi \ |
| 101 | ${srcdir}/ChangeLog* ${srcdir}/README emacs-lispintro-${version}/ | 104 | ${srcdir}/ChangeLog* ${srcdir}/README emacs-lispintro-${version}/ |
| 102 | sed -e 's/@sr[c]dir@/./' -e 's/^\(texinfodir *=\).*/\1 ./' \ | 105 | sed -e 's/@sr[c]dir@/./' -e 's/^\(texinfodir *=\).*/\1 ./' \ |
| 106 | -e 's/^\(emacsdir *=\).*/\1 ./' \ | ||
| 103 | -e 's/^\(buildinfodir *=\).*/\1 ./' \ | 107 | -e 's/^\(buildinfodir *=\).*/\1 ./' \ |
| 104 | -e 's/^\(clean:.*\)/\1 infoclean/' \ | 108 | -e 's/^\(clean:.*\)/\1 infoclean/' \ |
| 105 | -e "s/@ver[s]ion@/${version}/" \ | 109 | -e "s/@ver[s]ion@/${version}/" \ |
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index c42ed210cbc..ce4da17658e 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi | |||
| @@ -8,6 +8,8 @@ | |||
| 8 | @syncodeindex fn cp | 8 | @syncodeindex fn cp |
| 9 | @finalout | 9 | @finalout |
| 10 | 10 | ||
| 11 | @include emacsver.texi | ||
| 12 | |||
| 11 | @c --------- | 13 | @c --------- |
| 12 | @c <<<< For hard copy printing, this file is now | 14 | @c <<<< For hard copy printing, this file is now |
| 13 | @c set for smallbook, which works for all sizes | 15 | @c set for smallbook, which works for all sizes |
| @@ -35,79 +37,10 @@ | |||
| 35 | \global\hbadness=6666 % don't worry about not-too-underfull boxes | 37 | \global\hbadness=6666 % don't worry about not-too-underfull boxes |
| 36 | @end tex | 38 | @end tex |
| 37 | 39 | ||
| 40 | @c These refer to the printed book sold by the FSF. | ||
| 38 | @set edition-number 3.10 | 41 | @set edition-number 3.10 |
| 39 | @set update-date 28 October 2009 | 42 | @set update-date 28 October 2009 |
| 40 | 43 | ||
| 41 | @ignore | ||
| 42 | ## Summary of shell commands to create various output formats: | ||
| 43 | |||
| 44 | pushd /usr/local/src/emacs/lispintro/ | ||
| 45 | ## pushd /u/intro/ | ||
| 46 | |||
| 47 | ## Info output | ||
| 48 | makeinfo --paragraph-indent=0 --verbose emacs-lisp-intro.texi | ||
| 49 | |||
| 50 | ## ;; (progn (when (bufferp (get-buffer "*info*")) (kill-buffer "*info*")) (info "/usr/local/src/emacs/info/eintr")) | ||
| 51 | |||
| 52 | ## DVI output | ||
| 53 | texi2dvi emacs-lisp-intro.texi | ||
| 54 | |||
| 55 | ## xdvi -margins 24pt -topmargin 4pt -offsets 24pt -geometry 760x1140 -s 5 -useTeXpages -mousemode 1 emacs-lisp-intro.dvi & | ||
| 56 | |||
| 57 | ## HTML output | ||
| 58 | makeinfo --html --no-split --verbose emacs-lisp-intro.texi | ||
| 59 | |||
| 60 | ## galeon emacs-lisp-intro.html | ||
| 61 | |||
| 62 | ## Plain text output | ||
| 63 | makeinfo --fill-column=70 --no-split --paragraph-indent=0 \ | ||
| 64 | --verbose --no-headers --output=emacs-lisp-intro.txt emacs-lisp-intro.texi | ||
| 65 | |||
| 66 | popd | ||
| 67 | |||
| 68 | # as user `root' | ||
| 69 | # insert thumbdrive | ||
| 70 | mtusb # mount -v -t ext3 /dev/sda /mnt | ||
| 71 | cp -v /u/intro/emacs-lisp-intro.texi /mnt/backup/intro/emacs-lisp-intro.texi | ||
| 72 | umtusb # umount -v /mnt | ||
| 73 | # remove thumbdrive | ||
| 74 | |||
| 75 | ## Other shell commands | ||
| 76 | |||
| 77 | pushd /usr/local/src/emacs/lispintro/ | ||
| 78 | ## pushd /u/intro/ | ||
| 79 | |||
| 80 | |||
| 81 | texi2dvi --pdf emacs-lisp-intro.texi | ||
| 82 | # xpdf emacs-lisp-intro.pdf & | ||
| 83 | |||
| 84 | ## DocBook -- note file extension | ||
| 85 | makeinfo --docbook --no-split --paragraph-indent=0 \ | ||
| 86 | --verbose --output=emacs-lisp-intro.docbook emacs-lisp-intro.texi | ||
| 87 | |||
| 88 | ## XML with a Texinfo DTD -- note file extension | ||
| 89 | makeinfo --xml --no-split --paragraph-indent=0 \ | ||
| 90 | --verbose --output=emacs-lisp-intro.texinfoxml emacs-lisp-intro.texi | ||
| 91 | |||
| 92 | ## PostScript (needs DVI) | ||
| 93 | # gv emacs-lisp-intro.ps & | ||
| 94 | # Create DVI if we lack it | ||
| 95 | # texi2dvi emacs-lisp-intro.texi | ||
| 96 | dvips emacs-lisp-intro.dvi -o emacs-lisp-intro.ps | ||
| 97 | |||
| 98 | ## RTF (needs HTML) | ||
| 99 | # Use OpenOffice to view RTF | ||
| 100 | # Create HTML if we lack it | ||
| 101 | # makeinfo --no-split --html emacs-lisp-intro.texi | ||
| 102 | /usr/local/src/html2rtf.pl emacs-lisp-intro.html | ||
| 103 | |||
| 104 | ## LaTeX (needs RTF) | ||
| 105 | /usr/bin/rtf2latex emacs-lisp-intro.rtf | ||
| 106 | |||
| 107 | popd | ||
| 108 | |||
| 109 | @end ignore | ||
| 110 | |||
| 111 | @c ================ Included Figures ================ | 44 | @c ================ Included Figures ================ |
| 112 | 45 | ||
| 113 | @c Set print-postscript-figures if you print PostScript figures. | 46 | @c Set print-postscript-figures if you print PostScript figures. |
| @@ -116,25 +49,6 @@ | |||
| 116 | @c Your site may require editing changes to print PostScript; in this | 49 | @c Your site may require editing changes to print PostScript; in this |
| 117 | @c case, search for `print-postscript-figures' and make appropriate changes. | 50 | @c case, search for `print-postscript-figures' and make appropriate changes. |
| 118 | 51 | ||
| 119 | @c ================ How to Create an Info file ================ | ||
| 120 | |||
| 121 | @c If you have `makeinfo' installed, run the following command | ||
| 122 | |||
| 123 | @c makeinfo emacs-lisp-intro.texi | ||
| 124 | |||
| 125 | @c or, if you want a single, large Info file, and no paragraph indents: | ||
| 126 | @c makeinfo --no-split --paragraph-indent=0 --verbose emacs-lisp-intro.texi | ||
| 127 | |||
| 128 | @c After creating the Info file, edit your Info `dir' file, if the | ||
| 129 | @c `dircategory' section below does not enable your system to | ||
| 130 | @c install the manual automatically. | ||
| 131 | @c (The `dir' file is often in the `/usr/local/share/info/' directory.) | ||
| 132 | |||
| 133 | @c ================ How to Create an HTML file ================ | ||
| 134 | |||
| 135 | @c To convert to HTML format | ||
| 136 | @c makeinfo --html --no-split --verbose emacs-lisp-intro.texi | ||
| 137 | |||
| 138 | @c ================ How to Print a Book in Various Sizes ================ | 52 | @c ================ How to Print a Book in Various Sizes ================ |
| 139 | 53 | ||
| 140 | @c This book can be printed in any of three different sizes. | 54 | @c This book can be printed in any of three different sizes. |
| @@ -153,34 +67,6 @@ | |||
| 153 | @c @afourpaper | 67 | @c @afourpaper |
| 154 | @c @set largebook | 68 | @c @set largebook |
| 155 | 69 | ||
| 156 | @c ================ How to Typeset and Print ================ | ||
| 157 | |||
| 158 | @c If you do not include PostScript figures, run either of the | ||
| 159 | @c following command sequences, or similar commands suited to your | ||
| 160 | @c system: | ||
| 161 | |||
| 162 | @c texi2dvi emacs-lisp-intro.texi | ||
| 163 | @c lpr -d emacs-lisp-intro.dvi | ||
| 164 | |||
| 165 | @c or else: | ||
| 166 | |||
| 167 | @c tex emacs-lisp-intro.texi | ||
| 168 | @c texindex emacs-lisp-intro.?? | ||
| 169 | @c tex emacs-lisp-intro.texi | ||
| 170 | @c lpr -d emacs-lisp-intro.dvi | ||
| 171 | |||
| 172 | @c If you include the PostScript figures, and you have old software, | ||
| 173 | @c you may need to convert the .dvi file to a .ps file before | ||
| 174 | @c printing. Run either of the following command sequences, or one | ||
| 175 | @c similar: | ||
| 176 | @c | ||
| 177 | @c dvips -f < emacs-lisp-intro.dvi > emacs-lisp-intro.ps | ||
| 178 | @c | ||
| 179 | @c or else: | ||
| 180 | @c | ||
| 181 | @c postscript -p < emacs-lisp-intro.dvi > emacs-lisp-intro.ps | ||
| 182 | @c | ||
| 183 | |||
| 184 | @c (Note: if you edit the book so as to change the length of the | 70 | @c (Note: if you edit the book so as to change the length of the |
| 185 | @c table of contents, you may have to change the value of `pageno' below.) | 71 | @c table of contents, you may have to change the value of `pageno' below.) |
| 186 | 72 | ||
| @@ -226,7 +112,12 @@ | |||
| 226 | This is an @cite{Introduction to Programming in Emacs Lisp}, for | 112 | This is an @cite{Introduction to Programming in Emacs Lisp}, for |
| 227 | people who are not programmers. | 113 | people who are not programmers. |
| 228 | @sp 1 | 114 | @sp 1 |
| 115 | @iftex | ||
| 229 | Edition @value{edition-number}, @value{update-date} | 116 | Edition @value{edition-number}, @value{update-date} |
| 117 | @end iftex | ||
| 118 | @ifnottex | ||
| 119 | Distributed with Emacs version @value{EMACSVER}. | ||
| 120 | @end ifnottex | ||
| 230 | @ifset WWW_GNU_ORG | 121 | @ifset WWW_GNU_ORG |
| 231 | @html | 122 | @html |
| 232 | <p>The homepage for GNU Emacs is at | 123 | <p>The homepage for GNU Emacs is at |
| @@ -243,7 +134,7 @@ Foundation, Inc. | |||
| 243 | @iftex | 134 | @iftex |
| 244 | Published by the:@* | 135 | Published by the:@* |
| 245 | 136 | ||
| 246 | GNU Press, @hfill @uref{http://www.fsf.org/campaigns/gnu-press/}@* | 137 | GNU Press, @hfill @uref{http://www.fsf.org/licensing/gnu-press/}@* |
| 247 | a division of the @hfill email: @email{sales@@fsf.org}@* | 138 | a division of the @hfill email: @email{sales@@fsf.org}@* |
| 248 | Free Software Foundation, Inc. @hfill Tel: +1 (617) 542-5942@* | 139 | Free Software Foundation, Inc. @hfill Tel: +1 (617) 542-5942@* |
| 249 | 51 Franklin Street, Fifth Floor @hfill Fax: +1 (617) 542-2652@* | 140 | 51 Franklin Street, Fifth Floor @hfill Fax: +1 (617) 542-2652@* |
| @@ -251,10 +142,10 @@ Boston, MA 02110-1301 USA | |||
| 251 | @end iftex | 142 | @end iftex |
| 252 | 143 | ||
| 253 | @ifnottex | 144 | @ifnottex |
| 254 | Published by the: | 145 | Printed copies available from @uref{http://shop.fsf.org/}. Published by: |
| 255 | 146 | ||
| 256 | @example | 147 | @example |
| 257 | GNU Press, http://www.fsf.org/campaigns/gnu-press/ | 148 | GNU Press, http://www.fsf.org/licensing/gnu-press/ |
| 258 | a division of the email: sales@@fsf.org | 149 | a division of the email: sales@@fsf.org |
| 259 | Free Software Foundation, Inc. Tel: +1 (617) 542-5942 | 150 | Free Software Foundation, Inc. Tel: +1 (617) 542-5942 |
| 260 | 51 Franklin Street, Fifth Floor Fax: +1 (617) 542-2652 | 151 | 51 Franklin Street, Fifth Floor Fax: +1 (617) 542-2652 |
| @@ -263,7 +154,6 @@ Boston, MA 02110-1301 USA | |||
| 263 | @end ifnottex | 154 | @end ifnottex |
| 264 | 155 | ||
| 265 | @sp 1 | 156 | @sp 1 |
| 266 | @c Printed copies are available from @uref{http://shop.fsf.org/} for $35 each.@* | ||
| 267 | ISBN 1-882114-43-4 | 157 | ISBN 1-882114-43-4 |
| 268 | 158 | ||
| 269 | Permission is granted to copy, distribute and/or modify this document | 159 | Permission is granted to copy, distribute and/or modify this document |
| @@ -456,7 +346,7 @@ Practicing Evaluation | |||
| 456 | How To Write Function Definitions | 346 | How To Write Function Definitions |
| 457 | 347 | ||
| 458 | * Primitive Functions:: | 348 | * Primitive Functions:: |
| 459 | * defun:: The @code{defun} special form. | 349 | * defun:: The @code{defun} macro. |
| 460 | * Install:: Install a function definition. | 350 | * Install:: Install a function definition. |
| 461 | * Interactive:: Making a function interactive. | 351 | * Interactive:: Making a function interactive. |
| 462 | * Interactive Options:: Different options for @code{interactive}. | 352 | * Interactive Options:: Different options for @code{interactive}. |
| @@ -1617,13 +1507,25 @@ the symbol's value as a @dfn{variable}. This situation is described | |||
| 1617 | in the section on variables. (@xref{Variables}.) | 1507 | in the section on variables. (@xref{Variables}.) |
| 1618 | 1508 | ||
| 1619 | @cindex Special form | 1509 | @cindex Special form |
| 1620 | The second complication occurs because some functions are unusual and do | 1510 | The second complication occurs because some functions are unusual and |
| 1621 | not work in the usual manner. Those that don't are called @dfn{special | 1511 | do not work in the usual manner. Those that don't are called |
| 1622 | forms}. They are used for special jobs, like defining a function, and | 1512 | @dfn{special forms}. They are used for special jobs, like defining a |
| 1623 | there are not many of them. In the next few chapters, you will be | 1513 | function, and there are not many of them. In the next few chapters, |
| 1624 | introduced to several of the more important special forms. | 1514 | you will be introduced to several of the more important special forms. |
| 1625 | 1515 | ||
| 1626 | The third and final complication is this: if the function that the | 1516 | As well as special forms, there are also @dfn{macros}. A macro |
| 1517 | is a construct defined in Lisp, which differs from a function in that it | ||
| 1518 | translates a Lisp expression into another expression that is to be | ||
| 1519 | evaluated in place of the original expression. (@xref{Lisp macro}.) | ||
| 1520 | |||
| 1521 | For the purposes of this introduction, you do not need to worry too much | ||
| 1522 | about whether something is a special form, macro, or ordinary function. | ||
| 1523 | For example, @code{if} is a special form (@pxref{if}), but @code{when} | ||
| 1524 | is a macro (@pxref{Lisp macro}). In earlier versions of Emacs, | ||
| 1525 | @code{defun} was a special form, but now it is a macro (@pxref{defun}). | ||
| 1526 | It still behaves in the same way. | ||
| 1527 | |||
| 1528 | The final complication is this: if the function that the | ||
| 1627 | Lisp interpreter is looking at is not a special form, and if it is part | 1529 | Lisp interpreter is looking at is not a special form, and if it is part |
| 1628 | of a list, the Lisp interpreter looks to see whether the list has a list | 1530 | of a list, the Lisp interpreter looks to see whether the list has a list |
| 1629 | inside of it. If there is an inner list, the Lisp interpreter first | 1531 | inside of it. If there is an inner list, the Lisp interpreter first |
| @@ -3053,7 +2955,7 @@ symbol refers to it.) | |||
| 3053 | 2955 | ||
| 3054 | @menu | 2956 | @menu |
| 3055 | * Primitive Functions:: | 2957 | * Primitive Functions:: |
| 3056 | * defun:: The @code{defun} special form. | 2958 | * defun:: The @code{defun} macro. |
| 3057 | * Install:: Install a function definition. | 2959 | * Install:: Install a function definition. |
| 3058 | * Interactive:: Making a function interactive. | 2960 | * Interactive:: Making a function interactive. |
| 3059 | * Interactive Options:: Different options for @code{interactive}. | 2961 | * Interactive Options:: Different options for @code{interactive}. |
| @@ -3094,18 +2996,15 @@ unless you investigate, you won't know whether an already-written | |||
| 3094 | function is written in Emacs Lisp or C. | 2996 | function is written in Emacs Lisp or C. |
| 3095 | 2997 | ||
| 3096 | @node defun | 2998 | @node defun |
| 3097 | @section The @code{defun} Special Form | 2999 | @section The @code{defun} Macro |
| 3098 | @findex defun | 3000 | @findex defun |
| 3099 | @cindex Special form of @code{defun} | ||
| 3100 | 3001 | ||
| 3101 | @cindex @samp{function definition} defined | 3002 | @cindex @samp{function definition} defined |
| 3102 | In Lisp, a symbol such as @code{mark-whole-buffer} has code attached to | 3003 | In Lisp, a symbol such as @code{mark-whole-buffer} has code attached to |
| 3103 | it that tells the computer what to do when the function is called. | 3004 | it that tells the computer what to do when the function is called. |
| 3104 | This code is called the @dfn{function definition} and is created by | 3005 | This code is called the @dfn{function definition} and is created by |
| 3105 | evaluating a Lisp expression that starts with the symbol @code{defun} | 3006 | evaluating a Lisp expression that starts with the symbol @code{defun} |
| 3106 | (which is an abbreviation for @emph{define function}). Because | 3007 | (which is an abbreviation for @emph{define function}). |
| 3107 | @code{defun} does not evaluate its arguments in the usual way, it is | ||
| 3108 | called a @dfn{special form}. | ||
| 3109 | 3008 | ||
| 3110 | In subsequent sections, we will look at function definitions from the | 3009 | In subsequent sections, we will look at function definitions from the |
| 3111 | Emacs source code, such as @code{mark-whole-buffer}. In this section, | 3010 | Emacs source code, such as @code{mark-whole-buffer}. In this section, |
| @@ -3697,7 +3596,7 @@ name for a @dfn{local variable} that overshadows any use of the same | |||
| 3697 | name outside the @code{let} expression. This is like understanding | 3596 | name outside the @code{let} expression. This is like understanding |
| 3698 | that whenever your host refers to `the house', he means his house, not | 3597 | that whenever your host refers to `the house', he means his house, not |
| 3699 | yours. (Symbols used in argument lists work the same way. | 3598 | yours. (Symbols used in argument lists work the same way. |
| 3700 | @xref{defun, , The @code{defun} Special Form}.) | 3599 | @xref{defun, , The @code{defun} Macro}.) |
| 3701 | 3600 | ||
| 3702 | Local variables created by a @code{let} expression retain their value | 3601 | Local variables created by a @code{let} expression retain their value |
| 3703 | @emph{only} within the @code{let} expression itself (and within | 3602 | @emph{only} within the @code{let} expression itself (and within |
| @@ -4254,7 +4153,7 @@ On the other hand, this function returns @code{nil} if the test is false. | |||
| 4254 | @findex point | 4153 | @findex point |
| 4255 | @findex mark | 4154 | @findex mark |
| 4256 | 4155 | ||
| 4257 | The @code{save-excursion} function is the fourth and final special form | 4156 | The @code{save-excursion} function is the third and final special form |
| 4258 | that we will discuss in this chapter. | 4157 | that we will discuss in this chapter. |
| 4259 | 4158 | ||
| 4260 | In Emacs Lisp programs used for editing, the @code{save-excursion} | 4159 | In Emacs Lisp programs used for editing, the @code{save-excursion} |
| @@ -4381,9 +4280,9 @@ within the body of a @code{let} expression. It looks like this: | |||
| 4381 | @node Review | 4280 | @node Review |
| 4382 | @section Review | 4281 | @section Review |
| 4383 | 4282 | ||
| 4384 | In the last few chapters we have introduced a fair number of functions | 4283 | In the last few chapters we have introduced a macro and a fair number |
| 4385 | and special forms. Here they are described in brief, along with a few | 4284 | of functions and special forms. Here they are described in brief, |
| 4386 | similar functions that have not been mentioned yet. | 4285 | along with a few similar functions that have not been mentioned yet. |
| 4387 | 4286 | ||
| 4388 | @table @code | 4287 | @table @code |
| 4389 | @item eval-last-sexp | 4288 | @item eval-last-sexp |
| @@ -4393,10 +4292,10 @@ invoked with an argument; in that case, the output is printed in the | |||
| 4393 | current buffer. This command is normally bound to @kbd{C-x C-e}. | 4292 | current buffer. This command is normally bound to @kbd{C-x C-e}. |
| 4394 | 4293 | ||
| 4395 | @item defun | 4294 | @item defun |
| 4396 | Define function. This special form has up to five parts: the name, | 4295 | Define function. This macro has up to five parts: the name, a |
| 4397 | a template for the arguments that will be passed to the function, | 4296 | template for the arguments that will be passed to the function, |
| 4398 | documentation, an optional interactive declaration, and the body of the | 4297 | documentation, an optional interactive declaration, and the body of |
| 4399 | definition. | 4298 | the definition. |
| 4400 | 4299 | ||
| 4401 | @need 1250 | 4300 | @need 1250 |
| 4402 | For example, in an early version of Emacs, the function definition was | 4301 | For example, in an early version of Emacs, the function definition was |
| @@ -4803,7 +4702,7 @@ leave mark at previous position." | |||
| 4803 | @end smallexample | 4702 | @end smallexample |
| 4804 | 4703 | ||
| 4805 | Like all function definitions, this definition has five parts following | 4704 | Like all function definitions, this definition has five parts following |
| 4806 | the special form @code{defun}: | 4705 | the macro @code{defun}: |
| 4807 | 4706 | ||
| 4808 | @enumerate | 4707 | @enumerate |
| 4809 | @item | 4708 | @item |
| @@ -8310,7 +8209,7 @@ an @code{if} without the possibility of an else clause. In your mind, | |||
| 8310 | you can replace @code{when} with @code{if} and understand what goes | 8209 | you can replace @code{when} with @code{if} and understand what goes |
| 8311 | on. That is what the Lisp interpreter does. | 8210 | on. That is what the Lisp interpreter does. |
| 8312 | 8211 | ||
| 8313 | Technically speaking, @code{when} is a Lisp macro. A Lisp @dfn{macro} | 8212 | Technically speaking, @code{when} is a Lisp macro. A Lisp macro |
| 8314 | enables you to define new control constructs and other language | 8213 | enables you to define new control constructs and other language |
| 8315 | features. It tells the interpreter how to compute another Lisp | 8214 | features. It tells the interpreter how to compute another Lisp |
| 8316 | expression which will in turn compute the value. In this case, the | 8215 | expression which will in turn compute the value. In this case, the |
| @@ -9293,7 +9192,7 @@ have a value. If the variable already has a value, @code{defvar} does | |||
| 9293 | not override the existing value. Second, @code{defvar} has a | 9192 | not override the existing value. Second, @code{defvar} has a |
| 9294 | documentation string. | 9193 | documentation string. |
| 9295 | 9194 | ||
| 9296 | (Another special form, @code{defcustom}, is designed for variables | 9195 | (There is a related macro, @code{defcustom}, designed for variables |
| 9297 | that people customize. It has more features than @code{defvar}. | 9196 | that people customize. It has more features than @code{defvar}. |
| 9298 | (@xref{defcustom, , Setting Variables with @code{defcustom}}.) | 9197 | (@xref{defcustom, , Setting Variables with @code{defcustom}}.) |
| 9299 | 9198 | ||
| @@ -9363,7 +9262,7 @@ In the past, Emacs used the @code{defvar} special form both for | |||
| 9363 | internal variables that you would not expect a user to change and for | 9262 | internal variables that you would not expect a user to change and for |
| 9364 | variables that you do expect a user to change. Although you can still | 9263 | variables that you do expect a user to change. Although you can still |
| 9365 | use @code{defvar} for user customizable variables, please use | 9264 | use @code{defvar} for user customizable variables, please use |
| 9366 | @code{defcustom} instead, since that special form provides a path into | 9265 | @code{defcustom} instead, since it provides a path into |
| 9367 | the Customization commands. (@xref{defcustom, , Specifying Variables | 9266 | the Customization commands. (@xref{defcustom, , Specifying Variables |
| 9368 | using @code{defcustom}}.) | 9267 | using @code{defcustom}}.) |
| 9369 | 9268 | ||
| @@ -11300,11 +11199,11 @@ Let's expand on the metaphor in which a computer program is a robot. | |||
| 11300 | 11199 | ||
| 11301 | A function definition provides the blueprints for a robot. When you | 11200 | A function definition provides the blueprints for a robot. When you |
| 11302 | install a function definition, that is, when you evaluate a | 11201 | install a function definition, that is, when you evaluate a |
| 11303 | @code{defun} special form, you install the necessary equipment to | 11202 | @code{defun} macro, you install the necessary equipment to build |
| 11304 | build robots. It is as if you were in a factory, setting up an | 11203 | robots. It is as if you were in a factory, setting up an assembly |
| 11305 | assembly line. Robots with the same name are built according to the | 11204 | line. Robots with the same name are built according to the same |
| 11306 | same blueprints. So they have, as it were, the same `model number', | 11205 | blueprints. So they have, as it were, the same `model number', but a |
| 11307 | but a different `serial number'. | 11206 | different `serial number'. |
| 11308 | 11207 | ||
| 11309 | We often say that a recursive function `calls itself'. What we mean | 11208 | We often say that a recursive function `calls itself'. What we mean |
| 11310 | is that the instructions in a recursive function cause the Lisp | 11209 | is that the instructions in a recursive function cause the Lisp |
| @@ -16971,10 +16870,9 @@ definitions; but you can write @code{defuns} in your @file{.emacs} | |||
| 16971 | file. Indeed, you can write any Lisp expression in your @file{.emacs} | 16870 | file. Indeed, you can write any Lisp expression in your @file{.emacs} |
| 16972 | file.) | 16871 | file.) |
| 16973 | 16872 | ||
| 16974 | The @code{customize} feature depends on the @code{defcustom} special | 16873 | The @code{customize} feature depends on the @code{defcustom} macro. |
| 16975 | form. Although you can use @code{defvar} or @code{setq} for variables | 16874 | Although you can use @code{defvar} or @code{setq} for variables that |
| 16976 | that users set, the @code{defcustom} special form is designed for the | 16875 | users set, the @code{defcustom} macro is designed for the job. |
| 16977 | job. | ||
| 16978 | 16876 | ||
| 16979 | You can use your knowledge of @code{defvar} for writing the | 16877 | You can use your knowledge of @code{defvar} for writing the |
| 16980 | first three arguments for @code{defcustom}. The first argument to | 16878 | first three arguments for @code{defcustom}. The first argument to |
| @@ -17023,7 +16921,7 @@ Finally, the @code{:group} keyword tells the Emacs Customization | |||
| 17023 | command in which group the variable is located. This tells where to | 16921 | command in which group the variable is located. This tells where to |
| 17024 | find it. | 16922 | find it. |
| 17025 | 16923 | ||
| 17026 | The @code{defcustom} function recognizes more than a dozen keywords. | 16924 | The @code{defcustom} macro recognizes more than a dozen keywords. |
| 17027 | For more information, see @ref{Customization, , Writing Customization | 16925 | For more information, see @ref{Customization, , Writing Customization |
| 17028 | Definitions, elisp, The GNU Emacs Lisp Reference Manual}. | 16926 | Definitions, elisp, The GNU Emacs Lisp Reference Manual}. |
| 17029 | 16927 | ||
| @@ -19454,7 +19352,7 @@ them in an argument list (and within expressions called by them). | |||
| 19454 | @ignore | 19352 | @ignore |
| 19455 | @c texi2dvi fails when the name of the section is within ifnottex ... | 19353 | @c texi2dvi fails when the name of the section is within ifnottex ... |
| 19456 | (@xref{Prevent confusion, , @code{let} Prevents Confusion}, and | 19354 | (@xref{Prevent confusion, , @code{let} Prevents Confusion}, and |
| 19457 | @ref{defun, , The @code{defun} Special Form}.) | 19355 | @ref{defun, , The @code{defun} Macro}.) |
| 19458 | @end ignore | 19356 | @end ignore |
| 19459 | 19357 | ||
| 19460 | @node yank | 19358 | @node yank |
| @@ -20974,7 +20872,7 @@ equivalent of @code{multiply-by-seven} is: | |||
| 20974 | @end smallexample | 20872 | @end smallexample |
| 20975 | 20873 | ||
| 20976 | @noindent | 20874 | @noindent |
| 20977 | (@xref{defun, , The @code{defun} Special Form}.) | 20875 | (@xref{defun, , The @code{defun} Macro}.) |
| 20978 | 20876 | ||
| 20979 | @need 1250 | 20877 | @need 1250 |
| 20980 | @noindent | 20878 | @noindent |
diff --git a/doc/lispintro/makefile.w32-in b/doc/lispintro/makefile.w32-in index 377112a80d2..39760ba5612 100644 --- a/doc/lispintro/makefile.w32-in +++ b/doc/lispintro/makefile.w32-in | |||
| @@ -23,10 +23,13 @@ srcdir = . | |||
| 23 | infodir = $(srcdir)/../../info | 23 | infodir = $(srcdir)/../../info |
| 24 | # Directory with the (customized) texinfo.tex file. | 24 | # Directory with the (customized) texinfo.tex file. |
| 25 | texinfodir = $(srcdir)/../misc | 25 | texinfodir = $(srcdir)/../misc |
| 26 | # Directory with emacsver.texi. | ||
| 27 | emacsdir = $(srcdir)/../emacs | ||
| 26 | 28 | ||
| 27 | INFO_EXT=.info | 29 | INFO_EXT=.info |
| 28 | INFO_OPTS=--no-split | 30 | INFO_OPTS=--no-split -I$(emacsdir) |
| 29 | INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi $(srcdir)/doclicense.texi | 31 | INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi $(emacsdir)/emacsver.texi \ |
| 32 | $(srcdir)/doclicense.texi | ||
| 30 | # The file name eintr must fit within 5 characters, to allow for | 33 | # The file name eintr must fit within 5 characters, to allow for |
| 31 | # -NN extensions to fit into DOS 8+3 limits without clashing | 34 | # -NN extensions to fit into DOS 8+3 limits without clashing |
| 32 | INFO_TARGETS = $(infodir)/eintr$(INFO_EXT) | 35 | INFO_TARGETS = $(infodir)/eintr$(INFO_EXT) |
| @@ -37,8 +40,9 @@ INSTALL_INFO = install-info | |||
| 37 | TEXI2DVI = texi2dvi | 40 | TEXI2DVI = texi2dvi |
| 38 | TEXI2PDF = texi2pdf | 41 | TEXI2PDF = texi2pdf |
| 39 | DVIPS = dvips | 42 | DVIPS = dvips |
| 40 | ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \ | 43 | ENVADD = $(srcdir)\..\..\nt\envadd.bat \ |
| 41 | "MAKEINFO=$(MAKEINFO) -I$(srcdir) -I$(texinfodir)" /C | 44 | "TEXINPUTS=$(srcdir);$(texinfodir);$(emacsdir);$(TEXINPUTS)" \ |
| 45 | "MAKEINFO=$(MAKEINFO) -I$(srcdir) -I$(emacsdir) -I$(texinfodir)" /C | ||
| 42 | 46 | ||
| 43 | .SUFFIXES: .dvi .ps .texi | 47 | .SUFFIXES: .dvi .ps .texi |
| 44 | 48 | ||
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 7455881518a..8f675bfcda6 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,10 +1,66 @@ | |||
| 1 | 2013-03-16 Glenn Morris <rgm@gnu.org> | 1 | 2013-05-29 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 2 | ||
| 3 | * elisp.texi: Add some stuff specific to www.gnu.org. | 3 | * functions.texi (Lambda Expressions): Lambda expressions don't |
| 4 | evaluate to themselves in general (bug#11782). | ||
| 5 | |||
| 6 | 2013-05-15 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 7 | |||
| 8 | * loading.texi (Autoload): | ||
| 9 | * help.texi (Documentation Basics, Accessing Documentation) | ||
| 10 | (Accessing Documentation, Accessing Documentation): DOC-* is now DOC. | ||
| 11 | |||
| 12 | 2013-04-23 Glenn Morris <rgm@gnu.org> | ||
| 13 | |||
| 14 | * internals.texi (Writing Emacs Primitives): Remove obvious example. | ||
| 15 | Tweak other to avoid overly long line. | ||
| 16 | |||
| 17 | 2013-04-21 Xue Fuqiao <xfq.free@gmail.com> | ||
| 18 | |||
| 19 | * internals.texi (Writing Emacs Primitives): Remove unnecessary | ||
| 20 | references to the sources. (Bug#13800) | ||
| 21 | |||
| 22 | * searching.texi (Regexp Backslash): Doc fix for backslash | ||
| 23 | constructs in regular expressions. | ||
| 24 | |||
| 25 | 2013-04-15 Christopher Schmidt <christopher@ch.ristopher.com> | ||
| 26 | |||
| 27 | * tips.texi (Coding Conventions): Mention separation of package | ||
| 28 | descriptor and name of internal symbols by two hyphens. | ||
| 29 | |||
| 30 | 2013-04-13 Stephen Berman <stephen.berman@gmx.net> | ||
| 31 | |||
| 32 | * windows.texi (Splitting Windows): Change category of | ||
| 33 | split-window from a command to a function. | ||
| 34 | |||
| 35 | 2013-04-06 Chong Yidong <cyd@gnu.org> | ||
| 36 | |||
| 37 | * display.texi (Faces): Minor clarifications. | ||
| 38 | (Defining Faces): Clarify default vs custom face specs. | ||
| 39 | Document face-spec-set. | ||
| 40 | |||
| 41 | * display.texi (Overlay Properties): | ||
| 42 | * text.texi (Special Properties): Use the "anonymous face" | ||
| 43 | terminology. Describe foreground-color and background-color forms | ||
| 44 | as compatibility-only. | ||
| 45 | |||
| 46 | 2013-03-24 Eli Zaretskii <eliz@gnu.org> | ||
| 47 | |||
| 48 | * compile.texi (Byte-Code Objects): Add index entry. | ||
| 49 | (Disassembly): Add cross-references. | ||
| 50 | |||
| 51 | 2013-03-23 Eli Zaretskii <eliz@gnu.org> | ||
| 52 | |||
| 53 | * frames.texi (Size Parameters): More accurate description of the | ||
| 54 | difference between 'fullboth' and 'maximized'. (Bug#13935) | ||
| 55 | |||
| 56 | 2013-03-17 Christopher Schmidt <christopher@ch.ristopher.com> | ||
| 57 | |||
| 58 | * symbols.texi (Standard Properties): Document pure. (Bug#13823) | ||
| 4 | 59 | ||
| 5 | 2013-03-16 Glenn Morris <rgm@gnu.org> | 60 | 2013-03-16 Glenn Morris <rgm@gnu.org> |
| 6 | 61 | ||
| 7 | * Version 24.3 released. | 62 | * elisp.texi: Add some stuff specific to www.gnu.org. |
| 63 | |||
| 8 | 2013-03-11 Teodor Zlatanov <tzz@lifelogs.com> | 64 | 2013-03-11 Teodor Zlatanov <tzz@lifelogs.com> |
| 9 | 65 | ||
| 10 | * control.texi (Pattern matching case statement): Fix typo. | 66 | * control.texi (Pattern matching case statement): Fix typo. |
| @@ -2005,8 +2061,8 @@ | |||
| 2005 | 2061 | ||
| 2006 | 2012-02-04 Chong Yidong <cyd@gnu.org> | 2062 | 2012-02-04 Chong Yidong <cyd@gnu.org> |
| 2007 | 2063 | ||
| 2008 | * functions.texi (What Is a Function): Add closures. Mention | 2064 | * functions.texi (What Is a Function): Add closures. |
| 2009 | "return value" terminology. Add xref for command-execute. | 2065 | Mention "return value" terminology. Add xref for command-execute. |
| 2010 | Remove unused "keystroke command" terminology. | 2066 | Remove unused "keystroke command" terminology. |
| 2011 | (Lambda Expressions): Give a different example than in the | 2067 | (Lambda Expressions): Give a different example than in the |
| 2012 | following subsection. Add xref to Anonymous Functions. | 2068 | following subsection. Add xref to Anonymous Functions. |
| @@ -11553,7 +11609,7 @@ | |||
| 11553 | 11609 | ||
| 11554 | 2002-05-13 Kim F. Storm <storm@cua.dk> | 11610 | 2002-05-13 Kim F. Storm <storm@cua.dk> |
| 11555 | 11611 | ||
| 11556 | * variables.texi (Intro to Buffer-Local): Updated warning and | 11612 | * variables.texi (Intro to Buffer-Local): Update warning and |
| 11557 | example relating to changing buffer inside let. | 11613 | example relating to changing buffer inside let. |
| 11558 | 11614 | ||
| 11559 | 2002-03-10 Jan Djärv <jan.h.d@swipnet.se> | 11615 | 2002-03-10 Jan Djärv <jan.h.d@swipnet.se> |
diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi index d60ffebae70..522a88da61e 100644 --- a/doc/lispref/compile.texi +++ b/doc/lispref/compile.texi | |||
| @@ -514,6 +514,7 @@ one you intend to suppress. | |||
| 514 | @section Byte-Code Function Objects | 514 | @section Byte-Code Function Objects |
| 515 | @cindex compiled function | 515 | @cindex compiled function |
| 516 | @cindex byte-code function | 516 | @cindex byte-code function |
| 517 | @cindex byte-code object | ||
| 517 | 518 | ||
| 518 | Byte-compiled functions have a special data type: they are | 519 | Byte-compiled functions have a special data type: they are |
| 519 | @dfn{byte-code function objects}. Whenever such an object appears as | 520 | @dfn{byte-code function objects}. Whenever such an object appears as |
| @@ -606,8 +607,9 @@ name of an existing buffer. Then the output goes there, at point, and | |||
| 606 | point is left before the output. | 607 | point is left before the output. |
| 607 | 608 | ||
| 608 | The argument @var{object} can be a function name, a lambda expression | 609 | The argument @var{object} can be a function name, a lambda expression |
| 609 | or a byte-code object. If it is a lambda expression, @code{disassemble} | 610 | (@pxref{Lambda Expressions}), or a byte-code object (@pxref{Byte-Code |
| 610 | compiles it and disassembles the resulting compiled code. | 611 | Objects}). If it is a lambda expression, @code{disassemble} compiles |
| 612 | it and disassembles the resulting compiled code. | ||
| 611 | @end deffn | 613 | @end deffn |
| 612 | 614 | ||
| 613 | Here are two examples of using the @code{disassemble} function. We | 615 | Here are two examples of using the @code{disassemble} function. We |
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index eae6af9969d..4adcfdf8f4f 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi | |||
| @@ -1510,31 +1510,31 @@ of the symbol serve as defaults for the properties of the overlay. | |||
| 1510 | 1510 | ||
| 1511 | @item face | 1511 | @item face |
| 1512 | @kindex face @r{(overlay property)} | 1512 | @kindex face @r{(overlay property)} |
| 1513 | This property controls the way text is displayed---for example, which | 1513 | This property controls the appearance of the text (@pxref{Faces}). |
| 1514 | font and which colors. @xref{Faces}, for more information. | 1514 | The value of the property can be the following: |
| 1515 | |||
| 1516 | In the simplest case, the value is a face name. It can also be a list; | ||
| 1517 | then each element can be any of these possibilities: | ||
| 1518 | 1515 | ||
| 1519 | @itemize @bullet | 1516 | @itemize @bullet |
| 1520 | @item | 1517 | @item |
| 1521 | A face name (a symbol or string). | 1518 | A face name (a symbol or string). |
| 1522 | 1519 | ||
| 1523 | @item | 1520 | @item |
| 1524 | A property list of face attributes. This has the form (@var{keyword} | 1521 | An anonymous face: a property list of the form @code{(@var{keyword} |
| 1525 | @var{value} @dots{}), where each @var{keyword} is a face attribute | 1522 | @var{value} @dots{})}, where each @var{keyword} is a face attribute |
| 1526 | name and @var{value} is a meaningful value for that attribute. With | 1523 | name and @var{value} is a value for that attribute. |
| 1527 | this feature, you do not need to create a face each time you want to | ||
| 1528 | specify a particular attribute for certain text. @xref{Face | ||
| 1529 | Attributes}. | ||
| 1530 | 1524 | ||
| 1531 | @item | 1525 | @item |
| 1532 | A cons cell, of the form @code{(foreground-color . @var{color-name})} | 1526 | A list of faces. Each list element should be either a face name or an |
| 1533 | or @code{(background-color . @var{color-name})}. These elements | 1527 | anonymous face. This specifies a face which is an aggregate of the |
| 1534 | specify just the foreground color or just the background color. | 1528 | attributes of each of the listed faces. Faces occurring earlier in |
| 1529 | the list have higher priority. | ||
| 1535 | 1530 | ||
| 1536 | @code{(foreground-color . @var{color-name})} has the same effect as | 1531 | @item |
| 1537 | @code{(:foreground @var{color-name})}; likewise for the background. | 1532 | A cons cell of the form @code{(foreground-color . @var{color-name})} |
| 1533 | or @code{(background-color . @var{color-name})}. This specifies the | ||
| 1534 | foreground or background color, similar to @code{(:foreground | ||
| 1535 | @var{color-name})} or @code{(:background @var{color-name})}. This | ||
| 1536 | form is supported for backward compatibility only, and should be | ||
| 1537 | avoided. | ||
| 1538 | @end itemize | 1538 | @end itemize |
| 1539 | 1539 | ||
| 1540 | @item mouse-face | 1540 | @item mouse-face |
| @@ -1901,44 +1901,39 @@ height. | |||
| 1901 | @section Faces | 1901 | @section Faces |
| 1902 | @cindex faces | 1902 | @cindex faces |
| 1903 | 1903 | ||
| 1904 | A @dfn{face} is a collection of graphical @dfn{attributes} for | 1904 | A @dfn{face} is a collection of graphical attributes for displaying |
| 1905 | displaying text: font, foreground color, background color, optional | 1905 | text: font, foreground color, background color, optional underlining, |
| 1906 | underlining, etc. Faces control how Emacs displays text in buffers, | 1906 | etc. Faces control how Emacs displays text in buffers, as well as |
| 1907 | as well as other parts of the frame such as the mode line. | 1907 | other parts of the frame such as the mode line. |
| 1908 | 1908 | ||
| 1909 | @cindex anonymous face | 1909 | @cindex anonymous face |
| 1910 | One way to represent a face is as a property list of attributes, | 1910 | One way to represent a face is as a property list of attributes, |
| 1911 | like @code{(:foreground "red" :weight bold)}. For example, you can | 1911 | like @code{(:foreground "red" :weight bold)}. Such a list is called |
| 1912 | assign such an @dfn{anonymous face} as the value of the @code{face} | 1912 | an @dfn{anonymous face}. For example, you can assign an anonymous |
| 1913 | text property; this causes Emacs to display the underlying text with | 1913 | face as the value of the @code{face} text property, and Emacs will |
| 1914 | the specified attributes. @xref{Special Properties}. | 1914 | display the underlying text with the specified attributes. |
| 1915 | @xref{Special Properties}. | ||
| 1915 | 1916 | ||
| 1916 | @cindex face name | 1917 | @cindex face name |
| 1917 | More commonly, a face is referred to via a @dfn{face name}: a Lisp | 1918 | More commonly, a face is referred to via a @dfn{face name}: a Lisp |
| 1918 | symbol which is associated with a set of face attributes. Named faces | 1919 | symbol associated with a set of face attributes@footnote{For backward |
| 1919 | are defined using the @code{defface} macro (@pxref{Defining Faces}). | 1920 | compatibility, you can also use a string to specify a face name; that |
| 1920 | Emacs defines several standard named faces; @xref{Standard Faces,,, | 1921 | is equivalent to a Lisp symbol with the same name.}. Named faces are |
| 1921 | emacs, The GNU Emacs Manual}. | 1922 | defined using the @code{defface} macro (@pxref{Defining Faces}). |
| 1922 | 1923 | Emacs comes with several standard named faces (@pxref{Basic Faces}). | |
| 1923 | Many parts of Emacs require named faces, and do not accept anonymous | 1924 | |
| 1924 | faces. These include the functions documented in @ref{Attribute | 1925 | Many parts of Emacs required named faces, and do not accept |
| 1925 | Functions}, and the variable @code{font-lock-keywords} | 1926 | anonymous faces. These include the functions documented in |
| 1927 | @ref{Attribute Functions}, and the variable @code{font-lock-keywords} | ||
| 1926 | (@pxref{Search-based Fontification}). Unless otherwise stated, we | 1928 | (@pxref{Search-based Fontification}). Unless otherwise stated, we |
| 1927 | will use the term @dfn{face} to refer only to named faces. | 1929 | will use the term @dfn{face} to refer only to named faces. |
| 1928 | 1930 | ||
| 1929 | For backward compatibility, you can also use a string to specify a | ||
| 1930 | face name; that is equivalent to a Lisp symbol with the same name. | ||
| 1931 | |||
| 1932 | @defun facep object | 1931 | @defun facep object |
| 1933 | This function returns a non-@code{nil} value if @var{object} is a | 1932 | This function returns a non-@code{nil} value if @var{object} is a |
| 1934 | named face: a Lisp symbol or string which serves as a face name. | 1933 | named face: a Lisp symbol or string which serves as a face name. |
| 1935 | Otherwise, it returns @code{nil}. | 1934 | Otherwise, it returns @code{nil}. |
| 1936 | @end defun | 1935 | @end defun |
| 1937 | 1936 | ||
| 1938 | By default, each face name corresponds to the same set of attributes | ||
| 1939 | in all frames. But you can also assign a face name a special set of | ||
| 1940 | attributes in one frame (@pxref{Attribute Functions}). | ||
| 1941 | |||
| 1942 | @menu | 1937 | @menu |
| 1943 | * Face Attributes:: What is in a face? | 1938 | * Face Attributes:: What is in a face? |
| 1944 | * Defining Faces:: How to define a face. | 1939 | * Defining Faces:: How to define a face. |
| @@ -2178,32 +2173,47 @@ suitable for use with @code{:stipple} (see above). It returns | |||
| 2178 | @node Defining Faces | 2173 | @node Defining Faces |
| 2179 | @subsection Defining Faces | 2174 | @subsection Defining Faces |
| 2180 | 2175 | ||
| 2176 | @cindex face spec | ||
| 2181 | The usual way to define a face is through the @code{defface} macro. | 2177 | The usual way to define a face is through the @code{defface} macro. |
| 2182 | This macro defines a face name, and associates that name with a set of | 2178 | This macro associates a face name (a symbol) with a default @dfn{face |
| 2183 | face attributes. It also sets up the face so that the user can | 2179 | spec}. A face spec is a construct which specifies what attributes a |
| 2184 | customize it via the Customize interface (@pxref{Customization}). | 2180 | face should have on any given terminal; for example, a face spec might |
| 2181 | specify one foreground color on high-color terminals, and a different | ||
| 2182 | foreground color on low-color terminals. | ||
| 2183 | |||
| 2184 | People are sometimes tempted to create a variable whose value is a | ||
| 2185 | face name. In the vast majority of cases, this is not necessary; the | ||
| 2186 | usual procedure is to define a face with @code{defface}, and then use | ||
| 2187 | its name directly. | ||
| 2185 | 2188 | ||
| 2186 | @defmac defface face spec doc [keyword value]@dots{} | 2189 | @defmac defface face spec doc [keyword value]@dots{} |
| 2187 | This macro declares @var{face} as a customizable face whose default | 2190 | This macro declares @var{face} as a named face whose default face spec |
| 2188 | attributes are given by @var{spec}. You should not quote the symbol | 2191 | is given by @var{spec}. You should not quote the symbol @var{face}, |
| 2189 | @var{face}, and it should not end in @samp{-face} (that would be | 2192 | and it should not end in @samp{-face} (that would be redundant). The |
| 2190 | redundant). The argument @var{doc} is a documentation string for the | 2193 | argument @var{doc} is a documentation string for the face. The |
| 2191 | face. The additional @var{keyword} arguments have the same meanings | 2194 | additional @var{keyword} arguments have the same meanings as in |
| 2192 | as in @code{defgroup} and @code{defcustom} (@pxref{Common Keywords}). | 2195 | @code{defgroup} and @code{defcustom} (@pxref{Common Keywords}). |
| 2193 | 2196 | ||
| 2194 | When @code{defface} executes, it defines the face according to | 2197 | If @var{face} already has a default face spec, this macro does |
| 2195 | @var{spec}, then uses any customizations that were read from the | 2198 | nothing. |
| 2196 | init file (@pxref{Init File}) to override that specification. | 2199 | |
| 2197 | 2200 | The default face spec determines @var{face}'s appearance when no | |
| 2198 | When you evaluate a @code{defface} form with @kbd{C-M-x} in Emacs | 2201 | customizations are in effect (@pxref{Customization}). If @var{face} |
| 2199 | Lisp mode (@code{eval-defun}), a special feature of @code{eval-defun} | 2202 | has already been customized (via Custom themes or via customizations |
| 2200 | overrides any customizations of the face. This way, the face reflects | 2203 | read from the init file), its appearance is determined by the custom |
| 2201 | exactly what the @code{defface} says. | 2204 | face spec(s), which override the default face spec @var{spec}. |
| 2202 | 2205 | However, if the customizations are subsequently removed, the | |
| 2203 | @cindex face specification | 2206 | appearance of @var{face} will again be determined by its default face |
| 2204 | The @var{spec} argument is a @dfn{face specification}, which states | 2207 | spec. |
| 2205 | how the face should appear on different kinds of terminals. It should | 2208 | |
| 2206 | be an alist whose elements each have the form | 2209 | As an exception, if you evaluate a @code{defface} form with |
| 2210 | @kbd{C-M-x} in Emacs Lisp mode (@code{eval-defun}), a special feature | ||
| 2211 | of @code{eval-defun} overrides any custom face specs on the face, | ||
| 2212 | causing the face to reflect exactly what the @code{defface} says. | ||
| 2213 | |||
| 2214 | The @var{spec} argument is a @dfn{face spec}, which states how the | ||
| 2215 | face should appear on different kinds of terminals. It should be an | ||
| 2216 | alist whose elements each have the form | ||
| 2207 | 2217 | ||
| 2208 | @example | 2218 | @example |
| 2209 | (@var{display} . @var{plist}) | 2219 | (@var{display} . @var{plist}) |
| @@ -2275,7 +2285,8 @@ terminal must match one of the @var{value}s specified for it in | |||
| 2275 | @end table | 2285 | @end table |
| 2276 | @end defmac | 2286 | @end defmac |
| 2277 | 2287 | ||
| 2278 | Here's how the standard face @code{highlight} is defined: | 2288 | For example, here's the definition of the standard face |
| 2289 | @code{highlight}: | ||
| 2279 | 2290 | ||
| 2280 | @example | 2291 | @example |
| 2281 | (defface highlight | 2292 | (defface highlight |
| @@ -2294,65 +2305,56 @@ terminal must match one of the @var{value}s specified for it in | |||
| 2294 | :group 'basic-faces) | 2305 | :group 'basic-faces) |
| 2295 | @end example | 2306 | @end example |
| 2296 | 2307 | ||
| 2297 | Internally, Emacs stores the face's default specification in its | 2308 | Internally, Emacs stores each face's default spec in its |
| 2298 | @code{face-defface-spec} symbol property (@pxref{Symbol Properties}). | 2309 | @code{face-defface-spec} symbol property (@pxref{Symbol Properties}). |
| 2299 | The @code{saved-face} property stores the face specification saved by | 2310 | The @code{saved-face} property stores any face spec saved by the user |
| 2300 | the user, using the customization buffer; the @code{customized-face} | 2311 | using the customization buffer; the @code{customized-face} property |
| 2301 | property stores the face specification customized for the current | 2312 | stores the face spec customized for the current session, but not |
| 2302 | session, but not saved; and the @code{theme-face} property stores an | 2313 | saved; and the @code{theme-face} property stores an alist associating |
| 2303 | alist associating the active customization settings and Custom themes | 2314 | the active customization settings and Custom themes with the face |
| 2304 | with their specifications for that face. The face's documentation | 2315 | specs for that face. The face's documentation string is stored in the |
| 2305 | string is stored in the @code{face-documentation} property. But | 2316 | @code{face-documentation} property. |
| 2306 | normally you should not try to set any of these properties directly. | 2317 | |
| 2307 | @xref{Applying Customizations}, for the @code{custom-set-faces} | 2318 | Normally, a face is declared just once, using @code{defface}, and |
| 2308 | function, which is used to apply customized face settings. | 2319 | any further changes to its appearance are applied using the Customize |
| 2309 | 2320 | framework (e.g., via the Customize user interface or via the | |
| 2310 | People are sometimes tempted to create variables whose values | 2321 | @code{custom-set-faces} function; @pxref{Applying Customizations}), or |
| 2311 | specify a face to use. In the vast majority of cases, this is not | 2322 | by face remapping (@pxref{Face Remapping}). In the rare event that |
| 2312 | necessary; it is preferable to simply use faces directly. | 2323 | you need to change a face spec directly from Lisp, you can use the |
| 2324 | @code{face-spec-set} function. | ||
| 2325 | |||
| 2326 | @defun face-spec-set face spec &optional spec-type | ||
| 2327 | This function applies @var{spec} as a face spec for @code{face}. | ||
| 2328 | @var{spec} should be a face spec, as described in the above | ||
| 2329 | documentation for @code{defface}. | ||
| 2330 | |||
| 2331 | @cindex override spec @r{(for a face)} | ||
| 2332 | The argument @var{spec-type} determines which spec to set. If it is | ||
| 2333 | @code{nil} or @code{face-override-spec}, this function sets the | ||
| 2334 | @dfn{override spec}, which overrides over all other face specs on | ||
| 2335 | @var{face}. If it is @code{face-defface-spec}, this function sets the | ||
| 2336 | default face spec (the same one set by @code{defface}). If it is | ||
| 2337 | @code{reset}, this function clears out all customization specs and | ||
| 2338 | override specs from @var{face} (in this case, the value of @var{spec} | ||
| 2339 | is ignored). Any other value of @var{spec-type} is reserved for | ||
| 2340 | internal use. | ||
| 2341 | @end defun | ||
| 2313 | 2342 | ||
| 2314 | @node Attribute Functions | 2343 | @node Attribute Functions |
| 2315 | @subsection Face Attribute Functions | 2344 | @subsection Face Attribute Functions |
| 2316 | 2345 | ||
| 2317 | This section describes the functions for accessing and modifying the | 2346 | This section describes functions for directly accessing and |
| 2318 | attributes of an existing named face. | 2347 | modifying the attributes of a named face. |
| 2319 | |||
| 2320 | @defun set-face-attribute face frame &rest arguments | ||
| 2321 | This function sets one or more attributes of @var{face} for | ||
| 2322 | @var{frame}. The attributes you specify this way override whatever | ||
| 2323 | the @code{defface} says. | ||
| 2324 | |||
| 2325 | The extra arguments @var{arguments} specify the attributes to set, and | ||
| 2326 | the values for them. They should consist of alternating attribute | ||
| 2327 | names (such as @code{:family} or @code{:underline}) and values. Thus, | ||
| 2328 | |||
| 2329 | @example | ||
| 2330 | (set-face-attribute 'foo nil | ||
| 2331 | :width 'extended | ||
| 2332 | :weight 'bold) | ||
| 2333 | @end example | ||
| 2334 | |||
| 2335 | @noindent | ||
| 2336 | sets the attribute @code{:width} to @code{extended} and the attribute | ||
| 2337 | @code{:weight} to @code{bold}. | ||
| 2338 | |||
| 2339 | If @var{frame} is @code{t}, this function sets the default attributes | ||
| 2340 | for new frames. Default attribute values specified this way override | ||
| 2341 | the @code{defface} for newly created frames. | ||
| 2342 | |||
| 2343 | If @var{frame} is @code{nil}, this function sets the attributes for | ||
| 2344 | all existing frames, and the default for new frames. | ||
| 2345 | @end defun | ||
| 2346 | 2348 | ||
| 2347 | @defun face-attribute face attribute &optional frame inherit | 2349 | @defun face-attribute face attribute &optional frame inherit |
| 2348 | This returns the value of the @var{attribute} attribute of @var{face} | 2350 | This function returns the value of the @var{attribute} attribute for |
| 2349 | on @var{frame}. If @var{frame} is @code{nil}, that means the selected | 2351 | @var{face} on @var{frame}. |
| 2350 | frame (@pxref{Input Focus}). | ||
| 2351 | 2352 | ||
| 2352 | If @var{frame} is @code{t}, this returns whatever new-frames default | 2353 | If @var{frame} is @code{nil}, that means the selected frame |
| 2353 | value you previously specified with @code{set-face-attribute} for the | 2354 | (@pxref{Input Focus}). If @var{frame} is @code{t}, this function |
| 2354 | @var{attribute} attribute of @var{face}. If you have not specified | 2355 | returns the value of the specified attribute for newly-created frames |
| 2355 | one, it returns @code{nil}. | 2356 | (this is normally @code{unspecified}, unless you have specified some |
| 2357 | value using @code{set-face-attribute}; see below). | ||
| 2356 | 2358 | ||
| 2357 | If @var{inherit} is @code{nil}, only attributes directly defined by | 2359 | If @var{inherit} is @code{nil}, only attributes directly defined by |
| 2358 | @var{face} are considered, so the return value may be | 2360 | @var{face} are considered, so the return value may be |
| @@ -2411,6 +2413,36 @@ If @var{value1} is a relative value for the face attribute | |||
| 2411 | face attribute @var{attribute}, returns @var{value1} unchanged. | 2413 | face attribute @var{attribute}, returns @var{value1} unchanged. |
| 2412 | @end defun | 2414 | @end defun |
| 2413 | 2415 | ||
| 2416 | Normally, Emacs uses the face specs of each face to automatically | ||
| 2417 | calculate its attributes on each frame (@pxref{Defining Faces}). The | ||
| 2418 | function @code{set-face-attribute} can override this calculation by | ||
| 2419 | directly assigning attributes to a face, either on a specific frame or | ||
| 2420 | for all frames. This function is mostly intended for internal usage. | ||
| 2421 | |||
| 2422 | @defun set-face-attribute face frame &rest arguments | ||
| 2423 | This function sets one or more attributes of @var{face} for | ||
| 2424 | @var{frame}. The attributes specifies in this way override the face | ||
| 2425 | spec(s) belonging to @var{face}. | ||
| 2426 | |||
| 2427 | The extra arguments @var{arguments} specify the attributes to set, and | ||
| 2428 | the values for them. They should consist of alternating attribute | ||
| 2429 | names (such as @code{:family} or @code{:underline}) and values. Thus, | ||
| 2430 | |||
| 2431 | @example | ||
| 2432 | (set-face-attribute 'foo nil :weight 'bold :slant 'italic) | ||
| 2433 | @end example | ||
| 2434 | |||
| 2435 | @noindent | ||
| 2436 | sets the attribute @code{:weight} to @code{bold} and the attribute | ||
| 2437 | @code{:slant} to @code{italic}. | ||
| 2438 | |||
| 2439 | |||
| 2440 | If @var{frame} is @code{t}, this function sets the default attributes | ||
| 2441 | for newly created frames. If @var{frame} is @code{nil}, this function | ||
| 2442 | sets the attributes for all existing frames, as well as for newly | ||
| 2443 | created frames. | ||
| 2444 | @end defun | ||
| 2445 | |||
| 2414 | The following commands and functions mostly provide compatibility | 2446 | The following commands and functions mostly provide compatibility |
| 2415 | with old versions of Emacs. They work by calling | 2447 | with old versions of Emacs. They work by calling |
| 2416 | @code{set-face-attribute}. Values of @code{t} and @code{nil} for | 2448 | @code{set-face-attribute}. Values of @code{t} and @code{nil} for |
| @@ -2457,16 +2489,17 @@ This sets the @code{:inverse-video} attribute of @var{face} to | |||
| 2457 | This swaps the foreground and background colors of face @var{face}. | 2489 | This swaps the foreground and background colors of face @var{face}. |
| 2458 | @end deffn | 2490 | @end deffn |
| 2459 | 2491 | ||
| 2460 | The following functions examine the attributes of a face. If you | 2492 | The following functions examine the attributes of a face. They |
| 2461 | don't specify @var{frame}, they refer to the selected frame; @code{t} | 2493 | mostly provide compatibility with old versions of Emacs. If you don't |
| 2462 | refers to the default data for new frames. They return the symbol | 2494 | specify @var{frame}, they refer to the selected frame; @code{t} refers |
| 2463 | @code{unspecified} if the face doesn't define any value for that | 2495 | to the default data for new frames. They return @code{unspecified} if |
| 2464 | attribute. If @var{inherit} is @code{nil}, only an attribute directly | 2496 | the face doesn't define any value for that attribute. If |
| 2465 | defined by the face is returned. If @var{inherit} is non-@code{nil}, | 2497 | @var{inherit} is @code{nil}, only an attribute directly defined by the |
| 2466 | any faces specified by its @code{:inherit} attribute are considered as | 2498 | face is returned. If @var{inherit} is non-@code{nil}, any faces |
| 2467 | well, and if @var{inherit} is a face or a list of faces, then they are | 2499 | specified by its @code{:inherit} attribute are considered as well, and |
| 2468 | also considered, until a specified attribute is found. To ensure that | 2500 | if @var{inherit} is a face or a list of faces, then they are also |
| 2469 | the return value is always specified, use a value of @code{default} for | 2501 | considered, until a specified attribute is found. To ensure that the |
| 2502 | return value is always specified, use a value of @code{default} for | ||
| 2470 | @var{inherit}. | 2503 | @var{inherit}. |
| 2471 | 2504 | ||
| 2472 | @defun face-font face &optional frame | 2505 | @defun face-font face &optional frame |
| @@ -2576,13 +2609,13 @@ The value of this variable is an alist whose elements have the form | |||
| 2576 | any text having the face @var{face} with @var{remapping}, rather than | 2609 | any text having the face @var{face} with @var{remapping}, rather than |
| 2577 | the ordinary definition of @var{face}. | 2610 | the ordinary definition of @var{face}. |
| 2578 | 2611 | ||
| 2579 | @var{remapping} may be any face specification suitable for a | 2612 | @var{remapping} may be any face spec suitable for a @code{face} text |
| 2580 | @code{face} text property: either a face (i.e., a face name or a | 2613 | property: either a face (i.e., a face name or a property list of |
| 2581 | property list of attribute/value pairs), or a list of faces. For | 2614 | attribute/value pairs), or a list of faces. For details, see the |
| 2582 | details, see the description of the @code{face} text property in | 2615 | description of the @code{face} text property in @ref{Special |
| 2583 | @ref{Special Properties}. @var{remapping} serves as the complete | 2616 | Properties}. @var{remapping} serves as the complete specification for |
| 2584 | specification for the remapped face---it replaces the normal | 2617 | the remapped face---it replaces the normal definition of @var{face}, |
| 2585 | definition of @var{face}, instead of modifying it. | 2618 | instead of modifying it. |
| 2586 | 2619 | ||
| 2587 | If @code{face-remapping-alist} is buffer-local, its local value takes | 2620 | If @code{face-remapping-alist} is buffer-local, its local value takes |
| 2588 | effect only within that buffer. | 2621 | effect only within that buffer. |
| @@ -2629,7 +2662,7 @@ and @code{face-remap-reset-base} functions; it is intended for major | |||
| 2629 | modes to remap faces in the buffers they control. | 2662 | modes to remap faces in the buffers they control. |
| 2630 | 2663 | ||
| 2631 | @defun face-remap-add-relative face &rest specs | 2664 | @defun face-remap-add-relative face &rest specs |
| 2632 | This functions adds the face specifications in @var{specs} as relative | 2665 | This functions adds the face spec in @var{specs} as relative |
| 2633 | remappings for face @var{face} in the current buffer. The remaining | 2666 | remappings for face @var{face} in the current buffer. The remaining |
| 2634 | arguments, @var{specs}, should form either a list of face names, or a | 2667 | arguments, @var{specs}, should form either a list of face names, or a |
| 2635 | property list of attribute/value pairs. | 2668 | property list of attribute/value pairs. |
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index 7d56d38ffad..01d2d1d6c45 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi | |||
| @@ -632,8 +632,9 @@ possible. The value @code{fullboth} specifies that both the width and | |||
| 632 | the height shall be set to the size of the screen. The value | 632 | the height shall be set to the size of the screen. The value |
| 633 | @code{maximized} specifies that the frame shall be maximized. The | 633 | @code{maximized} specifies that the frame shall be maximized. The |
| 634 | difference between @code{maximized} and @code{fullboth} is that the | 634 | difference between @code{maximized} and @code{fullboth} is that the |
| 635 | former still has window manager decorations while the latter really | 635 | former can still be resized by dragging window manager decorations |
| 636 | covers the whole screen. | 636 | with the mouse, while the latter really covers the whole screen and |
| 637 | does not allow resizing by mouse dragging. | ||
| 637 | @end table | 638 | @end table |
| 638 | 639 | ||
| 639 | @node Layout Parameters | 640 | @node Layout Parameters |
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index 999923f5b84..7768c147827 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi | |||
| @@ -196,9 +196,8 @@ an example: | |||
| 196 | @end example | 196 | @end example |
| 197 | 197 | ||
| 198 | @noindent | 198 | @noindent |
| 199 | In Emacs Lisp, such a list is valid as an expression---it evaluates to | 199 | In Emacs Lisp, such a list is a valid expression which evaluates to |
| 200 | itself. But its main use is not to be evaluated as an expression, but | 200 | a function object. |
| 201 | to be called as a function. | ||
| 202 | 201 | ||
| 203 | A lambda expression, by itself, has no name; it is an @dfn{anonymous | 202 | A lambda expression, by itself, has no name; it is an @dfn{anonymous |
| 204 | function}. Although lambda expressions can be used this way | 203 | function}. Although lambda expressions can be used this way |
diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi index 9fe069b84d0..aa77ba1f36d 100644 --- a/doc/lispref/help.texi +++ b/doc/lispref/help.texi | |||
| @@ -93,13 +93,12 @@ When you define a variable with a @code{defvar} or related form | |||
| 93 | (@pxref{Defining Variables}), the documentation is stored in the | 93 | (@pxref{Defining Variables}), the documentation is stored in the |
| 94 | variable's @code{variable-documentation} property. | 94 | variable's @code{variable-documentation} property. |
| 95 | 95 | ||
| 96 | @cindex @file{DOC-@var{version}} (documentation) file | 96 | @cindex @file{DOC} (documentation) file |
| 97 | @item | 97 | @item |
| 98 | To save memory, the documentation for preloaded functions and | 98 | To save memory, the documentation for preloaded functions and |
| 99 | variables (including primitive functions and autoloaded functions) is | 99 | variables (including primitive functions and autoloaded functions) is |
| 100 | not kept in memory, but in the file | 100 | not kept in memory, but in the file |
| 101 | @file{emacs/etc/DOC-@var{version}}, where @var{version} is the Emacs | 101 | @file{emacs/etc/DOC}). |
| 102 | version number (@pxref{Version Info}). | ||
| 103 | 102 | ||
| 104 | @item | 103 | @item |
| 105 | When a function or variable is loaded from a byte-compiled file during | 104 | When a function or variable is loaded from a byte-compiled file during |
| @@ -126,7 +125,7 @@ customization groups (but for function documentation, use the | |||
| 126 | @code{documentation} command, below). | 125 | @code{documentation} command, below). |
| 127 | 126 | ||
| 128 | If the value recorded in the property list refers to a documentation | 127 | If the value recorded in the property list refers to a documentation |
| 129 | string stored in a @file{DOC-@var{version}} file or a byte-compiled | 128 | string stored in a @file{DOC} file or a byte-compiled |
| 130 | file, it looks up that string and returns it. If the property value | 129 | file, it looks up that string and returns it. If the property value |
| 131 | isn't @code{nil}, isn't a string, and doesn't refer to text in a file, | 130 | isn't @code{nil}, isn't a string, and doesn't refer to text in a file, |
| 132 | then it is evaluated as a Lisp expression to obtain a string. | 131 | then it is evaluated as a Lisp expression to obtain a string. |
| @@ -296,12 +295,12 @@ memory in the function definitions and variable property lists. | |||
| 296 | Emacs reads the file @var{filename} from the @file{emacs/etc} directory. | 295 | Emacs reads the file @var{filename} from the @file{emacs/etc} directory. |
| 297 | When the dumped Emacs is later executed, the same file will be looked | 296 | When the dumped Emacs is later executed, the same file will be looked |
| 298 | for in the directory @code{doc-directory}. Usually @var{filename} is | 297 | for in the directory @code{doc-directory}. Usually @var{filename} is |
| 299 | @code{"DOC-@var{version}"}. | 298 | @code{"DOC"}. |
| 300 | @end defun | 299 | @end defun |
| 301 | 300 | ||
| 302 | @defvar doc-directory | 301 | @defvar doc-directory |
| 303 | This variable holds the name of the directory which should contain the | 302 | This variable holds the name of the directory which should contain the |
| 304 | file @code{"DOC-@var{version}"} that contains documentation strings for | 303 | file @code{"DOC"} that contains documentation strings for |
| 305 | built-in and preloaded functions and variables. | 304 | built-in and preloaded functions and variables. |
| 306 | 305 | ||
| 307 | In most cases, this is the same as @code{data-directory}. They may be | 306 | In most cases, this is the same as @code{data-directory}. They may be |
diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi index 3269776b626..06375c1e18e 100644 --- a/doc/lispref/internals.texi +++ b/doc/lispref/internals.texi | |||
| @@ -661,15 +661,25 @@ equivalent of @code{&rest}). Both @code{UNEVALLED} and @code{MANY} are | |||
| 661 | macros. If @var{max} is a number, it must be more than @var{min} but | 661 | macros. If @var{max} is a number, it must be more than @var{min} but |
| 662 | less than 8. | 662 | less than 8. |
| 663 | 663 | ||
| 664 | @cindex interactive specification in primitives | ||
| 664 | @item interactive | 665 | @item interactive |
| 665 | This is an interactive specification, a string such as might be used as | 666 | This is an interactive specification, a string such as might be used |
| 666 | the argument of @code{interactive} in a Lisp function. In the case of | 667 | as the argument of @code{interactive} in a Lisp function. In the case |
| 667 | @code{or}, it is 0 (a null pointer), indicating that @code{or} cannot be | 668 | of @code{or}, it is 0 (a null pointer), indicating that @code{or} |
| 668 | called interactively. A value of @code{""} indicates a function that | 669 | cannot be called interactively. A value of @code{""} indicates a |
| 669 | should receive no arguments when called interactively. If the value | 670 | function that should receive no arguments when called interactively. |
| 670 | begins with a @samp{(}, the string is evaluated as a Lisp form. | 671 | If the value begins with a @samp{"(}, the string is evaluated as a |
| 671 | For examples of the last two forms, see @code{widen} and | 672 | Lisp form. For example: |
| 672 | @code{narrow-to-region} in @file{editfns.c}. | 673 | |
| 674 | @example | ||
| 675 | @group | ||
| 676 | DEFUN ("foo", Ffoo, Sfoo, 0, UNEVALLED, | ||
| 677 | "(list (read-char-by-name \"Insert character: \")\ | ||
| 678 | (prefix-numeric-value current-prefix-arg)\ | ||
| 679 | t))", | ||
| 680 | doc: /* @dots{} /*) | ||
| 681 | @end group | ||
| 682 | @end example | ||
| 673 | 683 | ||
| 674 | @item doc | 684 | @item doc |
| 675 | This is the documentation string. It uses C comment syntax rather | 685 | This is the documentation string. It uses C comment syntax rather |
diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi index 51a060bc6c6..5c92307f7d5 100644 --- a/doc/lispref/loading.texi +++ b/doc/lispref/loading.texi | |||
| @@ -483,7 +483,7 @@ For example, | |||
| 483 | @noindent | 483 | @noindent |
| 484 | In this case, @code{"prolog"} is the name of the file to load, 169681 | 484 | In this case, @code{"prolog"} is the name of the file to load, 169681 |
| 485 | refers to the documentation string in the | 485 | refers to the documentation string in the |
| 486 | @file{emacs/etc/DOC-@var{version}} file (@pxref{Documentation Basics}), | 486 | @file{emacs/etc/DOC} file (@pxref{Documentation Basics}), |
| 487 | @code{t} means the function is interactive, and @code{nil} that it is | 487 | @code{t} means the function is interactive, and @code{nil} that it is |
| 488 | not a macro or a keymap. | 488 | not a macro or a keymap. |
| 489 | @end defun | 489 | @end defun |
diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi index 87d4051d6f0..386d5bdde4c 100644 --- a/doc/lispref/searching.texi +++ b/doc/lispref/searching.texi | |||
| @@ -589,10 +589,8 @@ through @samp{f} and @samp{A} through @samp{F}. | |||
| 589 | 589 | ||
| 590 | For the most part, @samp{\} followed by any character matches only | 590 | For the most part, @samp{\} followed by any character matches only |
| 591 | that character. However, there are several exceptions: certain | 591 | that character. However, there are several exceptions: certain |
| 592 | two-character sequences starting with @samp{\} that have special | 592 | sequences starting with @samp{\} that have special meanings. Here is |
| 593 | meanings. (The character after the @samp{\} in such a sequence is | 593 | a table of the special @samp{\} constructs. |
| 594 | always ordinary when used on its own.) Here is a table of the special | ||
| 595 | @samp{\} constructs. | ||
| 596 | 594 | ||
| 597 | @table @samp | 595 | @table @samp |
| 598 | @item \| | 596 | @item \| |
diff --git a/doc/lispref/symbols.texi b/doc/lispref/symbols.texi index 9f916549902..82dfa0f4917 100644 --- a/doc/lispref/symbols.texi +++ b/doc/lispref/symbols.texi | |||
| @@ -539,8 +539,9 @@ deleted from the local value of a hook variable when changing major | |||
| 539 | modes. @xref{Setting Hooks}. | 539 | modes. @xref{Setting Hooks}. |
| 540 | 540 | ||
| 541 | @item pure | 541 | @item pure |
| 542 | This property is used internally to mark certain named functions for | 542 | If the value is non-@code{nil}, the named function is considered to be |
| 543 | byte compiler optimization. Do not set it. | 543 | side-effect free. Calls with constant arguments can be evaluated at |
| 544 | compile time. This may shift run time errors to compile time. | ||
| 544 | 545 | ||
| 545 | @item risky-local-variable | 546 | @item risky-local-variable |
| 546 | If the value is non-@code{nil}, the named variable is considered risky | 547 | If the value is non-@code{nil}, the named variable is considered risky |
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index c6cbfa5b3f8..6d5a39d887a 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi | |||
| @@ -3008,27 +3008,31 @@ character. | |||
| 3008 | @item face | 3008 | @item face |
| 3009 | @cindex face codes of text | 3009 | @cindex face codes of text |
| 3010 | @kindex face @r{(text property)} | 3010 | @kindex face @r{(text property)} |
| 3011 | The @code{face} property controls the appearance of the character, | 3011 | The @code{face} property controls the appearance of the character |
| 3012 | such as its font and color. @xref{Faces}. The value of the property | 3012 | (@pxref{Faces}). The value of the property can be the following: |
| 3013 | can be the following: | ||
| 3014 | 3013 | ||
| 3015 | @itemize @bullet | 3014 | @itemize @bullet |
| 3016 | @item | 3015 | @item |
| 3017 | A face name (a symbol or string). | 3016 | A face name (a symbol or string). |
| 3018 | 3017 | ||
| 3019 | @item | 3018 | @item |
| 3020 | A property list of face attributes. This has the form (@var{keyword} | 3019 | An anonymous face: a property list of the form @code{(@var{keyword} |
| 3021 | @var{value} @dots{}), where each @var{keyword} is a face attribute | 3020 | @var{value} @dots{})}, where each @var{keyword} is a face attribute |
| 3022 | name and @var{value} is a meaningful value for that attribute. With | 3021 | name and @var{value} is a value for that attribute. |
| 3023 | this feature, you do not need to create a face each time you want to | ||
| 3024 | specify a particular attribute for certain text. | ||
| 3025 | 3022 | ||
| 3026 | @item | 3023 | @item |
| 3027 | A list of faces. This specifies a face which is an aggregate of the | 3024 | A list of faces. Each list element should be either a face name or an |
| 3025 | anonymous face. This specifies a face which is an aggregate of the | ||
| 3028 | attributes of each of the listed faces. Faces occurring earlier in | 3026 | attributes of each of the listed faces. Faces occurring earlier in |
| 3029 | the list have higher priority. Each list element must have one of the | 3027 | the list have higher priority. |
| 3030 | two above forms (i.e., either a face name or a property list of face | 3028 | |
| 3031 | attributes). | 3029 | @item |
| 3030 | A cons cell of the form @code{(foreground-color . @var{color-name})} | ||
| 3031 | or @code{(background-color . @var{color-name})}. This specifies the | ||
| 3032 | foreground or background color, similar to @code{(:foreground | ||
| 3033 | @var{color-name})} or @code{(:background @var{color-name})}. This | ||
| 3034 | form is supported for backward compatibility only, and should be | ||
| 3035 | avoided. | ||
| 3032 | @end itemize | 3036 | @end itemize |
| 3033 | 3037 | ||
| 3034 | Font Lock mode (@pxref{Font Lock Mode}) works in most buffers by | 3038 | Font Lock mode (@pxref{Font Lock Mode}) works in most buffers by |
diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi index 4c443da3af8..c40ae408f7f 100644 --- a/doc/lispref/tips.texi +++ b/doc/lispref/tips.texi | |||
| @@ -51,13 +51,15 @@ don't postpone it. | |||
| 51 | 51 | ||
| 52 | @item | 52 | @item |
| 53 | You should choose a short word to distinguish your program from other | 53 | You should choose a short word to distinguish your program from other |
| 54 | Lisp programs. The names of all global variables, constants, and | 54 | Lisp programs. The names of all global symbols in your program, that |
| 55 | functions in your program should begin with that chosen prefix. | 55 | is the names of variables, constants, and functions, should begin with |
| 56 | Separate the prefix from the rest of the name with a hyphen, @samp{-}. | 56 | that chosen prefix. Separate the prefix from the rest of the name |
| 57 | This practice helps avoid name conflicts, since all global variables | 57 | with a hyphen, @samp{-}. Use two hyphens if the symbol is not meant |
| 58 | in Emacs Lisp share the same name space, and all functions share | 58 | to be used by other packages. This practice helps avoid name |
| 59 | another name space@footnote{The benefits of a Common Lisp-style | 59 | conflicts, since all global variables in Emacs Lisp share the same |
| 60 | package system are considered not to outweigh the costs.}. | 60 | name space, and all functions share another name space@footnote{The |
| 61 | benefits of a Common Lisp-style package system are considered not to | ||
| 62 | outweigh the costs.}. | ||
| 61 | 63 | ||
| 62 | Occasionally, for a command name intended for users to use, it is more | 64 | Occasionally, for a command name intended for users to use, it is more |
| 63 | convenient if some words come before the package's name prefix. And | 65 | convenient if some words come before the package's name prefix. And |
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 792002add81..f2a4b3849dd 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi | |||
| @@ -717,7 +717,7 @@ window. | |||
| 717 | This section describes functions for creating a new window by | 717 | This section describes functions for creating a new window by |
| 718 | @dfn{splitting} an existing one. | 718 | @dfn{splitting} an existing one. |
| 719 | 719 | ||
| 720 | @deffn Command split-window &optional window size side | 720 | @defun split-window &optional window size side |
| 721 | This function creates a new live window next to the window | 721 | This function creates a new live window next to the window |
| 722 | @var{window}. If @var{window} is omitted or @code{nil}, it defaults | 722 | @var{window}. If @var{window} is omitted or @code{nil}, it defaults |
| 723 | to the selected window. That window is ``split'', and reduced in | 723 | to the selected window. That window is ``split'', and reduced in |
| @@ -767,7 +767,7 @@ called with the arguments @var{window}, @var{size}, and @var{side}, in | |||
| 767 | lieu of the usual action of @code{split-window}. Otherwise, this | 767 | lieu of the usual action of @code{split-window}. Otherwise, this |
| 768 | function obeys the @code{window-atom} or @code{window-side} window | 768 | function obeys the @code{window-atom} or @code{window-side} window |
| 769 | parameter, if any. @xref{Window Parameters}. | 769 | parameter, if any. @xref{Window Parameters}. |
| 770 | @end deffn | 770 | @end defun |
| 771 | 771 | ||
| 772 | As an example, here is a sequence of @code{split-window} calls that | 772 | As an example, here is a sequence of @code{split-window} calls that |
| 773 | yields the window configuration discussed in @ref{Windows and Frames}. | 773 | yields the window configuration discussed in @ref{Windows and Frames}. |
diff --git a/doc/man/ChangeLog b/doc/man/ChangeLog index 8a2a90f7895..8b550dc4417 100644 --- a/doc/man/ChangeLog +++ b/doc/man/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2013-04-20 Petr Hracek <phracek@redhat.com> (tiny change) | ||
| 2 | |||
| 3 | * emacs.1: Add some more command-line options. (Bug#14165) | ||
| 4 | |||
| 1 | 2012-12-02 Kevin Ryde <user42@zip.com.au> | 5 | 2012-12-02 Kevin Ryde <user42@zip.com.au> |
| 2 | 6 | ||
| 3 | * etags.1: Mention effect of --declarations in Lisp. | 7 | * etags.1: Mention effect of --declarations in Lisp. |
diff --git a/doc/man/emacs.1 b/doc/man/emacs.1 index 3d0c5107adc..9149be2c523 100644 --- a/doc/man/emacs.1 +++ b/doc/man/emacs.1 | |||
| @@ -79,12 +79,22 @@ Go to the specified | |||
| 79 | and | 79 | and |
| 80 | .IR column . | 80 | .IR column . |
| 81 | .TP | 81 | .TP |
| 82 | .BI \-\-chdir " directory" | ||
| 83 | Change to | ||
| 84 | .IR directory . | ||
| 85 | .TP | ||
| 82 | .BR \-q ", " \-\-no\-init\-file | 86 | .BR \-q ", " \-\-no\-init\-file |
| 83 | Do not load an init file. | 87 | Do not load an init file. |
| 84 | .TP | 88 | .TP |
| 89 | .BR \-nl ", " \-\-no\-shared\-memory | ||
| 90 | Do not use shared memory. | ||
| 91 | .TP | ||
| 85 | .B \-\-no\-site\-file | 92 | .B \-\-no\-site\-file |
| 86 | Do not load the site-wide startup file. | 93 | Do not load the site-wide startup file. |
| 87 | .TP | 94 | .TP |
| 95 | .BR \-nsl ", " \-\-no\-site\-lisp | ||
| 96 | Do not add site-lisp directories to load-path. | ||
| 97 | .TP | ||
| 88 | .B \-\-no\-desktop | 98 | .B \-\-no\-desktop |
| 89 | Do not load a saved desktop. | 99 | Do not load a saved desktop. |
| 90 | .TP | 100 | .TP |
| @@ -325,6 +335,9 @@ in iconified state. | |||
| 325 | .BR \-nbc ", " \-\-no\-blinking\-cursor | 335 | .BR \-nbc ", " \-\-no\-blinking\-cursor |
| 326 | Disable blinking cursor. | 336 | Disable blinking cursor. |
| 327 | .TP | 337 | .TP |
| 338 | .BI \-\-parent-id " xid" | ||
| 339 | Set parent window. | ||
| 340 | .TP | ||
| 328 | .BR \-nw ", " \-\-no\-window\-system | 341 | .BR \-nw ", " \-\-no\-window\-system |
| 329 | Tell | 342 | Tell |
| 330 | .I Emacs | 343 | .I Emacs |
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 45862f93f0c..8ee12718980 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,50 @@ | |||
| 1 | 2013-05-28 Xue Fuqiao <xfq.free@gmail.com> | ||
| 2 | |||
| 3 | * erc.texi (Special Features): ERC is being maintained within | ||
| 4 | Emacs now. | ||
| 5 | |||
| 6 | 2013-05-25 Xue Fuqiao <xfq.free@gmail.com> | ||
| 7 | |||
| 8 | * flymake.texi: Changing from one space between sentences to two. | ||
| 9 | |||
| 10 | 2013-05-04 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 11 | |||
| 12 | * cl.texi (Obsolete Macros): Describe replacements for `flet' | ||
| 13 | (bug#14293). | ||
| 14 | |||
| 15 | 2013-04-16 Michael Albinus <michael.albinus@gmx.de> | ||
| 16 | |||
| 17 | * tramp.texi (Frequently Asked Questions): Precise, how to define | ||
| 18 | an own ControlPath. | ||
| 19 | |||
| 20 | 2013-04-15 Michael Albinus <michael.albinus@gmx.de> | ||
| 21 | |||
| 22 | * tramp.texi (Frequently Asked Questions): New item for | ||
| 23 | ControlPath settings. | ||
| 24 | |||
| 25 | 2013-03-31 Jay Belanger <jay.p.belanger@gmail.com> | ||
| 26 | |||
| 27 | * calc.texi: (Basic Operations on Units): Streamline some | ||
| 28 | descriptions. | ||
| 29 | |||
| 30 | 2013-03-27 Aidan Gauland <aidalgol@no8wireless.co.nz> | ||
| 31 | |||
| 32 | * eshell.texi (Built-ins): Update manual to mention tramp module. | ||
| 33 | |||
| 34 | 2013-03-18 Michael Albinus <michael.albinus@gmx.de> | ||
| 35 | |||
| 36 | * tramp.texi (Filename Syntax): Host names are not allowed to be | ||
| 37 | any method name, unless method name is specified explicitly. | ||
| 38 | Remove restriction on unibyte filenames. | ||
| 39 | |||
| 40 | * trampver.texi: Update release number. | ||
| 41 | |||
| 42 | 2013-03-17 Paul Eggert <eggert@cs.ucla.edu> | ||
| 43 | |||
| 44 | doc: convert some TeX accents to UTF-8 | ||
| 45 | * emacs-mime.texi (Interface Functions): Use 'ï' rather than | ||
| 46 | '@"{@dotless{i}}'. | ||
| 47 | |||
| 1 | 2013-03-15 Michael Albinus <michael.albinus@gmx.de> | 48 | 2013-03-15 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 49 | ||
| 3 | Sync with Tramp 2.2.7. | 50 | Sync with Tramp 2.2.7. |
| @@ -2395,6 +2442,10 @@ | |||
| 2395 | dired-add-entry, dired-initial-position, dired-clean-up-after-deletion, | 2442 | dired-add-entry, dired-initial-position, dired-clean-up-after-deletion, |
| 2396 | dired-read-shell-command, or dired-find-buffer-nocreate. | 2443 | dired-read-shell-command, or dired-find-buffer-nocreate. |
| 2397 | 2444 | ||
| 2445 | 2013-02-18 Aidan Gauland <aidalgol@no8wireless.co.nz> | ||
| 2446 | |||
| 2447 | * eshell.texi (Input/Output): Document insert output redirection operator, >>>. | ||
| 2448 | |||
| 2398 | 2011-02-18 Glenn Morris <rgm@gnu.org> | 2449 | 2011-02-18 Glenn Morris <rgm@gnu.org> |
| 2399 | 2450 | ||
| 2400 | * dired-x.texi (Optional Installation File At Point): Simplify. | 2451 | * dired-x.texi (Optional Installation File At Point): Simplify. |
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi index 44462d1d5a8..b2b054ec1ea 100644 --- a/doc/misc/calc.texi +++ b/doc/misc/calc.texi | |||
| @@ -27911,11 +27911,10 @@ prompt first for the old units which this value should be considered | |||
| 27911 | to have, then for the new units. (If the value on the stack can be | 27911 | to have, then for the new units. (If the value on the stack can be |
| 27912 | simplified so that it doesn't contain any units, like @samp{ft/in} can | 27912 | simplified so that it doesn't contain any units, like @samp{ft/in} can |
| 27913 | be simplified to 12, then @kbd{u c} will still prompt for both old | 27913 | be simplified to 12, then @kbd{u c} will still prompt for both old |
| 27914 | units and new units. This can be disabled; @pxref{Customizing Calc}.) | 27914 | units and new units. Assuming the old and new units you give are |
| 27915 | Assuming the old and new units you give are consistent with each | 27915 | consistent with each other, the result also will not contain any |
| 27916 | other, the result also will not contain any units. For example, | 27916 | units. For example, @kbd{@w{u c} cm @key{RET} in @key{RET}} converts |
| 27917 | @kbd{@w{u c} cm @key{RET} in @key{RET}} converts the number 2 on the | 27917 | the number 2 on the stack to 5.08. |
| 27918 | stack to 5.08. | ||
| 27919 | 27918 | ||
| 27920 | @kindex u b | 27919 | @kindex u b |
| 27921 | @pindex calc-base-units | 27920 | @pindex calc-base-units |
| @@ -35694,17 +35693,6 @@ have different dimensions. The default value of @code{calc-ensure-consistent-uni | |||
| 35694 | is @code{nil}. | 35693 | is @code{nil}. |
| 35695 | @end defvar | 35694 | @end defvar |
| 35696 | 35695 | ||
| 35697 | @defvar calc-allow-units-as-numbers | ||
| 35698 | When converting units, the variable @code{calc-allow-units-as-numbers} | ||
| 35699 | determines whether or not values which can be simplified so that | ||
| 35700 | they don't contain units (such as @samp{ft/in} can be simplified to 12) | ||
| 35701 | can be regarded as not containing units. If | ||
| 35702 | @code{calc-allow-units-as-numbers} is non-@code{nil}, then @kbd{u c} | ||
| 35703 | will prompt for both old units and new units when converting an expression | ||
| 35704 | like @samp{ft/in}, otherwise @kbd{u c} will only prompt for the new units. | ||
| 35705 | The default value of @code{calc-allow-units-as-numbers} is @code{t}. | ||
| 35706 | @end defvar | ||
| 35707 | |||
| 35708 | @defvar calc-undo-length | 35696 | @defvar calc-undo-length |
| 35709 | The variable @code{calc-undo-length} determines the number of undo | 35697 | The variable @code{calc-undo-length} determines the number of undo |
| 35710 | steps that Calc will keep track of when @code{calc-quit} is called. | 35698 | steps that Calc will keep track of when @code{calc-quit} is called. |
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index 83df411cb23..90f8a258d23 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi | |||
| @@ -4850,10 +4850,27 @@ generated directly inside Emacs will not be caught since they make | |||
| 4850 | direct C-language calls to the message routines rather than going | 4850 | direct C-language calls to the message routines rather than going |
| 4851 | through the Lisp @code{message} function. | 4851 | through the Lisp @code{message} function. |
| 4852 | 4852 | ||
| 4853 | For those cases where the dynamic scoping of @code{flet} is desired, | ||
| 4854 | @code{cl-flet} is clearly not a substitute. The most direct replacement would | ||
| 4855 | be instead to use @code{cl-letf} to temporarily rebind @code{(symbol-function | ||
| 4856 | '@var{fun})}. But in most cases, a better substitute is to use an advice, such | ||
| 4857 | as: | ||
| 4858 | |||
| 4859 | @example | ||
| 4860 | (defvar my-fun-advice-enable nil) | ||
| 4861 | (add-advice '@var{fun} :around | ||
| 4862 | (lambda (orig &rest args) | ||
| 4863 | (if my-fun-advice-enable (do-something) | ||
| 4864 | (apply orig args)))) | ||
| 4865 | @end example | ||
| 4866 | |||
| 4867 | so that you can then replace the @code{flet} with a simple dynamically scoped | ||
| 4868 | binding of @code{my-fun-advice-enable}. | ||
| 4869 | |||
| 4853 | @c Bug#411. | 4870 | @c Bug#411. |
| 4854 | Note that many primitives (e.g., @code{+}) have special byte-compile | 4871 | Note that many primitives (e.g., @code{+}) have special byte-compile handling. |
| 4855 | handling. Attempts to redefine such functions using @code{flet} will | 4872 | Attempts to redefine such functions using @code{flet}, @code{cl-letf}, or an |
| 4856 | fail if byte-compiled. | 4873 | advice will fail when byte-compiled. |
| 4857 | @c Or cl-flet. | 4874 | @c Or cl-flet. |
| 4858 | @c In such cases, use @code{labels} instead. | 4875 | @c In such cases, use @code{labels} instead. |
| 4859 | @end defmac | 4876 | @end defmac |
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi index 5f377e57725..cbb78af9d59 100644 --- a/doc/misc/emacs-mime.texi +++ b/doc/misc/emacs-mime.texi | |||
| @@ -1221,7 +1221,7 @@ Return the value of the field under point. | |||
| 1221 | @item mail-encode-encoded-word-region | 1221 | @item mail-encode-encoded-word-region |
| 1222 | @findex mail-encode-encoded-word-region | 1222 | @findex mail-encode-encoded-word-region |
| 1223 | Encode the non-@acronym{ASCII} words in the region. For instance, | 1223 | Encode the non-@acronym{ASCII} words in the region. For instance, |
| 1224 | @samp{Na@"{@dotless{i}}ve} is encoded as @samp{=?iso-8859-1?q?Na=EFve?=}. | 1224 | @samp{Naïve} is encoded as @samp{=?iso-8859-1?q?Na=EFve?=}. |
| 1225 | 1225 | ||
| 1226 | @item mail-encode-encoded-word-buffer | 1226 | @item mail-encode-encoded-word-buffer |
| 1227 | @findex mail-encode-encoded-word-buffer | 1227 | @findex mail-encode-encoded-word-buffer |
| @@ -1234,7 +1234,7 @@ Encode the words that need encoding in a string, and return the result. | |||
| 1234 | 1234 | ||
| 1235 | @example | 1235 | @example |
| 1236 | (mail-encode-encoded-word-string | 1236 | (mail-encode-encoded-word-string |
| 1237 | "This is na@"{@dotless{i}}ve, baby") | 1237 | "This is naïve, baby") |
| 1238 | @result{} "This is =?iso-8859-1?q?na=EFve,?= baby" | 1238 | @result{} "This is =?iso-8859-1?q?na=EFve,?= baby" |
| 1239 | @end example | 1239 | @end example |
| 1240 | 1240 | ||
| @@ -1249,7 +1249,7 @@ Decode the encoded words in the string and return the result. | |||
| 1249 | @example | 1249 | @example |
| 1250 | (mail-decode-encoded-word-string | 1250 | (mail-decode-encoded-word-string |
| 1251 | "This is =?iso-8859-1?q?na=EFve,?= baby") | 1251 | "This is =?iso-8859-1?q?na=EFve,?= baby") |
| 1252 | @result{} "This is na@"{@dotless{i}}ve, baby" | 1252 | @result{} "This is naïve, baby" |
| 1253 | @end example | 1253 | @end example |
| 1254 | 1254 | ||
| 1255 | @end table | 1255 | @end table |
diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi index cc61cd1ab5b..33686fd79fd 100644 --- a/doc/misc/erc.texi +++ b/doc/misc/erc.texi | |||
| @@ -234,9 +234,9 @@ forwards. | |||
| 234 | 234 | ||
| 235 | Different channels and servers may have different language encodings. | 235 | Different channels and servers may have different language encodings. |
| 236 | 236 | ||
| 237 | In addition, it is possible to translate the messages that ERC uses into | 237 | In addition, it is possible to translate the messages that ERC uses |
| 238 | multiple languages. Please contact the developers of ERC at | 238 | into multiple languages. Please contact the developers of Emacs at |
| 239 | @email{erc-discuss@@gnu.org} if you are interested in helping with the | 239 | @email{emacs-devel@@gnu.org} if you are interested in helping with the |
| 240 | translation effort. | 240 | translation effort. |
| 241 | 241 | ||
| 242 | @item user scripting | 242 | @item user scripting |
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi index ec01f731daf..dca95da2d10 100644 --- a/doc/misc/eshell.texi +++ b/doc/misc/eshell.texi | |||
| @@ -460,8 +460,9 @@ With @samp{cd -42}, you can access the directory stack by number. | |||
| 460 | @cmindex su | 460 | @cmindex su |
| 461 | @itemx sudo | 461 | @itemx sudo |
| 462 | @cmindex sudo | 462 | @cmindex sudo |
| 463 | Uses TRAMP's @command{su} or @command{sudo} method to run a command via | 463 | Uses TRAMP's @command{su} or @command{sudo} method @pxref{Inline methods, , , tramp} |
| 464 | @command{su} or @command{sudo}. | 464 | to run a command via @command{su} or @command{sudo}. These commands |
| 465 | are in the eshell-tramp module, which is disabled by default. | ||
| 465 | 466 | ||
| 466 | @end table | 467 | @end table |
| 467 | 468 | ||
diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi index 5dedda16ee1..f88bd95008c 100644 --- a/doc/misc/flymake.texi +++ b/doc/misc/flymake.texi | |||
| @@ -63,13 +63,13 @@ modify this GNU manual.'' | |||
| 63 | @cindex Overview of Flymake | 63 | @cindex Overview of Flymake |
| 64 | 64 | ||
| 65 | Flymake is a universal on-the-fly syntax checker implemented as an | 65 | Flymake is a universal on-the-fly syntax checker implemented as an |
| 66 | Emacs minor mode. Flymake runs the pre-configured syntax check tool | 66 | Emacs minor mode. Flymake runs the pre-configured syntax check tool |
| 67 | (compiler for C++ files, @code{perl} for perl files, etc.)@: in the | 67 | (compiler for C++ files, @code{perl} for perl files, etc.)@: in the |
| 68 | background, passing it a temporary copy of the current buffer, and | 68 | background, passing it a temporary copy of the current buffer, and |
| 69 | parses the output for known error/warning message patterns. Flymake | 69 | parses the output for known error/warning message patterns. Flymake |
| 70 | then highlights erroneous lines (i.e., lines for which at least one | 70 | then highlights erroneous lines (i.e., lines for which at least one |
| 71 | error or warning has been reported by the syntax check tool), and | 71 | error or warning has been reported by the syntax check tool), and |
| 72 | displays an overall buffer status in the mode line. Status information | 72 | displays an overall buffer status in the mode line. Status information |
| 73 | displayed by Flymake contains total number of errors and warnings | 73 | displayed by Flymake contains total number of errors and warnings |
| 74 | reported for the buffer during the last syntax check. | 74 | reported for the buffer during the last syntax check. |
| 75 | 75 | ||
| @@ -79,14 +79,14 @@ line, respectively. | |||
| 79 | 79 | ||
| 80 | Calling @code{flymake-display-err-menu-for-current-line} will popup a | 80 | Calling @code{flymake-display-err-menu-for-current-line} will popup a |
| 81 | menu containing error messages reported by the syntax check tool for | 81 | menu containing error messages reported by the syntax check tool for |
| 82 | the current line. Errors/warnings belonging to another file, such as a | 82 | the current line. Errors/warnings belonging to another file, such as a |
| 83 | @code{.h} header file included by a @code{.c} file, are shown in the | 83 | @code{.h} header file included by a @code{.c} file, are shown in the |
| 84 | current buffer as belonging to the first line. Menu items for such | 84 | current buffer as belonging to the first line. Menu items for such |
| 85 | messages also contain a filename and a line number. Selecting such a | 85 | messages also contain a filename and a line number. Selecting such a |
| 86 | menu item will automatically open the file and jump to the line with | 86 | menu item will automatically open the file and jump to the line with |
| 87 | error. | 87 | error. |
| 88 | 88 | ||
| 89 | Syntax check is done 'on-the-fly'. It is started whenever | 89 | Syntax check is done 'on-the-fly'. It is started whenever |
| 90 | 90 | ||
| 91 | @itemize @bullet | 91 | @itemize @bullet |
| 92 | @item buffer is loaded | 92 | @item buffer is loaded |
| @@ -97,7 +97,7 @@ delay is configurable). | |||
| 97 | 97 | ||
| 98 | Flymake is a universal syntax checker in the sense that it's easily | 98 | Flymake is a universal syntax checker in the sense that it's easily |
| 99 | extended to support new syntax check tools and error message | 99 | extended to support new syntax check tools and error message |
| 100 | patterns. @xref{Configuring Flymake}. | 100 | patterns. @xref{Configuring Flymake}. |
| 101 | 101 | ||
| 102 | @node Installing Flymake | 102 | @node Installing Flymake |
| 103 | @chapter Installing | 103 | @chapter Installing |
| @@ -107,7 +107,7 @@ patterns. @xref{Configuring Flymake}. | |||
| 107 | Flymake is packaged in a single file, @code{flymake.el}. | 107 | Flymake is packaged in a single file, @code{flymake.el}. |
| 108 | 108 | ||
| 109 | To install/update Flymake, place @code{flymake.el} to a directory | 109 | To install/update Flymake, place @code{flymake.el} to a directory |
| 110 | somewhere on Emacs load path. You might also want to byte-compile | 110 | somewhere on Emacs load path. You might also want to byte-compile |
| 111 | @code{flymake.el} to improve performance. | 111 | @code{flymake.el} to improve performance. |
| 112 | 112 | ||
| 113 | Also, place the following line in the @code{.emacs} file. | 113 | Also, place the following line in the @code{.emacs} file. |
| @@ -141,13 +141,13 @@ You might also map the most frequently used Flymake functions, such as | |||
| 141 | @section Flymake mode | 141 | @section Flymake mode |
| 142 | @cindex flymake-mode | 142 | @cindex flymake-mode |
| 143 | 143 | ||
| 144 | Flymake is an Emacs minor mode. To use Flymake, you | 144 | Flymake is an Emacs minor mode. To use Flymake, you |
| 145 | must first activate @code{flymake-mode} by using the | 145 | must first activate @code{flymake-mode} by using the |
| 146 | @code{flymake-mode} function. | 146 | @code{flymake-mode} function. |
| 147 | 147 | ||
| 148 | Instead of manually activating @code{flymake-mode}, you can configure | 148 | Instead of manually activating @code{flymake-mode}, you can configure |
| 149 | Flymake to automatically enable @code{flymake-mode} upon opening any | 149 | Flymake to automatically enable @code{flymake-mode} upon opening any |
| 150 | file for which syntax check is possible. To do so, place the following | 150 | file for which syntax check is possible. To do so, place the following |
| 151 | line in @code{.emacs}: | 151 | line in @code{.emacs}: |
| 152 | 152 | ||
| 153 | @lisp | 153 | @lisp |
| @@ -159,9 +159,9 @@ line in @code{.emacs}: | |||
| 159 | @cindex Manually starting the syntax check | 159 | @cindex Manually starting the syntax check |
| 160 | 160 | ||
| 161 | When @code{flymake-mode} is active, syntax check is started | 161 | When @code{flymake-mode} is active, syntax check is started |
| 162 | automatically on any of the three conditions mentioned above. Syntax | 162 | automatically on any of the three conditions mentioned above. Syntax |
| 163 | check can also be started manually by using the | 163 | check can also be started manually by using the |
| 164 | @code{flymake-start-syntax-check-for-current-buffer} function. This | 164 | @code{flymake-start-syntax-check-for-current-buffer} function. This |
| 165 | can be used, for example, when changes were made to some other buffer | 165 | can be used, for example, when changes were made to some other buffer |
| 166 | affecting the current buffer. | 166 | affecting the current buffer. |
| 167 | 167 | ||
| @@ -171,7 +171,7 @@ affecting the current buffer. | |||
| 171 | 171 | ||
| 172 | After syntax check is completed, lines for which at least one error or | 172 | After syntax check is completed, lines for which at least one error or |
| 173 | warning has been reported are highlighted, and total number of errors | 173 | warning has been reported are highlighted, and total number of errors |
| 174 | and warning is shown in the mode line. Use the following functions to | 174 | and warning is shown in the mode line. Use the following functions to |
| 175 | navigate the highlighted lines. | 175 | navigate the highlighted lines. |
| 176 | 176 | ||
| 177 | @multitable @columnfractions 0.25 0.75 | 177 | @multitable @columnfractions 0.25 0.75 |
| @@ -184,7 +184,7 @@ navigate the highlighted lines. | |||
| 184 | 184 | ||
| 185 | @end multitable | 185 | @end multitable |
| 186 | 186 | ||
| 187 | These functions treat erroneous lines as a linked list. Therefore, | 187 | These functions treat erroneous lines as a linked list. Therefore, |
| 188 | @code{flymake-goto-next-error} will go to the first erroneous line | 188 | @code{flymake-goto-next-error} will go to the first erroneous line |
| 189 | when invoked in the end of the buffer. | 189 | when invoked in the end of the buffer. |
| 190 | 190 | ||
| @@ -193,7 +193,7 @@ when invoked in the end of the buffer. | |||
| 193 | @cindex Viewing error messages | 193 | @cindex Viewing error messages |
| 194 | 194 | ||
| 195 | To view error messages belonging to the current line, use the | 195 | To view error messages belonging to the current line, use the |
| 196 | @code{flymake-display-err-menu-for-current-line} function. If there's | 196 | @code{flymake-display-err-menu-for-current-line} function. If there's |
| 197 | at least one error or warning reported for the current line, this | 197 | at least one error or warning reported for the current line, this |
| 198 | function will display a popup menu with error/warning texts. | 198 | function will display a popup menu with error/warning texts. |
| 199 | Selecting the menu item whose error belongs to another file brings | 199 | Selecting the menu item whose error belongs to another file brings |
| @@ -209,12 +209,12 @@ The following statuses are defined. | |||
| 209 | 209 | ||
| 210 | @multitable @columnfractions 0.25 0.75 | 210 | @multitable @columnfractions 0.25 0.75 |
| 211 | @item Flymake* or Flymake:E/W* | 211 | @item Flymake* or Flymake:E/W* |
| 212 | @tab Flymake is currently running. For the second case, E/W contains the | 212 | @tab Flymake is currently running. For the second case, E/W contains the |
| 213 | error and warning count for the previous run. | 213 | error and warning count for the previous run. |
| 214 | 214 | ||
| 215 | @item Flymake | 215 | @item Flymake |
| 216 | @tab Syntax check is not running. Usually this means syntax check was | 216 | @tab Syntax check is not running. Usually this means syntax check was |
| 217 | successfully passed (no errors, no warnings). Other possibilities are: | 217 | successfully passed (no errors, no warnings). Other possibilities are: |
| 218 | syntax check was killed as a result of executing | 218 | syntax check was killed as a result of executing |
| 219 | @code{flymake-compile}, or syntax check cannot start as compilation | 219 | @code{flymake-compile}, or syntax check cannot start as compilation |
| 220 | is currently in progress. | 220 | is currently in progress. |
| @@ -232,7 +232,7 @@ OFF for the buffer. | |||
| 232 | @multitable @columnfractions 0.25 0.75 | 232 | @multitable @columnfractions 0.25 0.75 |
| 233 | @item CFGERR | 233 | @item CFGERR |
| 234 | @tab Syntax check process returned nonzero exit code, but no | 234 | @tab Syntax check process returned nonzero exit code, but no |
| 235 | errors/warnings were reported. This indicates a possible configuration | 235 | errors/warnings were reported. This indicates a possible configuration |
| 236 | error (for example, no suitable error message patterns for the | 236 | error (for example, no suitable error message patterns for the |
| 237 | syntax check tool). | 237 | syntax check tool). |
| 238 | 238 | ||
| @@ -253,12 +253,12 @@ syntax check tool). | |||
| 253 | @cindex Troubleshooting | 253 | @cindex Troubleshooting |
| 254 | 254 | ||
| 255 | Flymake uses a simple logging facility for indicating important points | 255 | Flymake uses a simple logging facility for indicating important points |
| 256 | in the control flow. The logging facility sends logging messages to | 256 | in the control flow. The logging facility sends logging messages to |
| 257 | the @code{*Messages*} buffer. The information logged can be used for | 257 | the @code{*Messages*} buffer. The information logged can be used for |
| 258 | resolving various problems related to Flymake. | 258 | resolving various problems related to Flymake. |
| 259 | 259 | ||
| 260 | Logging output is controlled by the @code{flymake-log-level} | 260 | Logging output is controlled by the @code{flymake-log-level} |
| 261 | variable. @code{3} is the most verbose level, and @code{-1} switches | 261 | variable. @code{3} is the most verbose level, and @code{-1} switches |
| 262 | logging off. | 262 | logging off. |
| 263 | 263 | ||
| 264 | @node Configuring Flymake | 264 | @node Configuring Flymake |
| @@ -286,30 +286,30 @@ Controls logging output, see @ref{Troubleshooting}. | |||
| 286 | 286 | ||
| 287 | @item flymake-allowed-file-name-masks | 287 | @item flymake-allowed-file-name-masks |
| 288 | A list of @code{(filename-regexp, init-function, cleanup-function | 288 | A list of @code{(filename-regexp, init-function, cleanup-function |
| 289 | getfname-function)} for configuring syntax check tools. @xref{Adding | 289 | getfname-function)} for configuring syntax check tools. @xref{Adding |
| 290 | support for a new syntax check tool}. | 290 | support for a new syntax check tool}. |
| 291 | 291 | ||
| 292 | @ignore | 292 | @ignore |
| 293 | @item flymake-buildfile-dirs | 293 | @item flymake-buildfile-dirs |
| 294 | A list of directories (relative paths) for searching a | 294 | A list of directories (relative paths) for searching a |
| 295 | buildfile. @xref{Locating the buildfile}. | 295 | buildfile. @xref{Locating the buildfile}. |
| 296 | @end ignore | 296 | @end ignore |
| 297 | 297 | ||
| 298 | @item flymake-master-file-dirs | 298 | @item flymake-master-file-dirs |
| 299 | A list of directories for searching a master file. @xref{Locating a | 299 | A list of directories for searching a master file. @xref{Locating a |
| 300 | master file}. | 300 | master file}. |
| 301 | 301 | ||
| 302 | @item flymake-get-project-include-dirs-function | 302 | @item flymake-get-project-include-dirs-function |
| 303 | A function used for obtaining a list of project include dirs (C/C++ | 303 | A function used for obtaining a list of project include dirs (C/C++ |
| 304 | specific). @xref{Getting the include directories}. | 304 | specific). @xref{Getting the include directories}. |
| 305 | 305 | ||
| 306 | @item flymake-master-file-count-limit | 306 | @item flymake-master-file-count-limit |
| 307 | @itemx flymake-check-file-limit | 307 | @itemx flymake-check-file-limit |
| 308 | Used when looking for a master file. @xref{Locating a master file}. | 308 | Used when looking for a master file. @xref{Locating a master file}. |
| 309 | 309 | ||
| 310 | @item flymake-err-line-patterns | 310 | @item flymake-err-line-patterns |
| 311 | Patterns for error/warning messages in the form @code{(regexp file-idx | 311 | Patterns for error/warning messages in the form @code{(regexp file-idx |
| 312 | line-idx col-idx err-text-idx)}. @xref{Parsing the output}. | 312 | line-idx col-idx err-text-idx)}. @xref{Parsing the output}. |
| 313 | 313 | ||
| 314 | @item flymake-compilation-prevents-syntax-check | 314 | @item flymake-compilation-prevents-syntax-check |
| 315 | A flag indicating whether compilation and syntax check of the same | 315 | A flag indicating whether compilation and syntax check of the same |
| @@ -321,7 +321,7 @@ started after @code{flymake-no-changes-timeout} seconds. | |||
| 321 | 321 | ||
| 322 | @item flymake-gui-warnings-enabled | 322 | @item flymake-gui-warnings-enabled |
| 323 | A boolean flag indicating whether Flymake will show message boxes for | 323 | A boolean flag indicating whether Flymake will show message boxes for |
| 324 | non-recoverable errors. If @code{flymake-gui-warnings-enabled} is | 324 | non-recoverable errors. If @code{flymake-gui-warnings-enabled} is |
| 325 | @code{nil}, these errors will only be logged to the @code{*Messages*} | 325 | @code{nil}, these errors will only be logged to the @code{*Messages*} |
| 326 | buffer. | 326 | buffer. |
| 327 | 327 | ||
| @@ -360,7 +360,7 @@ Which fringe (if any) should show the warning/error bitmaps. | |||
| 360 | @end menu | 360 | @end menu |
| 361 | 361 | ||
| 362 | Syntax check tools are configured using the | 362 | Syntax check tools are configured using the |
| 363 | @code{flymake-allowed-file-name-masks} list. Each item of this list | 363 | @code{flymake-allowed-file-name-masks} list. Each item of this list |
| 364 | has the following format: | 364 | has the following format: |
| 365 | 365 | ||
| 366 | @lisp | 366 | @lisp |
| @@ -371,14 +371,14 @@ has the following format: | |||
| 371 | @item filename-regexp | 371 | @item filename-regexp |
| 372 | This field is used as a key for locating init/cleanup/getfname | 372 | This field is used as a key for locating init/cleanup/getfname |
| 373 | functions for the buffer. Items in | 373 | functions for the buffer. Items in |
| 374 | @code{flymake-allowed-file-name-masks} are searched sequentially. The | 374 | @code{flymake-allowed-file-name-masks} are searched sequentially. The |
| 375 | first item with @code{filename-regexp} matching buffer filename is | 375 | first item with @code{filename-regexp} matching buffer filename is |
| 376 | selected. If no match is found, @code{flymake-mode} is switched off. | 376 | selected. If no match is found, @code{flymake-mode} is switched off. |
| 377 | 377 | ||
| 378 | @item init-function | 378 | @item init-function |
| 379 | @code{init-function} is required to initialize the syntax check, | 379 | @code{init-function} is required to initialize the syntax check, |
| 380 | usually by creating a temporary copy of the buffer contents. The | 380 | usually by creating a temporary copy of the buffer contents. The |
| 381 | function must return @code{(list cmd-name arg-list)}. If | 381 | function must return @code{(list cmd-name arg-list)}. If |
| 382 | @code{init-function} returns null, syntax check is aborted, by | 382 | @code{init-function} returns null, syntax check is aborted, by |
| 383 | @code{flymake-mode} is not switched off. | 383 | @code{flymake-mode} is not switched off. |
| 384 | 384 | ||
| @@ -389,7 +389,7 @@ usually deleting a temporary copy created by the @code{init-function}. | |||
| 389 | 389 | ||
| 390 | @item getfname-function | 390 | @item getfname-function |
| 391 | This function is used for translating filenames reported by the syntax | 391 | This function is used for translating filenames reported by the syntax |
| 392 | check tool into ``real'' filenames. Filenames reported by the tool | 392 | check tool into ``real'' filenames. Filenames reported by the tool |
| 393 | will be different from the real ones, as actually the tool works with | 393 | will be different from the real ones, as actually the tool works with |
| 394 | the temporary copy. In most cases, the default implementation | 394 | the temporary copy. In most cases, the default implementation |
| 395 | provided by Flymake, @code{flymake-get-real-file-name}, can be used as | 395 | provided by Flymake, @code{flymake-get-real-file-name}, can be used as |
| @@ -411,7 +411,7 @@ support for various syntax check tools. | |||
| 411 | @cindex Adding support for perl | 411 | @cindex Adding support for perl |
| 412 | 412 | ||
| 413 | In this example, we will add support for @code{perl} as a syntax check | 413 | In this example, we will add support for @code{perl} as a syntax check |
| 414 | tool. @code{perl} supports the @code{-c} option which does syntax | 414 | tool. @code{perl} supports the @code{-c} option which does syntax |
| 415 | checking. | 415 | checking. |
| 416 | 416 | ||
| 417 | First, we write the @code{init-function}: | 417 | First, we write the @code{init-function}: |
| @@ -463,7 +463,7 @@ In this example we will add support for C files syntax checked by | |||
| 463 | @command{gcc} called via @command{make}. | 463 | @command{gcc} called via @command{make}. |
| 464 | 464 | ||
| 465 | We're not required to write any new functions, as Flymake already has | 465 | We're not required to write any new functions, as Flymake already has |
| 466 | functions for @command{make}. We just add a new entry to the | 466 | functions for @command{make}. We just add a new entry to the |
| 467 | @code{flymake-allowed-file-name-masks}: | 467 | @code{flymake-allowed-file-name-masks}: |
| 468 | 468 | ||
| 469 | @lisp | 469 | @lisp |
| @@ -489,7 +489,7 @@ command line: | |||
| 489 | 489 | ||
| 490 | @code{base-dir} is a directory containing @code{Makefile}, see @ref{Locating the buildfile}. | 490 | @code{base-dir} is a directory containing @code{Makefile}, see @ref{Locating the buildfile}. |
| 491 | 491 | ||
| 492 | Thus, @code{Makefile} must contain the @code{check-syntax} target. In | 492 | Thus, @code{Makefile} must contain the @code{check-syntax} target. In |
| 493 | our case this target might look like this: | 493 | our case this target might look like this: |
| 494 | 494 | ||
| 495 | @verbatim | 495 | @verbatim |
| @@ -527,12 +527,12 @@ check-syntax: | |||
| 527 | 527 | ||
| 528 | Syntax check is started by calling @code{flymake-start-syntax-check-for-current-buffer}. | 528 | Syntax check is started by calling @code{flymake-start-syntax-check-for-current-buffer}. |
| 529 | Flymake first determines whether it is able to do syntax | 529 | Flymake first determines whether it is able to do syntax |
| 530 | check. It then saves a copy of the buffer in a temporary file in the | 530 | check. It then saves a copy of the buffer in a temporary file in the |
| 531 | buffer's directory (or in the system temp directory, for java | 531 | buffer's directory (or in the system temp directory, for java |
| 532 | files), creates a syntax check command and launches a process with | 532 | files), creates a syntax check command and launches a process with |
| 533 | this command. The output is parsed using a list of error message patterns, | 533 | this command. The output is parsed using a list of error message patterns, |
| 534 | and error information (file name, line number, type and text) is | 534 | and error information (file name, line number, type and text) is |
| 535 | saved. After the process has finished, Flymake highlights erroneous | 535 | saved. After the process has finished, Flymake highlights erroneous |
| 536 | lines in the buffer using the accumulated error information. | 536 | lines in the buffer using the accumulated error information. |
| 537 | 537 | ||
| 538 | @node Determining whether syntax check is possible | 538 | @node Determining whether syntax check is possible |
| @@ -551,14 +551,14 @@ Two syntax check modes are distinguished: | |||
| 551 | @item | 551 | @item |
| 552 | Buffer can be syntax checked in a standalone fashion, that is, the | 552 | Buffer can be syntax checked in a standalone fashion, that is, the |
| 553 | file (its temporary copy, in fact) can be passed over to the compiler to | 553 | file (its temporary copy, in fact) can be passed over to the compiler to |
| 554 | do the syntax check. Examples are C/C++ (.c, .cpp) and Java (.java) | 554 | do the syntax check. Examples are C/C++ (.c, .cpp) and Java (.java) |
| 555 | sources. | 555 | sources. |
| 556 | 556 | ||
| 557 | @item | 557 | @item |
| 558 | Buffer can be syntax checked, but additional file, called master file, | 558 | Buffer can be syntax checked, but additional file, called master file, |
| 559 | is required to perform this operation. A master file is a file that | 559 | is required to perform this operation. A master file is a file that |
| 560 | includes the current file, so that running a syntax check tool on it | 560 | includes the current file, so that running a syntax check tool on it |
| 561 | will also check syntax in the current file. Examples are C/C++ (.h, | 561 | will also check syntax in the current file. Examples are C/C++ (.h, |
| 562 | .hpp) headers. | 562 | .hpp) headers. |
| 563 | 563 | ||
| 564 | @end enumerate | 564 | @end enumerate |
| @@ -579,7 +579,7 @@ copies, finding master files, etc.), as well as some tool-specific | |||
| 579 | 579 | ||
| 580 | After the possibility of the syntax check has been determined, a | 580 | After the possibility of the syntax check has been determined, a |
| 581 | temporary copy of the current buffer is made so that the most recent | 581 | temporary copy of the current buffer is made so that the most recent |
| 582 | unsaved changes could be seen by the syntax check tool. Making a copy | 582 | unsaved changes could be seen by the syntax check tool. Making a copy |
| 583 | is quite straightforward in a standalone case (mode @code{1}), as it's | 583 | is quite straightforward in a standalone case (mode @code{1}), as it's |
| 584 | just saving buffer contents to a temporary file. | 584 | just saving buffer contents to a temporary file. |
| 585 | 585 | ||
| @@ -595,11 +595,11 @@ name. | |||
| 595 | Locating a master file is discussed in the following section. | 595 | Locating a master file is discussed in the following section. |
| 596 | 596 | ||
| 597 | Patching just changes all appropriate lines of the master file so that they | 597 | Patching just changes all appropriate lines of the master file so that they |
| 598 | use the new (temporary) name of the current file. For example, suppose current | 598 | use the new (temporary) name of the current file. For example, suppose current |
| 599 | file name is @code{file.h}, the master file is @code{file.cpp}, and | 599 | file name is @code{file.h}, the master file is @code{file.cpp}, and |
| 600 | it includes current file via @code{#include "file.h"}. Current file's copy | 600 | it includes current file via @code{#include "file.h"}. Current file's copy |
| 601 | is saved to file @code{file_flymake.h}, so the include line must be | 601 | is saved to file @code{file_flymake.h}, so the include line must be |
| 602 | changed to @code{#include "file_flymake.h"}. Finally, patched master file | 602 | changed to @code{#include "file_flymake.h"}. Finally, patched master file |
| 603 | is saved to @code{file_flymake_master.cpp}, and the last one is passed to | 603 | is saved to @code{file_flymake_master.cpp}, and the last one is passed to |
| 604 | the syntax check tool. | 604 | the syntax check tool. |
| 605 | 605 | ||
| @@ -609,27 +609,27 @@ the syntax check tool. | |||
| 609 | 609 | ||
| 610 | Master file is located in two steps. | 610 | Master file is located in two steps. |
| 611 | 611 | ||
| 612 | First, a list of possible master files is built. A simple name | 612 | First, a list of possible master files is built. A simple name |
| 613 | matching is used to find the files. For a C++ header @code{file.h}, | 613 | matching is used to find the files. For a C++ header @code{file.h}, |
| 614 | Flymake searches for all @code{.cpp} files in the directories whose relative paths are | 614 | Flymake searches for all @code{.cpp} files in the directories whose relative paths are |
| 615 | stored in a customizable variable @code{flymake-master-file-dirs}, which | 615 | stored in a customizable variable @code{flymake-master-file-dirs}, which |
| 616 | usually contains something like @code{("." "./src")}. No more than | 616 | usually contains something like @code{("." "./src")}. No more than |
| 617 | @code{flymake-master-file-count-limit} entries is added to the master file | 617 | @code{flymake-master-file-count-limit} entries is added to the master file |
| 618 | list. The list is then sorted to move files with names @code{file.cpp} to | 618 | list. The list is then sorted to move files with names @code{file.cpp} to |
| 619 | the top. | 619 | the top. |
| 620 | 620 | ||
| 621 | Next, each master file in a list is checked to contain the appropriate | 621 | Next, each master file in a list is checked to contain the appropriate |
| 622 | include directives. No more than @code{flymake-check-file-limit} of each | 622 | include directives. No more than @code{flymake-check-file-limit} of each |
| 623 | file are parsed. | 623 | file are parsed. |
| 624 | 624 | ||
| 625 | For @code{file.h}, the include directives to look for are | 625 | For @code{file.h}, the include directives to look for are |
| 626 | @code{#include "file.h"}, @code{#include "../file.h"}, etc. Each | 626 | @code{#include "file.h"}, @code{#include "../file.h"}, etc. Each |
| 627 | include is checked against a list of include directories | 627 | include is checked against a list of include directories |
| 628 | (see @ref{Getting the include directories}) to be sure it points to the | 628 | (see @ref{Getting the include directories}) to be sure it points to the |
| 629 | correct @code{file.h}. | 629 | correct @code{file.h}. |
| 630 | 630 | ||
| 631 | First matching master file found stops the search. The master file is then | 631 | First matching master file found stops the search. The master file is then |
| 632 | patched and saved to disk. In case no master file is found, syntax check is | 632 | patched and saved to disk. In case no master file is found, syntax check is |
| 633 | aborted, and corresponding status (!) is reported in the mode line. | 633 | aborted, and corresponding status (!) is reported in the mode line. |
| 634 | 634 | ||
| 635 | @node Getting the include directories | 635 | @node Getting the include directories |
| @@ -637,19 +637,19 @@ aborted, and corresponding status (!) is reported in the mode line. | |||
| 637 | @cindex Include directories (C/C++ specific) | 637 | @cindex Include directories (C/C++ specific) |
| 638 | 638 | ||
| 639 | Two sets of include directories are distinguished: system include directories | 639 | Two sets of include directories are distinguished: system include directories |
| 640 | and project include directories. The former is just the contents of the | 640 | and project include directories. The former is just the contents of the |
| 641 | @code{INCLUDE} environment variable. The latter is not so easy to obtain, | 641 | @code{INCLUDE} environment variable. The latter is not so easy to obtain, |
| 642 | and the way it can be obtained can vary greatly for different projects. | 642 | and the way it can be obtained can vary greatly for different projects. |
| 643 | Therefore, a customizable variable | 643 | Therefore, a customizable variable |
| 644 | @code{flymake-get-project-include-dirs-function} is used to provide the | 644 | @code{flymake-get-project-include-dirs-function} is used to provide the |
| 645 | way to implement the desired behavior. | 645 | way to implement the desired behavior. |
| 646 | 646 | ||
| 647 | The default implementation, @code{flymake-get-project-include-dirs-imp}, | 647 | The default implementation, @code{flymake-get-project-include-dirs-imp}, |
| 648 | uses a @command{make} call. This requires a correct base directory, that is, a | 648 | uses a @command{make} call. This requires a correct base directory, that is, a |
| 649 | directory containing a correct @file{Makefile}, to be determined. | 649 | directory containing a correct @file{Makefile}, to be determined. |
| 650 | 650 | ||
| 651 | As obtaining the project include directories might be a costly operation, its | 651 | As obtaining the project include directories might be a costly operation, its |
| 652 | return value is cached in the hash table. The cache is cleared in the beginning | 652 | return value is cached in the hash table. The cache is cleared in the beginning |
| 653 | of every syntax check attempt. | 653 | of every syntax check attempt. |
| 654 | 654 | ||
| 655 | @node Locating the buildfile | 655 | @node Locating the buildfile |
| @@ -659,18 +659,18 @@ of every syntax check attempt. | |||
| 659 | @cindex Makefile, locating | 659 | @cindex Makefile, locating |
| 660 | 660 | ||
| 661 | Flymake can be configured to use different tools for performing syntax | 661 | Flymake can be configured to use different tools for performing syntax |
| 662 | checks. For example, it can use direct compiler call to syntax check a perl | 662 | checks. For example, it can use direct compiler call to syntax check a perl |
| 663 | script or a call to @command{make} for a more complicated case of a | 663 | script or a call to @command{make} for a more complicated case of a |
| 664 | @code{C/C++} source. The general idea is that simple files, like perl | 664 | @code{C/C++} source. The general idea is that simple files, like perl |
| 665 | scripts and html pages, can be checked by directly invoking a | 665 | scripts and html pages, can be checked by directly invoking a |
| 666 | corresponding tool. Files that are usually more complex and generally | 666 | corresponding tool. Files that are usually more complex and generally |
| 667 | used as part of larger projects, might require non-trivial options to | 667 | used as part of larger projects, might require non-trivial options to |
| 668 | be passed to the syntax check tool, like include directories for | 668 | be passed to the syntax check tool, like include directories for |
| 669 | C++. The latter files are syntax checked using some build tool, like | 669 | C++. The latter files are syntax checked using some build tool, like |
| 670 | Make or Ant. | 670 | Make or Ant. |
| 671 | 671 | ||
| 672 | All Make configuration data is usually stored in a file called | 672 | All Make configuration data is usually stored in a file called |
| 673 | @code{Makefile}. To allow for future extensions, flymake uses a notion of | 673 | @code{Makefile}. To allow for future extensions, flymake uses a notion of |
| 674 | buildfile to reference the 'project configuration' file. | 674 | buildfile to reference the 'project configuration' file. |
| 675 | 675 | ||
| 676 | Special function, @code{flymake-find-buildfile} is provided for locating buildfiles. | 676 | Special function, @code{flymake-find-buildfile} is provided for locating buildfiles. |
| @@ -679,7 +679,7 @@ for possible master files. | |||
| 679 | @ignore | 679 | @ignore |
| 680 | A customizable variable | 680 | A customizable variable |
| 681 | @code{flymake-buildfile-dirs} holds a list of relative paths to the | 681 | @code{flymake-buildfile-dirs} holds a list of relative paths to the |
| 682 | buildfile. They are checked sequentially until a buildfile is found. | 682 | buildfile. They are checked sequentially until a buildfile is found. |
| 683 | @end ignore | 683 | @end ignore |
| 684 | In case there's no build file, syntax check is aborted. | 684 | In case there's no build file, syntax check is aborted. |
| 685 | 685 | ||
| @@ -690,7 +690,7 @@ Buildfile values are also cached. | |||
| 690 | @cindex Syntax check process | 690 | @cindex Syntax check process |
| 691 | 691 | ||
| 692 | The command line (command name and the list of arguments) for launching a process is returned by the | 692 | The command line (command name and the list of arguments) for launching a process is returned by the |
| 693 | initialization function. Flymake then just calls @code{start-process} | 693 | initialization function. Flymake then just calls @code{start-process} |
| 694 | to start an asynchronous process and configures process filter and | 694 | to start an asynchronous process and configures process filter and |
| 695 | sentinel which is used for processing the output of the syntax check | 695 | sentinel which is used for processing the output of the syntax check |
| 696 | tool. | 696 | tool. |
| @@ -701,24 +701,24 @@ tool. | |||
| 701 | 701 | ||
| 702 | The output generated by the syntax check tool is parsed in the process | 702 | The output generated by the syntax check tool is parsed in the process |
| 703 | filter/sentinel using the error message patterns stored in the | 703 | filter/sentinel using the error message patterns stored in the |
| 704 | @code{flymake-err-line-patterns} variable. This variable contains a | 704 | @code{flymake-err-line-patterns} variable. This variable contains a |
| 705 | list of items of the form @code{(regexp file-idx line-idx | 705 | list of items of the form @code{(regexp file-idx line-idx |
| 706 | err-text-idx)}, used to determine whether a particular line is an | 706 | err-text-idx)}, used to determine whether a particular line is an |
| 707 | error message and extract file name, line number and error text, | 707 | error message and extract file name, line number and error text, |
| 708 | respectively. Error type (error/warning) is also guessed by matching | 708 | respectively. Error type (error/warning) is also guessed by matching |
| 709 | error text with the '@code{^[wW]arning}' pattern. Anything that was not | 709 | error text with the '@code{^[wW]arning}' pattern. Anything that was not |
| 710 | classified as a warning is considered an error. Type is then used to | 710 | classified as a warning is considered an error. Type is then used to |
| 711 | sort error menu items, which shows error messages first. | 711 | sort error menu items, which shows error messages first. |
| 712 | 712 | ||
| 713 | Flymake is also able to interpret error message patterns missing err-text-idx | 713 | Flymake is also able to interpret error message patterns missing err-text-idx |
| 714 | information. This is done by merely taking the rest of the matched line | 714 | information. This is done by merely taking the rest of the matched line |
| 715 | (@code{(substring line (match-end 0))}) as error text. This trick allows | 715 | (@code{(substring line (match-end 0))}) as error text. This trick allows |
| 716 | to make use of a huge collection of error message line patterns from | 716 | to make use of a huge collection of error message line patterns from |
| 717 | @code{compile.el}. All these error patterns are appended to | 717 | @code{compile.el}. All these error patterns are appended to |
| 718 | the end of @code{flymake-err-line-patterns}. | 718 | the end of @code{flymake-err-line-patterns}. |
| 719 | 719 | ||
| 720 | The error information obtained is saved in a buffer local | 720 | The error information obtained is saved in a buffer local |
| 721 | variable. The buffer for which the process output belongs is | 721 | variable. The buffer for which the process output belongs is |
| 722 | determined from the process-id@w{}->@w{}buffer mapping updated | 722 | determined from the process-id@w{}->@w{}buffer mapping updated |
| 723 | after every process launch/exit. | 723 | after every process launch/exit. |
| 724 | 724 | ||
| @@ -727,7 +727,7 @@ after every process launch/exit. | |||
| 727 | @cindex Erroneous lines, faces | 727 | @cindex Erroneous lines, faces |
| 728 | 728 | ||
| 729 | Highlighting is implemented with overlays and happens in the process | 729 | Highlighting is implemented with overlays and happens in the process |
| 730 | sentinel, after calling the cleanup function. Two customizable faces | 730 | sentinel, after calling the cleanup function. Two customizable faces |
| 731 | are used: @code{flymake-errline} and | 731 | are used: @code{flymake-errline} and |
| 732 | @code{flymake-warnline}. Errors belonging outside the current | 732 | @code{flymake-warnline}. Errors belonging outside the current |
| 733 | buffer are considered to belong to line 1 of the current buffer. | 733 | buffer are considered to belong to line 1 of the current buffer. |
| @@ -749,12 +749,13 @@ and @code{flymake-warning-bitmap}. | |||
| 749 | The only mode flymake currently knows about is @code{compile}. | 749 | The only mode flymake currently knows about is @code{compile}. |
| 750 | 750 | ||
| 751 | Flymake can be configured to not start syntax check if it thinks the | 751 | Flymake can be configured to not start syntax check if it thinks the |
| 752 | compilation is in progress. The check is made by the | 752 | compilation is in progress. The check is made by the |
| 753 | @code{flymake-compilation-is-running}, which tests the | 753 | @code{flymake-compilation-is-running}, which tests the |
| 754 | @code{compilation-in-progress} variable. The reason why this might be | 754 | @code{compilation-in-progress} variable. The reason why this might be |
| 755 | useful is saving CPU time in case both syntax check and compilation | 755 | useful is saving CPU time in case both syntax check and compilation |
| 756 | are very CPU intensive. The original reason for adding this feature, | 756 | are very CPU intensive. The original reason for adding this feature, |
| 757 | though, was working around a locking problem with MS Visual C++ compiler. | 757 | though, was working around a locking problem with MS Visual C++ |
| 758 | compiler. | ||
| 758 | 759 | ||
| 759 | Flymake also provides an alternative command for starting compilation, | 760 | Flymake also provides an alternative command for starting compilation, |
| 760 | @code{flymake-compile}: | 761 | @code{flymake-compile}: |
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index 983887d721d..a7a9647fd81 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi | |||
| @@ -15400,7 +15400,7 @@ substitutions in the group names), you can say things like: | |||
| 15400 | In this example, messages sent to @samp{debian-foo@@lists.debian.org} | 15400 | In this example, messages sent to @samp{debian-foo@@lists.debian.org} |
| 15401 | will be filed in @samp{mail.debian.foo}. | 15401 | will be filed in @samp{mail.debian.foo}. |
| 15402 | 15402 | ||
| 15403 | If the string contains the element @samp{\&}, then the previously | 15403 | If the string contains the element @samp{\\&}, then the previously |
| 15404 | matched string will be substituted. Similarly, the elements @samp{\\1} | 15404 | matched string will be substituted. Similarly, the elements @samp{\\1} |
| 15405 | up to @samp{\\9} will be substituted with the text matched by the | 15405 | up to @samp{\\9} will be substituted with the text matched by the |
| 15406 | groupings 1 through 9. | 15406 | groupings 1 through 9. |
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 4a3e0ebc33c..4c3740f02f7 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi | |||
| @@ -2406,13 +2406,18 @@ using the @option{ssh} method to transfer files, and edit | |||
| 2406 | @file{.emacs} in my home directory I would specify the filename | 2406 | @file{.emacs} in my home directory I would specify the filename |
| 2407 | @file{@trampfn{ssh, daniel, melancholia, .emacs}}. | 2407 | @file{@trampfn{ssh, daniel, melancholia, .emacs}}. |
| 2408 | 2408 | ||
| 2409 | @ifset emacs | ||
| 2410 | A remote filename containing a host name only, which is equal to a | ||
| 2411 | method name, is not allowed. If such a host name is used, it must | ||
| 2412 | always be preceded by an explicit method name, like | ||
| 2413 | @file{@value{prefix}ssh@value{postfixhop}ssh@value{postfix}}. | ||
| 2414 | @end ifset | ||
| 2415 | |||
| 2409 | Finally, for some methods it is possible to specify a different port | 2416 | Finally, for some methods it is possible to specify a different port |
| 2410 | number than the default one, given by the method. This is specified | 2417 | number than the default one, given by the method. This is specified |
| 2411 | by adding @file{#<port>} to the host name, like in @file{@trampfn{ssh, | 2418 | by adding @file{#<port>} to the host name, like in @file{@trampfn{ssh, |
| 2412 | daniel, melancholia#42, .emacs}}. | 2419 | daniel, melancholia#42, .emacs}}. |
| 2413 | 2420 | ||
| 2414 | Note that @value{tramp} supports only filenames encoded in unibyte. | ||
| 2415 | |||
| 2416 | 2421 | ||
| 2417 | @node Alternative Syntax | 2422 | @node Alternative Syntax |
| 2418 | @section URL-like filename syntax | 2423 | @section URL-like filename syntax |
| @@ -3119,6 +3124,45 @@ Host * | |||
| 3119 | 3124 | ||
| 3120 | 3125 | ||
| 3121 | @item | 3126 | @item |
| 3127 | @value{tramp} does not use my @command{ssh} @code{ControlPath} | ||
| 3128 | |||
| 3129 | Your @code{ControlPath} setting will be overwritten by @command{ssh} | ||
| 3130 | sessions initiated by @value{tramp}. This is because a master | ||
| 3131 | session, initiated outside @value{emacsname}, could be closed, which | ||
| 3132 | would stall all other @command{ssh} sessions for that host inside | ||
| 3133 | @value{emacsname}. | ||
| 3134 | |||
| 3135 | Consequently, if you connect to a remote host via @value{tramp}, you | ||
| 3136 | might be prompted for a password again, even if you have established | ||
| 3137 | already an @command{ssh} connection to that host. Further | ||
| 3138 | @value{tramp} connections to that host, for example in order to run a | ||
| 3139 | process on that host, will reuse that initial @command{ssh} | ||
| 3140 | connection. | ||
| 3141 | |||
| 3142 | If your @command{ssh} version supports the @code{ControlPersist} | ||
| 3143 | option, you could customize the variable | ||
| 3144 | @code{tramp-ssh-controlmaster-options} to use your @code{ControlPath}, | ||
| 3145 | for example: | ||
| 3146 | |||
| 3147 | @lisp | ||
| 3148 | (setq tramp-ssh-controlmaster-options | ||
| 3149 | (concat | ||
| 3150 | "-o ControlPath=/tmp/ssh-ControlPath-%%r@@%%h:%%p " | ||
| 3151 | "-o ControlMaster=auto -o ControlPersist=yes")) | ||
| 3152 | @end lisp | ||
| 3153 | |||
| 3154 | Note, that "%r", "%h" and "%p" must be encoded as "%%r", "%%h" and | ||
| 3155 | "%%p", respectively. The entries of @code{ControlPath}, | ||
| 3156 | @code{ControlMaster} and @code{ControlPersist} can be removed from | ||
| 3157 | this setting, if they are configured properly in your | ||
| 3158 | @file{~/.ssh/config}: | ||
| 3159 | |||
| 3160 | @lisp | ||
| 3161 | (setq tramp-ssh-controlmaster-options "") | ||
| 3162 | @end lisp | ||
| 3163 | |||
| 3164 | |||
| 3165 | @item | ||
| 3122 | File name completion does not work with @value{tramp} | 3166 | File name completion does not work with @value{tramp} |
| 3123 | 3167 | ||
| 3124 | When you log in to the remote machine, do you see the output of | 3168 | When you log in to the remote machine, do you see the output of |
diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi index 18c4252e6d2..c22141335e1 100644 --- a/doc/misc/trampver.texi +++ b/doc/misc/trampver.texi | |||
| @@ -8,7 +8,7 @@ | |||
| 8 | @c In the Tramp CVS, the version number is auto-frobbed from | 8 | @c In the Tramp CVS, the version number is auto-frobbed from |
| 9 | @c configure.ac, so you should edit that file and run | 9 | @c configure.ac, so you should edit that file and run |
| 10 | @c "autoconf && ./configure" to change the version number. | 10 | @c "autoconf && ./configure" to change the version number. |
| 11 | @set trampver 2.2.7 | 11 | @set trampver 2.2.8-pre |
| 12 | 12 | ||
| 13 | @c Other flags from configuration | 13 | @c Other flags from configuration |
| 14 | @set instprefix /usr/local | 14 | @set instprefix /usr/local |