diff options
| author | Joakim Verona | 2013-04-24 08:30:55 +0200 |
|---|---|---|
| committer | Joakim Verona | 2013-04-24 08:30:55 +0200 |
| commit | 5877a57a3c3da1395cff267c06bb9690fd7f44e4 (patch) | |
| tree | 6d2f227e83366f0707404a5c1dd30450d0fbf1b3 | |
| parent | 8ee071b733e7b83ab6e793389dce7c6e2393f891 (diff) | |
| parent | 6933cefc4834cc5ef8d8c46fd2379578240c4f1e (diff) | |
| download | emacs-5877a57a3c3da1395cff267c06bb9690fd7f44e4.tar.gz emacs-5877a57a3c3da1395cff267c06bb9690fd7f44e4.zip | |
auto upstream
| -rw-r--r-- | doc/lispintro/ChangeLog | 19 | ||||
| -rw-r--r-- | doc/lispintro/Makefile.in | 12 | ||||
| -rw-r--r-- | doc/lispintro/emacs-lisp-intro.texi | 164 | ||||
| -rw-r--r-- | doc/lispintro/makefile.w32-in | 10 | ||||
| -rw-r--r-- | doc/lispref/ChangeLog | 5 | ||||
| -rw-r--r-- | doc/lispref/internals.texi | 20 | ||||
| -rw-r--r-- | lisp/ChangeLog | 23 | ||||
| -rw-r--r-- | lisp/jit-lock.el | 25 | ||||
| -rw-r--r-- | lisp/minibuffer.el | 4 | ||||
| -rw-r--r-- | lisp/startup.el | 69 | ||||
| -rw-r--r-- | lisp/textmodes/reftex-vars.el | 10 |
11 files changed, 141 insertions, 220 deletions
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog index be9f9f963c0..f39fec61f6e 100644 --- a/doc/lispintro/ChangeLog +++ b/doc/lispintro/ChangeLog | |||
| @@ -1,7 +1,22 @@ | |||
| 1 | 2013-04-24 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * emacs-lisp-intro.texi (emacsver.texi): Include it. | ||
| 4 | (copying): For non-printed versions, uses Emacs version rather | ||
| 5 | than that of the printed book. | ||
| 6 | (Complications, Lisp macro, defvar and asterisk, defcustom): Copyedits. | ||
| 7 | * Makefile.in (emacsdir): New variable.. | ||
| 8 | (MAKEINFO_OPTS, ENVADD): Add $emacsdir. | ||
| 9 | (srcs): Add emacsver.texi. | ||
| 10 | (dist): Include emacsver.texi. Edit emacsdir. | ||
| 11 | * makefile.w32-in (emacsdir): New variable. | ||
| 12 | (INFO_SOURCES): Add emacsver.texi. | ||
| 13 | (ENVADD): Add $emacsdir (and $texinfodir). | ||
| 14 | |||
| 1 | 2013-04-23 Xue Fuqiao <xfq.free@gmail.com> | 15 | 2013-04-23 Xue Fuqiao <xfq.free@gmail.com> |
| 2 | 16 | ||
| 3 | * emacs-lisp-intro.texi (Complications, defvar): Refine the doc | 17 | * emacs-lisp-intro.texi (Complications, defvar, Writing Defuns) |
| 4 | about Lisp macros. (http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00618.html) | 18 | (Prevent confusion, Determining the Element, lambda): Refine the |
| 19 | doc about Lisp macros, reported by Glenn Morris. | ||
| 5 | 20 | ||
| 6 | 2013-04-21 Xue Fuqiao <xfq.free@gmail.com> | 21 | 2013-04-21 Xue Fuqiao <xfq.free@gmail.com> |
| 7 | 22 | ||
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 7831603124e..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,9 @@ | |||
| 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 | @c FIXME can this be updated? -- xfq | ||
| 41 | |||
| 42 | @ignore | ||
| 43 | ## Summary of shell commands to create various output formats: | ||
| 44 | |||
| 45 | pushd /usr/local/src/emacs/lispintro/ | ||
| 46 | ## pushd /u/intro/ | ||
| 47 | |||
| 48 | ## Info output | ||
| 49 | makeinfo --paragraph-indent=0 --verbose emacs-lisp-intro.texi | ||
| 50 | |||
| 51 | ## ;; (progn (when (bufferp (get-buffer "*info*")) (kill-buffer "*info*")) (info "/usr/local/src/emacs/info/eintr")) | ||
| 52 | |||
| 53 | ## DVI output | ||
| 54 | texi2dvi emacs-lisp-intro.texi | ||
| 55 | |||
| 56 | ## xdvi -margins 24pt -topmargin 4pt -offsets 24pt -geometry 760x1140 -s 5 -useTeXpages -mousemode 1 emacs-lisp-intro.dvi & | ||
| 57 | |||
| 58 | ## HTML output | ||
| 59 | makeinfo --html --no-split --verbose emacs-lisp-intro.texi | ||
| 60 | |||
| 61 | ## galeon emacs-lisp-intro.html | ||
| 62 | |||
| 63 | ## Plain text output | ||
| 64 | makeinfo --fill-column=70 --no-split --paragraph-indent=0 \ | ||
| 65 | --verbose --no-headers --output=emacs-lisp-intro.txt emacs-lisp-intro.texi | ||
| 66 | |||
| 67 | popd | ||
| 68 | |||
| 69 | # as user `root' | ||
| 70 | # insert thumbdrive | ||
| 71 | mtusb # mount -v -t ext3 /dev/sda /mnt | ||
| 72 | cp -v /u/intro/emacs-lisp-intro.texi /mnt/backup/intro/emacs-lisp-intro.texi | ||
| 73 | umtusb # umount -v /mnt | ||
| 74 | # remove thumbdrive | ||
| 75 | |||
| 76 | ## Other shell commands | ||
| 77 | |||
| 78 | pushd /usr/local/src/emacs/lispintro/ | ||
| 79 | ## pushd /u/intro/ | ||
| 80 | |||
| 81 | |||
| 82 | texi2dvi --pdf emacs-lisp-intro.texi | ||
| 83 | # xpdf emacs-lisp-intro.pdf & | ||
| 84 | |||
| 85 | ## DocBook -- note file extension | ||
| 86 | makeinfo --docbook --no-split --paragraph-indent=0 \ | ||
| 87 | --verbose --output=emacs-lisp-intro.docbook emacs-lisp-intro.texi | ||
| 88 | |||
| 89 | ## XML with a Texinfo DTD -- note file extension | ||
| 90 | makeinfo --xml --no-split --paragraph-indent=0 \ | ||
| 91 | --verbose --output=emacs-lisp-intro.texinfoxml emacs-lisp-intro.texi | ||
| 92 | |||
| 93 | ## PostScript (needs DVI) | ||
| 94 | # gv emacs-lisp-intro.ps & | ||
| 95 | # Create DVI if we lack it | ||
| 96 | # texi2dvi emacs-lisp-intro.texi | ||
| 97 | dvips emacs-lisp-intro.dvi -o emacs-lisp-intro.ps | ||
| 98 | |||
| 99 | ## RTF (needs HTML) | ||
| 100 | # Use OpenOffice to view RTF | ||
| 101 | # Create HTML if we lack it | ||
| 102 | # makeinfo --no-split --html emacs-lisp-intro.texi | ||
| 103 | /usr/local/src/html2rtf.pl emacs-lisp-intro.html | ||
| 104 | |||
| 105 | ## LaTeX (needs RTF) | ||
| 106 | /usr/bin/rtf2latex emacs-lisp-intro.rtf | ||
| 107 | |||
| 108 | popd | ||
| 109 | |||
| 110 | @end ignore | ||
| 111 | 43 | ||
| 112 | @c ================ Included Figures ================ | 44 | @c ================ Included Figures ================ |
| 113 | 45 | ||
| @@ -117,25 +49,6 @@ | |||
| 117 | @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 |
| 118 | @c case, search for `print-postscript-figures' and make appropriate changes. | 50 | @c case, search for `print-postscript-figures' and make appropriate changes. |
| 119 | 51 | ||
| 120 | @c ================ How to Create an Info file ================ | ||
| 121 | |||
| 122 | @c If you have `makeinfo' installed, run the following command | ||
| 123 | |||
| 124 | @c makeinfo emacs-lisp-intro.texi | ||
| 125 | |||
| 126 | @c or, if you want a single, large Info file, and no paragraph indents: | ||
| 127 | @c makeinfo --no-split --paragraph-indent=0 --verbose emacs-lisp-intro.texi | ||
| 128 | |||
| 129 | @c After creating the Info file, edit your Info `dir' file, if the | ||
| 130 | @c `dircategory' section below does not enable your system to | ||
| 131 | @c install the manual automatically. | ||
| 132 | @c (The `dir' file is often in the `/usr/local/share/info/' directory.) | ||
| 133 | |||
| 134 | @c ================ How to Create an HTML file ================ | ||
| 135 | |||
| 136 | @c To convert to HTML format | ||
| 137 | @c makeinfo --html --no-split --verbose emacs-lisp-intro.texi | ||
| 138 | |||
| 139 | @c ================ How to Print a Book in Various Sizes ================ | 52 | @c ================ How to Print a Book in Various Sizes ================ |
| 140 | 53 | ||
| 141 | @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. |
| @@ -154,34 +67,6 @@ | |||
| 154 | @c @afourpaper | 67 | @c @afourpaper |
| 155 | @c @set largebook | 68 | @c @set largebook |
| 156 | 69 | ||
| 157 | @c ================ How to Typeset and Print ================ | ||
| 158 | |||
| 159 | @c If you do not include PostScript figures, run either of the | ||
| 160 | @c following command sequences, or similar commands suited to your | ||
| 161 | @c system: | ||
| 162 | |||
| 163 | @c texi2dvi emacs-lisp-intro.texi | ||
| 164 | @c lpr -d emacs-lisp-intro.dvi | ||
| 165 | |||
| 166 | @c or else: | ||
| 167 | |||
| 168 | @c tex emacs-lisp-intro.texi | ||
| 169 | @c texindex emacs-lisp-intro.?? | ||
| 170 | @c tex emacs-lisp-intro.texi | ||
| 171 | @c lpr -d emacs-lisp-intro.dvi | ||
| 172 | |||
| 173 | @c If you include the PostScript figures, and you have old software, | ||
| 174 | @c you may need to convert the .dvi file to a .ps file before | ||
| 175 | @c printing. Run either of the following command sequences, or one | ||
| 176 | @c similar: | ||
| 177 | @c | ||
| 178 | @c dvips -f < emacs-lisp-intro.dvi > emacs-lisp-intro.ps | ||
| 179 | @c | ||
| 180 | @c or else: | ||
| 181 | @c | ||
| 182 | @c postscript -p < emacs-lisp-intro.dvi > emacs-lisp-intro.ps | ||
| 183 | @c | ||
| 184 | |||
| 185 | @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 |
| 186 | @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.) |
| 187 | 72 | ||
| @@ -227,7 +112,12 @@ | |||
| 227 | This is an @cite{Introduction to Programming in Emacs Lisp}, for | 112 | This is an @cite{Introduction to Programming in Emacs Lisp}, for |
| 228 | people who are not programmers. | 113 | people who are not programmers. |
| 229 | @sp 1 | 114 | @sp 1 |
| 115 | @iftex | ||
| 230 | 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 | ||
| 231 | @ifset WWW_GNU_ORG | 121 | @ifset WWW_GNU_ORG |
| 232 | @html | 122 | @html |
| 233 | <p>The homepage for GNU Emacs is at | 123 | <p>The homepage for GNU Emacs is at |
| @@ -244,7 +134,7 @@ Foundation, Inc. | |||
| 244 | @iftex | 134 | @iftex |
| 245 | Published by the:@* | 135 | Published by the:@* |
| 246 | 136 | ||
| 247 | GNU Press, @hfill @uref{http://www.fsf.org/campaigns/gnu-press/}@* | 137 | GNU Press, @hfill @uref{http://www.fsf.org/licensing/gnu-press/}@* |
| 248 | a division of the @hfill email: @email{sales@@fsf.org}@* | 138 | a division of the @hfill email: @email{sales@@fsf.org}@* |
| 249 | Free Software Foundation, Inc. @hfill Tel: +1 (617) 542-5942@* | 139 | Free Software Foundation, Inc. @hfill Tel: +1 (617) 542-5942@* |
| 250 | 51 Franklin Street, Fifth Floor @hfill Fax: +1 (617) 542-2652@* | 140 | 51 Franklin Street, Fifth Floor @hfill Fax: +1 (617) 542-2652@* |
| @@ -252,10 +142,10 @@ Boston, MA 02110-1301 USA | |||
| 252 | @end iftex | 142 | @end iftex |
| 253 | 143 | ||
| 254 | @ifnottex | 144 | @ifnottex |
| 255 | Published by the: | 145 | Printed copies available from @uref{http://shop.fsf.org/}. Published by: |
| 256 | 146 | ||
| 257 | @example | 147 | @example |
| 258 | GNU Press, http://www.fsf.org/campaigns/gnu-press/ | 148 | GNU Press, http://www.fsf.org/licensing/gnu-press/ |
| 259 | a division of the email: sales@@fsf.org | 149 | a division of the email: sales@@fsf.org |
| 260 | Free Software Foundation, Inc. Tel: +1 (617) 542-5942 | 150 | Free Software Foundation, Inc. Tel: +1 (617) 542-5942 |
| 261 | 51 Franklin Street, Fifth Floor Fax: +1 (617) 542-2652 | 151 | 51 Franklin Street, Fifth Floor Fax: +1 (617) 542-2652 |
| @@ -264,7 +154,6 @@ Boston, MA 02110-1301 USA | |||
| 264 | @end ifnottex | 154 | @end ifnottex |
| 265 | 155 | ||
| 266 | @sp 1 | 156 | @sp 1 |
| 267 | @c Printed copies are available from @uref{http://shop.fsf.org/} for $35 each.@* | ||
| 268 | ISBN 1-882114-43-4 | 157 | ISBN 1-882114-43-4 |
| 269 | 158 | ||
| 270 | Permission is granted to copy, distribute and/or modify this document | 159 | Permission is granted to copy, distribute and/or modify this document |
| @@ -1623,13 +1512,20 @@ do not work in the usual manner. Those that don't are called | |||
| 1623 | @dfn{special forms}. They are used for special jobs, like defining a | 1512 | @dfn{special forms}. They are used for special jobs, like defining a |
| 1624 | function, and there are not many of them. In the next few chapters, | 1513 | function, and there are not many of them. In the next few chapters, |
| 1625 | you will be introduced to several of the more important special forms. | 1514 | you will be introduced to several of the more important special forms. |
| 1626 | And there are also @dfn{macros}. Macro is a construct defined in | ||
| 1627 | Lisp, which differs from a function in that it translates a Lisp | ||
| 1628 | expression into another expression which is to be evaluated instead of | ||
| 1629 | the original expression. (@xref{Lisp macro}.) | ||
| 1630 | 1515 | ||
| 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}.) | ||
| 1631 | 1520 | ||
| 1632 | The third and final complication is this: if the function that the | 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 | ||
| 1633 | 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 |
| 1634 | 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 |
| 1635 | 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 |
| @@ -3059,7 +2955,7 @@ symbol refers to it.) | |||
| 3059 | 2955 | ||
| 3060 | @menu | 2956 | @menu |
| 3061 | * Primitive Functions:: | 2957 | * Primitive Functions:: |
| 3062 | * defun:: The @code{defun} special form. | 2958 | * defun:: The @code{defun} macro. |
| 3063 | * Install:: Install a function definition. | 2959 | * Install:: Install a function definition. |
| 3064 | * Interactive:: Making a function interactive. | 2960 | * Interactive:: Making a function interactive. |
| 3065 | * Interactive Options:: Different options for @code{interactive}. | 2961 | * Interactive Options:: Different options for @code{interactive}. |
| @@ -3700,7 +3596,7 @@ name for a @dfn{local variable} that overshadows any use of the same | |||
| 3700 | name outside the @code{let} expression. This is like understanding | 3596 | name outside the @code{let} expression. This is like understanding |
| 3701 | 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 |
| 3702 | yours. (Symbols used in argument lists work the same way. | 3598 | yours. (Symbols used in argument lists work the same way. |
| 3703 | @xref{defun, , The @code{defun} Special Form}.) | 3599 | @xref{defun, , The @code{defun} Macro}.) |
| 3704 | 3600 | ||
| 3705 | Local variables created by a @code{let} expression retain their value | 3601 | Local variables created by a @code{let} expression retain their value |
| 3706 | @emph{only} within the @code{let} expression itself (and within | 3602 | @emph{only} within the @code{let} expression itself (and within |
| @@ -8313,7 +8209,7 @@ an @code{if} without the possibility of an else clause. In your mind, | |||
| 8313 | 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 |
| 8314 | on. That is what the Lisp interpreter does. | 8210 | on. That is what the Lisp interpreter does. |
| 8315 | 8211 | ||
| 8316 | Technically speaking, @code{when} is a Lisp macro. A Lisp @dfn{macro} | 8212 | Technically speaking, @code{when} is a Lisp macro. A Lisp macro |
| 8317 | enables you to define new control constructs and other language | 8213 | enables you to define new control constructs and other language |
| 8318 | features. It tells the interpreter how to compute another Lisp | 8214 | features. It tells the interpreter how to compute another Lisp |
| 8319 | 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 |
| @@ -9366,7 +9262,7 @@ In the past, Emacs used the @code{defvar} special form both for | |||
| 9366 | 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 |
| 9367 | 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 |
| 9368 | use @code{defvar} for user customizable variables, please use | 9264 | use @code{defvar} for user customizable variables, please use |
| 9369 | @code{defcustom} instead, since that special form provides a path into | 9265 | @code{defcustom} instead, since it provides a path into |
| 9370 | the Customization commands. (@xref{defcustom, , Specifying Variables | 9266 | the Customization commands. (@xref{defcustom, , Specifying Variables |
| 9371 | using @code{defcustom}}.) | 9267 | using @code{defcustom}}.) |
| 9372 | 9268 | ||
| @@ -17025,7 +16921,7 @@ Finally, the @code{:group} keyword tells the Emacs Customization | |||
| 17025 | 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 |
| 17026 | find it. | 16922 | find it. |
| 17027 | 16923 | ||
| 17028 | The @code{defcustom} function recognizes more than a dozen keywords. | 16924 | The @code{defcustom} macro recognizes more than a dozen keywords. |
| 17029 | For more information, see @ref{Customization, , Writing Customization | 16925 | For more information, see @ref{Customization, , Writing Customization |
| 17030 | Definitions, elisp, The GNU Emacs Lisp Reference Manual}. | 16926 | Definitions, elisp, The GNU Emacs Lisp Reference Manual}. |
| 17031 | 16927 | ||
| @@ -19456,7 +19352,7 @@ them in an argument list (and within expressions called by them). | |||
| 19456 | @ignore | 19352 | @ignore |
| 19457 | @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 ... |
| 19458 | (@xref{Prevent confusion, , @code{let} Prevents Confusion}, and | 19354 | (@xref{Prevent confusion, , @code{let} Prevents Confusion}, and |
| 19459 | @ref{defun, , The @code{defun} Special Form}.) | 19355 | @ref{defun, , The @code{defun} Macro}.) |
| 19460 | @end ignore | 19356 | @end ignore |
| 19461 | 19357 | ||
| 19462 | @node yank | 19358 | @node yank |
| @@ -20976,7 +20872,7 @@ equivalent of @code{multiply-by-seven} is: | |||
| 20976 | @end smallexample | 20872 | @end smallexample |
| 20977 | 20873 | ||
| 20978 | @noindent | 20874 | @noindent |
| 20979 | (@xref{defun, , The @code{defun} Special Form}.) | 20875 | (@xref{defun, , The @code{defun} Macro}.) |
| 20980 | 20876 | ||
| 20981 | @need 1250 | 20877 | @need 1250 |
| 20982 | @noindent | 20878 | @noindent |
diff --git a/doc/lispintro/makefile.w32-in b/doc/lispintro/makefile.w32-in index 377112a80d2..c06e00ba757 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 |
| 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 f770fb3cada..1a6fd5eca0d 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2013-04-23 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * internals.texi (Writing Emacs Primitives): Remove obvious example. | ||
| 4 | Tweak other to avoid overly long line. | ||
| 5 | |||
| 1 | 2013-04-21 Xue Fuqiao <xfq.free@gmail.com> | 6 | 2013-04-21 Xue Fuqiao <xfq.free@gmail.com> |
| 2 | 7 | ||
| 3 | * internals.texi (Writing Emacs Primitives): Remove unnecessary | 8 | * internals.texi (Writing Emacs Primitives): Remove unnecessary |
diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi index 24440858b7e..06375c1e18e 100644 --- a/doc/lispref/internals.texi +++ b/doc/lispref/internals.texi | |||
| @@ -666,28 +666,20 @@ less than 8. | |||
| 666 | This is an interactive specification, a string such as might be used | 666 | This is an interactive specification, a string such as might be used |
| 667 | as the argument of @code{interactive} in a Lisp function. In the case | 667 | as the argument of @code{interactive} in a Lisp function. In the case |
| 668 | of @code{or}, it is 0 (a null pointer), indicating that @code{or} | 668 | of @code{or}, it is 0 (a null pointer), indicating that @code{or} |
| 669 | cannot be called interactively. A value of @code{""} indicates a function that should receive no | 669 | cannot be called interactively. A value of @code{""} indicates a |
| 670 | arguments when called interactively. For example: | 670 | function that should receive no arguments when called interactively. |
| 671 | |||
| 672 | @smallexample | ||
| 673 | @group | ||
| 674 | DEFUN ("baz", Fbaz, Sbaz, 0, 0, "", | ||
| 675 | doc: /* @dots{} */) | ||
| 676 | @end group | ||
| 677 | @end smallexample | ||
| 678 | |||
| 679 | If the value begins with a @samp{"(}, the string is evaluated as a | 671 | If the value begins with a @samp{"(}, the string is evaluated as a |
| 680 | Lisp form. For example: | 672 | Lisp form. For example: |
| 681 | 673 | ||
| 682 | @smallexample | 674 | @example |
| 683 | @group | 675 | @group |
| 684 | DEFUN ("foo", Ffoo, Sfoo, 0, UNEVALLED, "(list | 676 | DEFUN ("foo", Ffoo, Sfoo, 0, UNEVALLED, |
| 685 | (read-char-by-name \"Insert character (Unicode name or hex): \")\ | 677 | "(list (read-char-by-name \"Insert character: \")\ |
| 686 | (prefix-numeric-value current-prefix-arg)\ | 678 | (prefix-numeric-value current-prefix-arg)\ |
| 687 | t))", | 679 | t))", |
| 688 | doc: /* @dots{} /*) | 680 | doc: /* @dots{} /*) |
| 689 | @end group | 681 | @end group |
| 690 | @end smallexample | 682 | @end example |
| 691 | 683 | ||
| 692 | @item doc | 684 | @item doc |
| 693 | 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/lisp/ChangeLog b/lisp/ChangeLog index b0cad6454c3..c0b20fdbd63 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,26 @@ | |||
| 1 | 2013-04-23 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * startup.el (normal-no-mouse-startup-screen, normal-about-screen): | ||
| 4 | Remove venerable code attempting to avoid substitute-command-keys. | ||
| 5 | |||
| 6 | 2013-04-23 Tassilo Horn <tsdh@gnu.org> | ||
| 7 | |||
| 8 | * textmodes/reftex-vars.el (reftex-label-regexps): Call | ||
| 9 | `reftex-compile-variables' after changes to this variable. | ||
| 10 | |||
| 11 | 2013-04-23 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 12 | |||
| 13 | * jit-lock.el: Fix signals in jit-lock-force-redisplay. | ||
| 14 | Use lexical-binding. | ||
| 15 | (jit-lock-force-redisplay): Use markers, check buffer's continued | ||
| 16 | existence and beware narrowed buffers. | ||
| 17 | (jit-lock-fontify-now): Adjust call accordingly. | ||
| 18 | |||
| 19 | 2013-04-22 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 20 | |||
| 21 | * minibuffer.el (minibuffer-completion-contents): Fix obsolescence info | ||
| 22 | to avoid misleading the user. | ||
| 23 | |||
| 1 | 2013-04-22 Leo Liu <sdl.web@gmail.com> | 24 | 2013-04-22 Leo Liu <sdl.web@gmail.com> |
| 2 | 25 | ||
| 3 | * info-look.el: Prefer latex2e.info. (Bug#14240) | 26 | * info-look.el: Prefer latex2e.info. (Bug#14240) |
diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index d879735c344..9359a65a1b8 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | ;;; jit-lock.el --- just-in-time fontification | 1 | ;;; jit-lock.el --- just-in-time fontification -*- lexical-binding: t -*- |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1998, 2000-2013 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1998, 2000-2013 Free Software Foundation, Inc. |
| 4 | 4 | ||
| @@ -412,21 +412,24 @@ Defaults to the whole buffer. END can be out of bounds." | |||
| 412 | ;; eagerly extend the refontified region with | 412 | ;; eagerly extend the refontified region with |
| 413 | ;; jit-lock-after-change-extend-region-functions. | 413 | ;; jit-lock-after-change-extend-region-functions. |
| 414 | (when (< start orig-start) | 414 | (when (< start orig-start) |
| 415 | (run-with-timer 0 nil 'jit-lock-force-redisplay | 415 | (run-with-timer 0 nil #'jit-lock-force-redisplay |
| 416 | (current-buffer) start orig-start)) | 416 | (copy-marker start) (copy-marker orig-start))) |
| 417 | 417 | ||
| 418 | ;; Find the start of the next chunk, if any. | 418 | ;; Find the start of the next chunk, if any. |
| 419 | (setq start (text-property-any next end 'fontified nil)))))))) | 419 | (setq start (text-property-any next end 'fontified nil)))))))) |
| 420 | 420 | ||
| 421 | (defun jit-lock-force-redisplay (buf start end) | 421 | (defun jit-lock-force-redisplay (start end) |
| 422 | "Force the display engine to re-render buffer BUF from START to END." | 422 | "Force the display engine to re-render buffer BUF from START to END." |
| 423 | (with-current-buffer buf | 423 | (when (marker-buffer start) |
| 424 | (with-buffer-prepared-for-jit-lock | 424 | (with-current-buffer (marker-buffer start) |
| 425 | ;; Don't cause refontification (it's already been done), but just do | 425 | (with-buffer-prepared-for-jit-lock |
| 426 | ;; some random buffer change, so as to force redisplay. | 426 | (when (> end (point-max)) |
| 427 | (put-text-property start end 'fontified t)))) | 427 | (setq end (point-max) start (min start end))) |
| 428 | 428 | (when (< start (point-min)) | |
| 429 | 429 | (setq start (point-min) end (max start end))) | |
| 430 | ;; Don't cause refontification (it's already been done), but just do | ||
| 431 | ;; some random buffer change, so as to force redisplay. | ||
| 432 | (put-text-property start end 'fontified t))))) | ||
| 430 | 433 | ||
| 431 | ;;; Stealth fontification. | 434 | ;;; Stealth fontification. |
| 432 | 435 | ||
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 978b3a5b130..ef949f7482e 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el | |||
| @@ -638,8 +638,8 @@ If ARGS are provided, then pass MESSAGE through `format'." | |||
| 638 | 638 | ||
| 639 | (defun minibuffer-completion-contents () | 639 | (defun minibuffer-completion-contents () |
| 640 | "Return the user input in a minibuffer before point as a string. | 640 | "Return the user input in a minibuffer before point as a string. |
| 641 | That used to be what completion commands operate on." | 641 | In Emacs-22, that was what completion commands operated on." |
| 642 | (declare (obsolete minibuffer-contents "24.4")) | 642 | (declare (obsolete nil "24.4")) |
| 643 | (buffer-substring (field-beginning) (point))) | 643 | (buffer-substring (field-beginning) (point))) |
| 644 | 644 | ||
| 645 | (defun delete-minibuffer-contents () | 645 | (defun delete-minibuffer-contents () |
diff --git a/lisp/startup.el b/lisp/startup.el index dc21005ab94..b7b4c156f02 100644 --- a/lisp/startup.el +++ b/lisp/startup.el | |||
| @@ -1856,11 +1856,8 @@ To quit a partially entered command, type Control-g.\n") | |||
| 1856 | (insert "\n" (emacs-version) | 1856 | (insert "\n" (emacs-version) |
| 1857 | "\n" emacs-copyright)) | 1857 | "\n" emacs-copyright)) |
| 1858 | 1858 | ||
| 1859 | ;; No mouse menus, so give help using kbd commands. | ||
| 1860 | (defun normal-no-mouse-startup-screen () | 1859 | (defun normal-no-mouse-startup-screen () |
| 1861 | 1860 | "Show a splash screen suitable for displays without mouse support." | |
| 1862 | ;; If keys have their default meanings, | ||
| 1863 | ;; use precomputed string to save lots of time. | ||
| 1864 | (let* ((c-h-accessible | 1861 | (let* ((c-h-accessible |
| 1865 | ;; If normal-erase-is-backspace is used on a tty, there's | 1862 | ;; If normal-erase-is-backspace is used on a tty, there's |
| 1866 | ;; no way to invoke C-h and you have to use F1 instead. | 1863 | ;; no way to invoke C-h and you have to use F1 instead. |
| @@ -1938,47 +1935,24 @@ If you have no Meta key, you may instead type ESC followed by the character.)") | |||
| 1938 | 'follow-link t) | 1935 | 'follow-link t) |
| 1939 | (insert "\n") | 1936 | (insert "\n") |
| 1940 | (insert "\n" (emacs-version) "\n" emacs-copyright "\n") | 1937 | (insert "\n" (emacs-version) "\n" emacs-copyright "\n") |
| 1941 | 1938 | (insert (substitute-command-keys | |
| 1942 | (if (and (eq (key-binding "\C-h\C-c") 'describe-copying) | 1939 | " |
| 1943 | (eq (key-binding "\C-h\C-o") 'describe-distribution) | ||
| 1944 | (eq (key-binding "\C-h\C-w") 'describe-no-warranty)) | ||
| 1945 | (progn | ||
| 1946 | (insert | ||
| 1947 | " | ||
| 1948 | GNU Emacs comes with ABSOLUTELY NO WARRANTY; type C-h C-w for ") | ||
| 1949 | (insert-button "full details" | ||
| 1950 | 'action (lambda (_button) (describe-no-warranty)) | ||
| 1951 | 'follow-link t) | ||
| 1952 | (insert ". | ||
| 1953 | Emacs is Free Software--Free as in Freedom--so you can redistribute copies | ||
| 1954 | of Emacs and modify it; type C-h C-c to see ") | ||
| 1955 | (insert-button "the conditions" | ||
| 1956 | 'action (lambda (_button) (describe-copying)) | ||
| 1957 | 'follow-link t) | ||
| 1958 | (insert ". | ||
| 1959 | Type C-h C-d for information on ") | ||
| 1960 | (insert-button "getting the latest version" | ||
| 1961 | 'action (lambda (_button) (describe-distribution)) | ||
| 1962 | 'follow-link t) | ||
| 1963 | (insert ".")) | ||
| 1964 | (insert (substitute-command-keys | ||
| 1965 | " | ||
| 1966 | GNU Emacs comes with ABSOLUTELY NO WARRANTY; type \\[describe-no-warranty] for ")) | 1940 | GNU Emacs comes with ABSOLUTELY NO WARRANTY; type \\[describe-no-warranty] for ")) |
| 1967 | (insert-button "full details" | 1941 | (insert-button "full details" |
| 1968 | 'action (lambda (_button) (describe-no-warranty)) | 1942 | 'action (lambda (_button) (describe-no-warranty)) |
| 1969 | 'follow-link t) | 1943 | 'follow-link t) |
| 1970 | (insert (substitute-command-keys ". | 1944 | (insert (substitute-command-keys ". |
| 1971 | Emacs is Free Software--Free as in Freedom--so you can redistribute copies | 1945 | Emacs is Free Software--Free as in Freedom--so you can redistribute copies |
| 1972 | of Emacs and modify it; type \\[describe-copying] to see ")) | 1946 | of Emacs and modify it; type \\[describe-copying] to see ")) |
| 1973 | (insert-button "the conditions" | 1947 | (insert-button "the conditions" |
| 1974 | 'action (lambda (_button) (describe-copying)) | 1948 | 'action (lambda (_button) (describe-copying)) |
| 1975 | 'follow-link t) | 1949 | 'follow-link t) |
| 1976 | (insert (substitute-command-keys". | 1950 | (insert (substitute-command-keys". |
| 1977 | Type \\[describe-distribution] for information on ")) | 1951 | Type \\[describe-distribution] for information on ")) |
| 1978 | (insert-button "getting the latest version" | 1952 | (insert-button "getting the latest version" |
| 1979 | 'action (lambda (_button) (describe-distribution)) | 1953 | 'action (lambda (_button) (describe-distribution)) |
| 1980 | 'follow-link t) | 1954 | 'follow-link t) |
| 1981 | (insert "."))) | 1955 | (insert ".")) |
| 1982 | 1956 | ||
| 1983 | (defun normal-about-screen () | 1957 | (defun normal-about-screen () |
| 1984 | (insert "\n" (emacs-version) "\n" emacs-copyright "\n\n") | 1958 | (insert "\n" (emacs-version) "\n" emacs-copyright "\n\n") |
| @@ -2027,14 +2001,11 @@ Type \\[describe-distribution] for information on ")) | |||
| 2027 | (insert "\tBuying printed manuals from the FSF\n")) | 2001 | (insert "\tBuying printed manuals from the FSF\n")) |
| 2028 | 2002 | ||
| 2029 | (defun startup-echo-area-message () | 2003 | (defun startup-echo-area-message () |
| 2030 | (cond ((daemonp) | 2004 | (if (daemonp) |
| 2031 | "Starting Emacs daemon.") | 2005 | "Starting Emacs daemon." |
| 2032 | ((eq (key-binding "\C-h\C-a") 'about-emacs) | 2006 | (substitute-command-keys |
| 2033 | "For information about GNU Emacs and the GNU system, type C-h C-a.") | 2007 | "For information about GNU Emacs and the GNU system, type \ |
| 2034 | (t | 2008 | \\[about-emacs]."))) |
| 2035 | (substitute-command-keys | ||
| 2036 | "For information about GNU Emacs and the GNU system, type \ | ||
| 2037 | \\[about-emacs].")))) | ||
| 2038 | 2009 | ||
| 2039 | (defun display-startup-echo-area-message () | 2010 | (defun display-startup-echo-area-message () |
| 2040 | (let ((resize-mini-windows t)) | 2011 | (let ((resize-mini-windows t)) |
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el index c00cf36c79e..7343d86b06f 100644 --- a/lisp/textmodes/reftex-vars.el +++ b/lisp/textmodes/reftex-vars.el | |||
| @@ -873,7 +873,15 @@ DOWNCASE t: Downcase words before using them." | |||
| 873 | The default value matches usual \\label{...} definitions and | 873 | The default value matches usual \\label{...} definitions and |
| 874 | keyval style [..., label = {...}, ...] label definitions. It is | 874 | keyval style [..., label = {...}, ...] label definitions. It is |
| 875 | assumed that the regexp group 1 matches the label text, so you | 875 | assumed that the regexp group 1 matches the label text, so you |
| 876 | have to define it using \\(?1:...\\) when adding new regexps." | 876 | have to define it using \\(?1:...\\) when adding new regexps. |
| 877 | |||
| 878 | When changed from Lisp, make sure to call | ||
| 879 | `reftex-compile-variables' afterwards to make the change | ||
| 880 | effective." | ||
| 881 | :set (lambda (symbol value) | ||
| 882 | (set symbol value) | ||
| 883 | (when (fboundp 'reftex-compile-variables) | ||
| 884 | (reftex-compile-variables))) | ||
| 877 | :group 'reftex-defining-label-environments | 885 | :group 'reftex-defining-label-environments |
| 878 | :type '(repeat (regexp :tag "Regular Expression"))) | 886 | :type '(repeat (regexp :tag "Regular Expression"))) |
| 879 | 887 | ||