aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/lispintro/ChangeLog14
-rw-r--r--doc/lispintro/Makefile.in12
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi39
-rw-r--r--doc/lispintro/makefile.w32-in10
4 files changed, 55 insertions, 20 deletions
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog
index a1ec47a7724..f39fec61f6e 100644
--- a/doc/lispintro/ChangeLog
+++ b/doc/lispintro/ChangeLog
@@ -1,3 +1,17 @@
12013-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
12013-04-23 Xue Fuqiao <xfq.free@gmail.com> 152013-04-23 Xue Fuqiao <xfq.free@gmail.com>
2 16
3 * emacs-lisp-intro.texi (Complications, defvar, Writing Defuns) 17 * emacs-lisp-intro.texi (Complications, defvar, Writing Defuns)
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@
25buildinfodir = $(srcdir)/../../info 25buildinfodir = $(srcdir)/../../info
26# Directory with the (customized) texinfo.tex file. 26# Directory with the (customized) texinfo.tex file.
27texinfodir = $(srcdir)/../misc 27texinfodir = $(srcdir)/../misc
28# Directory with emacsver.texi.
29emacsdir = $(srcdir)/../emacs
28 30
29MKDIR_P = @MKDIR_P@ 31MKDIR_P = @MKDIR_P@
30 32
@@ -33,17 +35,18 @@ INFO_EXT=@INFO_EXT@
33INFO_OPTS=@INFO_OPTS@ 35INFO_OPTS=@INFO_OPTS@
34 36
35MAKEINFO = @MAKEINFO@ 37MAKEINFO = @MAKEINFO@
36MAKEINFO_OPTS = --force -I $(srcdir) 38MAKEINFO_OPTS = --force -I $(emacsdir) -I $(srcdir)
37TEXI2DVI = texi2dvi 39TEXI2DVI = texi2dvi
38TEXI2PDF = texi2pdf 40TEXI2PDF = texi2pdf
39DVIPS = dvips 41DVIPS = dvips
40 42
41ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \ 43ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \
42 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" 44 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
43 45
44mkinfodir = @${MKDIR_P} ${buildinfodir} 46mkinfodir = @${MKDIR_P} ${buildinfodir}
45 47
46srcs = ${srcdir}/emacs-lisp-intro.texi ${srcdir}/doclicense.texi 48srcs = ${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 e0c51a9a8fb..be842b2b5d0 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,9 +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 43
42@ignore 44@ignore
43 ## Summary of shell commands to create various output formats: 45 ## Summary of shell commands to create various output formats:
@@ -227,7 +229,12 @@
227This is an @cite{Introduction to Programming in Emacs Lisp}, for 229This is an @cite{Introduction to Programming in Emacs Lisp}, for
228people who are not programmers. 230people who are not programmers.
229@sp 1 231@sp 1
232@iftex
230Edition @value{edition-number}, @value{update-date} 233Edition @value{edition-number}, @value{update-date}
234@end iftex
235@ifnottex
236Distributed with Emacs version @value{EMACSVER}.
237@end ifnottex
231@ifset WWW_GNU_ORG 238@ifset WWW_GNU_ORG
232@html 239@html
233<p>The homepage for GNU Emacs is at 240<p>The homepage for GNU Emacs is at
@@ -244,7 +251,7 @@ Foundation, Inc.
244@iftex 251@iftex
245Published by the:@* 252Published by the:@*
246 253
247GNU Press, @hfill @uref{http://www.fsf.org/campaigns/gnu-press/}@* 254GNU Press, @hfill @uref{http://www.fsf.org/licensing/gnu-press/}@*
248a division of the @hfill email: @email{sales@@fsf.org}@* 255a division of the @hfill email: @email{sales@@fsf.org}@*
249Free Software Foundation, Inc. @hfill Tel: +1 (617) 542-5942@* 256Free Software Foundation, Inc. @hfill Tel: +1 (617) 542-5942@*
25051 Franklin Street, Fifth Floor @hfill Fax: +1 (617) 542-2652@* 25751 Franklin Street, Fifth Floor @hfill Fax: +1 (617) 542-2652@*
@@ -252,10 +259,10 @@ Boston, MA 02110-1301 USA
252@end iftex 259@end iftex
253 260
254@ifnottex 261@ifnottex
255Published by the: 262Printed copies available from @uref{http://shop.fsf.org/}. Published by:
256 263
257@example 264@example
258GNU Press, http://www.fsf.org/campaigns/gnu-press/ 265GNU Press, http://www.fsf.org/licensing/gnu-press/
259a division of the email: sales@@fsf.org 266a division of the email: sales@@fsf.org
260Free Software Foundation, Inc. Tel: +1 (617) 542-5942 267Free Software Foundation, Inc. Tel: +1 (617) 542-5942
26151 Franklin Street, Fifth Floor Fax: +1 (617) 542-2652 26851 Franklin Street, Fifth Floor Fax: +1 (617) 542-2652
@@ -264,7 +271,6 @@ Boston, MA 02110-1301 USA
264@end ifnottex 271@end ifnottex
265 272
266@sp 1 273@sp 1
267@c Printed copies are available from @uref{http://shop.fsf.org/} for $35 each.@*
268ISBN 1-882114-43-4 274ISBN 1-882114-43-4
269 275
270Permission is granted to copy, distribute and/or modify this document 276Permission is granted to copy, distribute and/or modify this document
@@ -1623,13 +1629,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 1629@dfn{special forms}. They are used for special jobs, like defining a
1624function, and there are not many of them. In the next few chapters, 1630function, and there are not many of them. In the next few chapters,
1625you will be introduced to several of the more important special forms. 1631you will be introduced to several of the more important special forms.
1626And there are also @dfn{macros}. Macro is a construct defined in
1627Lisp, which differs from a function in that it translates a Lisp
1628expression into another expression which is to be evaluated instead of
1629the original expression. (@xref{Lisp macro}.)
1630 1632
1633As well as special forms, there are also @dfn{macros}. A macro
1634is a construct defined in Lisp, which differs from a function in that it
1635translates a Lisp expression into another expression that is to be
1636evaluated in place of the original expression. (@xref{Lisp macro}.)
1637
1638For the purposes of this introduction, you do not need to worry too much
1639about whether something is a special form, macro, or ordinary function.
1640For example, @code{if} is a special form (@pxref{if}), but @code{when}
1641is a macro (@pxref{Lisp macro}). In earlier versions of Emacs,
1642@code{defun} was a special form, but now it is a macro (@pxref{defun}).
1643It still behaves in the same way.
1631 1644
1632The third and final complication is this: if the function that the 1645The final complication is this: if the function that the
1633Lisp interpreter is looking at is not a special form, and if it is part 1646Lisp interpreter is looking at is not a special form, and if it is part
1634of a list, the Lisp interpreter looks to see whether the list has a list 1647of a list, the Lisp interpreter looks to see whether the list has a list
1635inside of it. If there is an inner list, the Lisp interpreter first 1648inside of it. If there is an inner list, the Lisp interpreter first
@@ -8313,7 +8326,7 @@ an @code{if} without the possibility of an else clause. In your mind,
8313you can replace @code{when} with @code{if} and understand what goes 8326you can replace @code{when} with @code{if} and understand what goes
8314on. That is what the Lisp interpreter does. 8327on. That is what the Lisp interpreter does.
8315 8328
8316Technically speaking, @code{when} is a Lisp macro. A Lisp @dfn{macro} 8329Technically speaking, @code{when} is a Lisp macro. A Lisp macro
8317enables you to define new control constructs and other language 8330enables you to define new control constructs and other language
8318features. It tells the interpreter how to compute another Lisp 8331features. It tells the interpreter how to compute another Lisp
8319expression which will in turn compute the value. In this case, the 8332expression which will in turn compute the value. In this case, the
@@ -9366,7 +9379,7 @@ In the past, Emacs used the @code{defvar} special form both for
9366internal variables that you would not expect a user to change and for 9379internal variables that you would not expect a user to change and for
9367variables that you do expect a user to change. Although you can still 9380variables that you do expect a user to change. Although you can still
9368use @code{defvar} for user customizable variables, please use 9381use @code{defvar} for user customizable variables, please use
9369@code{defcustom} instead, since that special form provides a path into 9382@code{defcustom} instead, since it provides a path into
9370the Customization commands. (@xref{defcustom, , Specifying Variables 9383the Customization commands. (@xref{defcustom, , Specifying Variables
9371using @code{defcustom}}.) 9384using @code{defcustom}}.)
9372 9385
@@ -17025,7 +17038,7 @@ Finally, the @code{:group} keyword tells the Emacs Customization
17025command in which group the variable is located. This tells where to 17038command in which group the variable is located. This tells where to
17026find it. 17039find it.
17027 17040
17028The @code{defcustom} function recognizes more than a dozen keywords. 17041The @code{defcustom} macro recognizes more than a dozen keywords.
17029For more information, see @ref{Customization, , Writing Customization 17042For more information, see @ref{Customization, , Writing Customization
17030Definitions, elisp, The GNU Emacs Lisp Reference Manual}. 17043Definitions, elisp, The GNU Emacs Lisp Reference Manual}.
17031 17044
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 = .
23infodir = $(srcdir)/../../info 23infodir = $(srcdir)/../../info
24# Directory with the (customized) texinfo.tex file. 24# Directory with the (customized) texinfo.tex file.
25texinfodir = $(srcdir)/../misc 25texinfodir = $(srcdir)/../misc
26# Directory with emacsver.texi.
27emacsdir = $(srcdir)/../emacs
26 28
27INFO_EXT=.info 29INFO_EXT=.info
28INFO_OPTS=--no-split 30INFO_OPTS=--no-split
29INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi $(srcdir)/doclicense.texi 31INFO_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
32INFO_TARGETS = $(infodir)/eintr$(INFO_EXT) 35INFO_TARGETS = $(infodir)/eintr$(INFO_EXT)
@@ -37,8 +40,9 @@ INSTALL_INFO = install-info
37TEXI2DVI = texi2dvi 40TEXI2DVI = texi2dvi
38TEXI2PDF = texi2pdf 41TEXI2PDF = texi2pdf
39DVIPS = dvips 42DVIPS = dvips
40ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \ 43ENVADD = $(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