From: Glenn Morris Date: Wed, 24 Apr 2013 00:58:23 +0000 (-0400) Subject: Minor lispintro tweaks X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~2026^2~391 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=09b98a01c11d1b7d25e9d40f6bb84cb5fa73f7db;p=emacs.git Minor lispintro tweaks * doc/lispintro/Makefile.in (emacsdir): New variable.. (MAKEINFO_OPTS, ENVADD): Add $emacsdir. (srcs): Add emacsver.texi. (dist): Include emacsver.texi. Edit emacsdir. * doc/lispintro/emacs-lisp-intro.texi (emacsver.texi): Include it. (copying): For non-printed versions, uses Emacs version rather than that of the printed book. (Complications, Lisp macro, defvar and asterisk, defcustom): Copyedits. * doc/lispintro/makefile.w32-in (emacsdir): New variable. (INFO_SOURCES): Add emacsver.texi. (ENVADD): Add $emacsdir (and $texinfodir). --- 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 @@ +2013-04-24 Glenn Morris + + * emacs-lisp-intro.texi (emacsver.texi): Include it. + (copying): For non-printed versions, uses Emacs version rather + than that of the printed book. + (Complications, Lisp macro, defvar and asterisk, defcustom): Copyedits. + * Makefile.in (emacsdir): New variable.. + (MAKEINFO_OPTS, ENVADD): Add $emacsdir. + (srcs): Add emacsver.texi. + (dist): Include emacsver.texi. Edit emacsdir. + * makefile.w32-in (emacsdir): New variable. + (INFO_SOURCES): Add emacsver.texi. + (ENVADD): Add $emacsdir (and $texinfodir). + 2013-04-23 Xue Fuqiao * 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@ buildinfodir = $(srcdir)/../../info # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +# Directory with emacsver.texi. +emacsdir = $(srcdir)/../emacs MKDIR_P = @MKDIR_P@ @@ -33,17 +35,18 @@ INFO_EXT=@INFO_EXT@ INFO_OPTS=@INFO_OPTS@ MAKEINFO = @MAKEINFO@ -MAKEINFO_OPTS = --force -I $(srcdir) +MAKEINFO_OPTS = --force -I $(emacsdir) -I $(srcdir) TEXI2DVI = texi2dvi TEXI2PDF = texi2pdf DVIPS = dvips -ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \ +ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \ MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" mkinfodir = @${MKDIR_P} ${buildinfodir} -srcs = ${srcdir}/emacs-lisp-intro.texi ${srcdir}/doclicense.texi +srcs = ${srcdir}/emacs-lisp-intro.texi ${srcdir}/doclicense.texi \ + ${emacsdir}/emacsver.texi .PHONY: info dvi html pdf ps @@ -97,9 +100,10 @@ dist: rm -rf emacs-lispintro-${version} mkdir emacs-lispintro-${version} cp ${srcdir}/*.texi ${srcdir}/*.eps ${srcdir}/*.pdf \ - ${texinfodir}/texinfo.tex \ + ${texinfodir}/texinfo.tex ${emacsdir}/emacsver.texi \ ${srcdir}/ChangeLog* ${srcdir}/README emacs-lispintro-${version}/ sed -e 's/@sr[c]dir@/./' -e 's/^\(texinfodir *=\).*/\1 ./' \ + -e 's/^\(emacsdir *=\).*/\1 ./' \ -e 's/^\(buildinfodir *=\).*/\1 ./' \ -e 's/^\(clean:.*\)/\1 infoclean/' \ -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 @@ @syncodeindex fn cp @finalout +@include emacsver.texi + @c --------- @c <<<< For hard copy printing, this file is now @c set for smallbook, which works for all sizes @@ -35,9 +37,9 @@ \global\hbadness=6666 % don't worry about not-too-underfull boxes @end tex +@c These refer to the printed book sold by the FSF. @set edition-number 3.10 @set update-date 28 October 2009 -@c FIXME can this be updated? -- xfq @ignore ## Summary of shell commands to create various output formats: @@ -227,7 +229,12 @@ This is an @cite{Introduction to Programming in Emacs Lisp}, for people who are not programmers. @sp 1 +@iftex Edition @value{edition-number}, @value{update-date} +@end iftex +@ifnottex +Distributed with Emacs version @value{EMACSVER}. +@end ifnottex @ifset WWW_GNU_ORG @html

The homepage for GNU Emacs is at @@ -244,7 +251,7 @@ Foundation, Inc. @iftex Published by the:@* -GNU Press, @hfill @uref{http://www.fsf.org/campaigns/gnu-press/}@* +GNU Press, @hfill @uref{http://www.fsf.org/licensing/gnu-press/}@* a division of the @hfill email: @email{sales@@fsf.org}@* Free Software Foundation, Inc. @hfill Tel: +1 (617) 542-5942@* 51 Franklin Street, Fifth Floor @hfill Fax: +1 (617) 542-2652@* @@ -252,10 +259,10 @@ Boston, MA 02110-1301 USA @end iftex @ifnottex -Published by the: +Printed copies available from @uref{http://shop.fsf.org/}. Published by: @example -GNU Press, http://www.fsf.org/campaigns/gnu-press/ +GNU Press, http://www.fsf.org/licensing/gnu-press/ a division of the email: sales@@fsf.org Free Software Foundation, Inc. Tel: +1 (617) 542-5942 51 Franklin Street, Fifth Floor Fax: +1 (617) 542-2652 @@ -264,7 +271,6 @@ Boston, MA 02110-1301 USA @end ifnottex @sp 1 -@c Printed copies are available from @uref{http://shop.fsf.org/} for $35 each.@* ISBN 1-882114-43-4 Permission 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 @dfn{special forms}. They are used for special jobs, like defining a function, and there are not many of them. In the next few chapters, you will be introduced to several of the more important special forms. -And there are also @dfn{macros}. Macro is a construct defined in -Lisp, which differs from a function in that it translates a Lisp -expression into another expression which is to be evaluated instead of -the original expression. (@xref{Lisp macro}.) +As well as special forms, there are also @dfn{macros}. A macro +is a construct defined in Lisp, which differs from a function in that it +translates a Lisp expression into another expression that is to be +evaluated in place of the original expression. (@xref{Lisp macro}.) + +For the purposes of this introduction, you do not need to worry too much +about whether something is a special form, macro, or ordinary function. +For example, @code{if} is a special form (@pxref{if}), but @code{when} +is a macro (@pxref{Lisp macro}). In earlier versions of Emacs, +@code{defun} was a special form, but now it is a macro (@pxref{defun}). +It still behaves in the same way. -The third and final complication is this: if the function that the +The final complication is this: if the function that the Lisp interpreter is looking at is not a special form, and if it is part of a list, the Lisp interpreter looks to see whether the list has a list inside 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, you can replace @code{when} with @code{if} and understand what goes on. That is what the Lisp interpreter does. -Technically speaking, @code{when} is a Lisp macro. A Lisp @dfn{macro} +Technically speaking, @code{when} is a Lisp macro. A Lisp macro enables you to define new control constructs and other language features. It tells the interpreter how to compute another Lisp expression 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 internal variables that you would not expect a user to change and for variables that you do expect a user to change. Although you can still use @code{defvar} for user customizable variables, please use -@code{defcustom} instead, since that special form provides a path into +@code{defcustom} instead, since it provides a path into the Customization commands. (@xref{defcustom, , Specifying Variables using @code{defcustom}}.) @@ -17025,7 +17038,7 @@ Finally, the @code{:group} keyword tells the Emacs Customization command in which group the variable is located. This tells where to find it. -The @code{defcustom} function recognizes more than a dozen keywords. +The @code{defcustom} macro recognizes more than a dozen keywords. For more information, see @ref{Customization, , Writing Customization Definitions, elisp, The GNU Emacs Lisp Reference Manual}. 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 = . infodir = $(srcdir)/../../info # Directory with the (customized) texinfo.tex file. texinfodir = $(srcdir)/../misc +# Directory with emacsver.texi. +emacsdir = $(srcdir)/../emacs INFO_EXT=.info INFO_OPTS=--no-split -INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi $(srcdir)/doclicense.texi +INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi $(emacsdir)/emacsver.texi \ + $(srcdir)/doclicense.texi # The file name eintr must fit within 5 characters, to allow for # -NN extensions to fit into DOS 8+3 limits without clashing INFO_TARGETS = $(infodir)/eintr$(INFO_EXT) @@ -37,8 +40,9 @@ INSTALL_INFO = install-info TEXI2DVI = texi2dvi TEXI2PDF = texi2pdf DVIPS = dvips -ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \ - "MAKEINFO=$(MAKEINFO) -I$(srcdir) -I$(texinfodir)" /C +ENVADD = $(srcdir)\..\..\nt\envadd.bat \ + "TEXINPUTS=$(srcdir);$(texinfodir);$(emacsdir);$(TEXINPUTS)" \ + "MAKEINFO=$(MAKEINFO) -I$(srcdir) -I$(emacsdir) -I$(texinfodir)" /C .SUFFIXES: .dvi .ps .texi