Merge from emacs--devo--0

Patches applied:

 * emacs--devo--0  (patch 866-879)

   - Merge multi-tty branch
   - Update from CVS
   - Merge from emacs--rel--22

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-257
This commit is contained in:
Miles Bader 2007-10-11 16:24:58 +00:00
commit c73bd236f7
416 changed files with 80201 additions and 99211 deletions

View file

@ -5,22 +5,20 @@ Tasks needed before the next release.
** Check for widow and orphan lines in manuals;
make sure all the pages really look ok in the manual as formatted.
** Regenerate the postscript files of the reference cards in etc.
** Regenerate the pdf versions of the reference cards in etc/refcards/.
** Ask maintainers of refcard translations to update them.
Requests to have been sent out on 2006-05-23 (Reiner Steib).
Emacs 22 translators:
LANG Translator Status
cs Pavel Janík Can't work on it now.
de Sven Joachim Done
fr Eric Jacoboni Done
pl Włodek Bzyl Done
pt-br Rodrigo Real Done
ru Alex Ott Done
sk Miroslav Vaško No response
Reminders sent out on 2006-06-08.
cs Pavel Janík
de Sven Joachim
fr Eric Jacoboni
pl Włodek Bzyl
pt-br Rodrigo Real
ru Alex Ott
sk Miroslav Vaško
** Remove temporary +++/--- lines in NEWS.
@ -47,20 +45,45 @@ GNU/Linux system.
* BUGS
NB the definitive copy of this file for Emacs 22 is on the
EMACS_22_BASE branch. Any entries below are automatically copied from
that branch. Do not make manual changes to this file on the trunk.
** Document the changes introduced by multi-tty
http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg01639.html
http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg01602.html
** ams@gnu.org, 9 July: eshell and external commands
http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg00385.html
** Does deleting frames run Lisp code? If so, can we get rid of that?
It is a dangerous design.
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01330.html
** Check all non-file-scope static vars to make sure they
won't lose on USG or HPUX systems.
** Why were the calls to x_fully_uncatch_errors commented out in eval.c?
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01987.html
* FIXES FOR EMACS 22.3
** raman@users.sf.net, sep 7: Emacs 23.0.50: Segfaults in alloc.c (batch process)
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00690.html
Here we list any small fixes that arrived too late for Emacs 22.2, but
that should be installed on the release branch after 22.2 is released.
** grep et al should use font-lock to do highlighting, so that they respect font-lock-mode.
"can't turn off font-lock"
http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg00548.html
** mah@everybody.org, Sep 18: erc causes emacs to hang with multi-tty
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01765.html
** jbw@macs.hw.ac.uk, Sep 18: before-string property has no effect if display property is empty
http://lists.gnu.org/archive/html/bug-gnu-emacs/2007-09/msg00094.html
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01816.html
** sdl.web@gmail.com, Sep 24: TLS infinite loop.
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01720.html
** herring@lanl.gov: find-func: can no longer find adviced subrs
This ought to work.
** \\{...} produces duplicate entries
http://lists.gnu.org/archive/html/emacs-devel/2007-05/msg00209.html
** menu indications of key bindings for remapped commands
http://lists.gnu.org/archive/html/emacs-devel/2007-05/msg01339.html
** tromey@redhat.com: two View-mode "quit" bugs
http://lists.gnu.org/archive/html/emacs-devel/2007-07/msg00103.html
* DOCUMENTATION
@ -68,8 +91,8 @@ that should be installed on the release branch after 22.2 is released.
The first line of every tutorial must begin with text ending in a
period (".", ASCII 0x2E) saying "Emacs Tutorial" in the respective
language. This should be followed by "See end for copying
conditions", likewise in the respective language.
language. This should be followed by "See end for copying conditions",
likewise in the respective language.
After each file name, on the same line or the following line, come the
names of the people who have checked it.

View file

@ -10,7 +10,7 @@ For each step, check for possible errors.
make sure that the later tagged version will bootstrap, should it be
necessary to check it out.
3. Regenerate Emacs' AUTHORS file (M-x load-file RET
3. Regenerate Emacs' etc/AUTHORS file (M-x load-file RET
lisp/emacs-lisp/authors.el RET, then M-x authors RET, then save
the *Authors* buffer). This may require fixing syntactically
incorrect ChangeLog entries beforehand.
@ -21,7 +21,7 @@ For each step, check for possible errors.
5. rm configure; make bootstrap
6. Commit configure, README, AUTHORS, lisp/finder-inf.el,
6. Commit configure, README, etc/AUTHORS, lisp/finder-inf.el,
lisp/version.el, man/emacs.texi, lispref/elisp.texi,
mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings,
mac/src/Emacs.r, nt/emacs.rc. Copy lisp/loaddefs.el to

5
admin/notes/changelogs Normal file
View file

@ -0,0 +1,5 @@
http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00793.html
There is no need to make change log entries for files such as NEWS,
MAINTAINERS, and FOR-RELEASE.
The same applies for regenerating files like configure.

1362
admin/notes/multi-tty Normal file

File diff suppressed because it is too large Load diff

View file

@ -60,9 +60,12 @@
file, plus temacs.exe and dump.bat, which are required if you want to
redump emacs without recompiling it.
+ libxpm-src.zip
Source code for libXpm-X11R7.2-3.5.6 modified to compile on Windows.
This corresponds to the libXpm.dll in emacs-22.2-bin-i386.zip
+ libxpm-3.5.7-w32-src.zip
Source code required to compile libXpm-3.5.7 on Windows. Contains
a basic Makefile for compiling with mingw32 and a .def file for
generating a DLL with the appropriate exports in addition to the
source code to provide the subset of functionality Emacs uses from
libXpm. This corresponds to the libXpm.dll in emacs-22.2-bin-i386.zip
and emacs-22.2-barebin-i386.zip.
@ -93,7 +96,7 @@
the black and white versions of the toolbar icons.
XPM: a Windows port of the XPM library corresponding to the x.org
release of X11R7.2 is included with the binary distribution, but
release of X11R7.3 is included with the binary distribution, but
can be replaced by other versions with the name xpm4.dll,
libxpm-nox4.dll or libxpm.dll.

21
doc/lispintro/.gitignore vendored Normal file
View file

@ -0,0 +1,21 @@
*.aux
*.fn
*.fns
*.cps
*.cp
*.kys
*.ky
*.toc
*.pgs
*.pg
*.log
*.vrs
*.vr
*.dvi
*.ps
*.tp
*.tps
*.tmp
*.txt
Makefile
makefile

287
doc/lispintro/ChangeLog Normal file
View file

@ -0,0 +1,287 @@
2007-09-12 Robert J. Chassell <bob@rattlesnake.com>
* emacs-lisp-intro.texi: Add email address to Thank You correctly
2007-09-06 Romain Francoise <romain@orebokech.com>
* Makefile.in (maintainer-clean): Delete info files.
2007-09-06 Glenn Morris <rgm@gnu.org>
* Move from lispintro/ to doc/lispintro/.
* Makefile.in (infodir): Go up one more level.
(usermanualdir): Change from ../man to ../emacs.
* makefile.w32-in (infodir, ENVADD): Go up one more level.
* emacs-lisp-intro.texi (setfilename): Go up one more level.
2007-07-30 Robert J. Chassell <bob@rattlesnake.com>
* emacs-lisp-intro.texi: Fix typo on line 5173, change `thee' to
`these'.
2007-07-25 Glenn Morris <rgm@gnu.org>
* Relicense all FSF files to GPLv3 or later.
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
* Version 22.1 released.
2007-01-30 Robert J. Chassell <bob@rattlesnake.com>
* emacs-lisp-intro.texi (else): Rephrase message of first
if-then-else example so it is right both in itself and in the
"true" case of the expression, which asks whether 4 is greater
than 5.
2006-11-27 Andreas Schwab <schwab@suse.de>
* Makefile.in (usermanualdir): Define.
(emacs-lisp-intro.dvi): Pass -I options to texi2dvi instead of
using TEXINPUTS.
* emacs-lisp-intro.texi: Input texinfo instead of ../man/texinfo
to fix building outside source directory.
2006-11-09 Robert J. Chassell <bob@rattlesnake.com>
* emacs-lisp-intro.texi: Copy descriptions from detailed master
menu to menus within body.
* emacs-lisp-intro.texi (at the beginning): Add `other shell
commands' to produce additional output formats; total is now ten.
(A Loop with an Incrementing Counter, and others): Ensure Info
menus will appear in short windows.
(Disentangle beginning-of-buffer): Replace `version 21' with `more
recent versions'.
(Simple Extension): Show how to handle multiple versions by adding
an alternative with a test of `>= 21'
2006-11-06 Robert J. Chassell <bob@rattlesnake.com>
* emacs-lisp-intro.texi: Finish minor changes seen from DVI output.
Replace 22.1.100 with 22.1.1.
(current-kill): Mention functions that directly or indirectly call
`kill-new', which sets `kill-ring-yank-pointer'.
(Understanding current-kill): Change `lasted' to `last'. Remove
extraneous parenthesis. Reword item about returning `car' of list.
(yank): Remove mention of `rotate-yank-pointer'.
(Y Axis Element): Add comment regarding replacement of blank space.
(print-Y-axis Penultimate): Explain that `print-graph' will pass
`height-of-top-line' so `print-Y-axis' does not have a bug.
2006-11-05 Robert J. Chassell <bob@rattlesnake.com>
* emacs-lisp-intro.texi: Yet more minor changes:
(defcustom): Said that `:options' is usually for a hook. Remove
extraneous space in parenthetical remark concerning
`text-mode-hook-identify'. At end, mention other defines, too.
(Beginning a .emacs File): Reverse words about comments so they
parallel numbers of listed semi-colons.
(Text and Auto-fill): Remove extraneous blank line in example.
(Mail Aliases): Remove extraneous blank line in example.
(Keybindings): Reformat as needed with `key' rather than `kbd'.
(Keybindings, Miscellaneous, Mode Line): For small book format, start
section name on top of new page.
(Simple Extension): Replace longer expression with
`emacs-major-version'. Remove comment about `number-to-string'
function.
(Miscellaneous): Add filename option, `-H', to `grep' example
(debug, debug-on-entry): Replace `GNU Emacs 22' with `a recent
GNU Emacs'.
(edebug): More properly state where to place point for 'M-x
edebug-defun'.
* emacs-lisp-intro.texi: More minor changes.
Center images for TeX output.
(kill-new function): Remove indentation for sentence talking about
momentarily skipping code.
(cons & search-fwd Review): Document @code{funcall}. Document
@code{re-search-forward} with existing @code{search-forward}.
Reference chapter on regular expression searches.
(Recursion with list): Specify a more recent version as being Emacs.
(Recursion with list, Every, recursive-graph-body-print): Change
`if ... progn' expression to `when'.
(Recursive triangle function): For printing in small book, ensure
section name is not last on bottom of preceding page.
(Keep): Remove extraneous space in function definition example.
(sentence-end): Specify `in English' for glyphs that end a sentence.
Note that in GNU Emacs 22, the name refers to both a variable and a
function.
(fwd-sentence while loops): Write a function as one, not as a form
(fwd-para let): Add `which' to sentence with `parstart' and `parsep'.
(etags): Move sentences involving `find-tag' and sources. State
location of Emacs `src' directory.
(Design count-words-region): Better explain two backslashes in a row.
(Find a File): Fix grammar; add a `to' and write `to visit'. Change
`named' to `selected'.
(lengths-list-file): Remove extraneous parenthesis from reference.
(lengths-list-many-files): Explain `expand-file-name' better.
(Files List): Rephrase sentence regarding Lisp sources directory
2006-11-04 Robert J. Chassell <bob@rattlesnake.com>
* emacs-lisp-intro.texi: Replace 22.0.100 with 22.1.100.
(defcustom): Note that the value set by defconst is a variable.
(Buffer Size & Locations): Parenthetical remark about evaluation.
(Finding More): Change text to include C sources by inference.
* emacs-lisp-intro.texi: Minor fixes.
Replace all tabs with eight spaces each so printed text looks correct.
Remove extraneous comma in a printed node name produced by `ref'.
(insert-buffer): Add a missing beginning parenthesis.
(beginning-of-buffer): Add `beginning of' to note about accessible
portion.
(narrow Exercise): Write closing parenthesis at end of correct
paragraph.
(zap-to-char): Remove extraneous `a' from first sentence.
(Complete zap-to-char): Remove two extraneous sentences.
(zap-to-char body): Move sentences on documentation two nodes earlier.
(Lisp macro): Add definition of `unless' macro.
(last-command & this-command): Remove comment that `we have not yet
seen' the @code{eq} function.
(kill-append function): Reformat `kill-append' function definition so
it prints well.
(kill-new function): Indent the sentence beginning `notice'. Replace
`the same as' with `similar to'. Repair typo. Remove obsolete
references to `yank' and `yank-pop. End section with a note that `we
will digress into C.'
2006-11-02 Robert J. Chassell <bob@rattlesnake.com>
* emacs-lisp-intro.texi (kill-ring-yank-pointer): Revert addition
of extraneous quotation mark to rotate-yank-pointer.
2006-11-01 Juri Linkov <juri@jurta.org>
* emacs-lisp-intro.texi: Fix unbalanced quotes.
2006-10-31 Robert J. Chassell <bob@rattlesnake.com>
* emacs-lisp-intro.texi: Revised text for kill-region,
copy-region-as-kill, kill-append, kill-new, forward-sentence,
forward-paragraph, find-file, current-kill, yank, and yank-pop.
Removed INSTALL MANIFEST from the directory since those files are
now irrelevant. Updated Info file in ../info. Changed numbering
so is now Revised Third Edition and this instance's edition-number
is 3.00. Did not update ISBN number.
* emacs-lisp-intro.texi: Remove version reference for X colors.
Document `='. Remove mention that :eval was new in 21. Updated
instance's edition-number to 3.01.
2006-10-30 Robert J. Chassell <bob@rattlesnake.com>
* emacs-lisp-intro.texi: Many changes since it turned out that
many `simple' functions were rewritten. Changes to the text
regarding zap-to-char, mark-whole-buffer, append-to-buffer,
copy-to-buffer, beginning-of-buffer, what-line, and possibly
others. (I have not reviewed all yet.) This instance does build
for Info and TeX.
2006-10-29 Chong Yidong <cyd@stupidchicken.com>
* Makefile.in: Use relative paths to avoid advertising filesystem
contents during compilation.
2006-08-21 Robert J. Chassell <bob@rattlesnake.com>
* emacs-lisp-intro.texi: deleted in directory copy of texinfo.tex
and pointed towards ../man/texinfo.tex so only one file
needs updating. Added comment of what to do when building on own.
* texinfo.tex: changed to version 2006-02-13.16
to enable a DVI build using the more recent versions of TeX.
2006-05-25 David Kastrup <dak@gnu.org>
* emacs-lisp-intro.texi (setcar): replace an antelope rather than
a giraffe with a hippopotamus.
2006-05-19 Thien-Thi Nguyen <ttn@gnu.org>
* emacs-lisp-intro.texi (Digression concerning error): Fix typo.
2005-09-16 Romain Francoise <romain@orebokech.com>
* emacs-lisp-intro.texi (GNU Free Documentation License):
Specify GFDL version 1.2.
2005-07-30 Eli Zaretskii <eliz@gnu.org>
* makefile.w32-in (info): Don't run install-info.
($(infodir)/dir): New target, produced by running install-info.
2005-07-04 Lute Kamstra <lute@gnu.org>
Update FSF's address in GPL notices.
* emacs-lisp-intro.texi: Update FSF's address.
2004-04-23 Juanma Barranquero <lektu@terra.es>
* makefile.w32-in: Add "-*- makefile -*-" mode tag.
2004-02-29 Juanma Barranquero <lektu@terra.es>
* makefile.w32-in (mostlyclean, clean, maintainer-clean): Use
$(DEL) instead of rm, and ignore exit code.
2003-11-16 Kevin Ryde <user42@zip.com.au>
* emacs-lisp-intro.texi: [CVS commitment by <bob@rattlesnake.com>]
Corrections to cross references,
(Interactive Options): elisp "interactive" -> "Using Interactive".
(defvar and asterisk): Remove emacs "Edit Options" reference,
edit-options is no longer described in the emacs manual.
(Lists diagrammed): elisp "List Type" -> "Cons Cell Type".
2003-09-03 Peter Runestig <peter@runestig.com>
* makefile.w32-in: New file.
2001-11-29 Eli Zaretskii <eliz@is.elta.co.il>
* emacs-lisp-intro.texi (Index): @ignore extraneous text.
Use @dircategory and @direntry to define the DIR entry.
2001-11-25 Robert J. Chassell <bob@rattlesnake.com>
* emacs-lisp-intro.texi: Move @contents to the beginning of the
file. Set the size to @smallbook.
2001-11-24 Eli Zaretskii <eliz@is.elta.co.il>
* Makefile.in: New file.
* README: Update.
* *.eps: Rename to avoid clashes in DOS 8+3 namespace.
;; Local Variables:
;; coding: iso-2022-7bit
;; add-log-time-zone-rule: t
;; End:
Copyright (C) 2001, 2002, 2003, 2004, 2005,
2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
;;; arch-tag: ee4f8e1f-e14c-4d2e-86de-4dd697e6f1c3

View file

@ -0,0 +1,7 @@
AUTOMAKE_OPTIONS = foreign 1.2
info_TEXINFOS = emacs-lisp-intro.texi
EXTRA_DIST = INSTALL MANIFEST README drawers.eps \
cons-1.eps cons-2.eps cons-2a.eps cons-3.eps \
cons-4.eps cons-5.eps lambda-1.eps lambda-2.eps lambda-3.eps
# arch-tag: 6a3e6d99-7aa2-479f-939c-5531165c5747

73
doc/lispintro/Makefile.in Normal file
View file

@ -0,0 +1,73 @@
#### Makefile for the Emacs Lisp Introduction manual
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
# GNU Emacs is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with GNU Emacs; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
SHELL = @SHELL@
srcdir = @srcdir@
VPATH = @srcdir@
infodir = ../../info
usermanualdir = $(srcdir)/../emacs
INFO_SOURCES = ${srcdir}/emacs-lisp-intro.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
DVI_TARGETS = emacs-lisp-intro.dvi
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
DVIPS = dvips
.SUFFIXES: .dvi .ps .texi
info: $(INFO_TARGETS)
dvi: $(DVI_TARGETS)
${infodir}/eintr: ${INFO_SOURCES}
cd $(srcdir); $(MAKEINFO) emacs-lisp-intro.texi -o $(infodir)/eintr
emacs-lisp-intro.dvi: ${INFO_SOURCES}
$(TEXI2DVI) -I $(srcdir) -I $(usermanualdir) $(srcdir)/emacs-lisp-intro.texi
emacs-lisp-intro.html: $(INFO_SOURCES)
$(MAKEINFO) --html -o $@ $(srcdir)/emacs-lisp-intro.texi
.dvi.ps:
$(DVIPS) $< -o $@
mostlyclean:
rm -f *.log *.cp *.fn *.ky *.pg *.vr *.tp
clean: mostlyclean
rm -f *.dvi
distclean: clean
maintainer-clean: distclean
rm -f *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc
cd $(infodir); rm -f eintr eintr-[1-9]
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

344
doc/lispintro/Makefile.old Normal file
View file

@ -0,0 +1,344 @@
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003,
# 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
MAKEINFO = @MAKEINFO@
PACKAGE = @PACKAGE@
VERSION = @VERSION@
AUTOMAKE_OPTIONS = foreign 1.2
info_TEXINFOS = emacs-lisp-intro.texi
EXTRA_DIST = INSTALL MANIFEST README chest-of-drawers-diagram.eps cons-cell-diagram1.eps cons-cell-diagram2.eps cons-cell-diagram2a.eps cons-cell-diagram3.eps cons-cell-diagram4.eps cons-cell-diagram5.eps lambda-diagram1.eps lambda-diagram2.eps lambda-diagram3.eps
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_CLEAN_FILES =
TEXI2DVI = texi2dvi
INFO_DEPS = emacs-lisp-intro.info
DVIS = emacs-lisp-intro.dvi
TEXINFOS = emacs-lisp-intro.texi
DIST_COMMON = README INSTALL Makefile.am Makefile.in aclocal.m4 \
configure configure.in install-sh missing mkinstalldirs texinfo.tex
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): configure.in
cd $(srcdir) && $(ACLOCAL)
config.status: $(srcdir)/configure.in $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
emacs-lisp-intro.info: emacs-lisp-intro.texi
emacs-lisp-intro.dvi: emacs-lisp-intro.texi
DVIPS = dvips
.texi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texi.dvi:
TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.texi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.dvi:
TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.txi.dvi:
TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.dvi.ps:
$(DVIPS) $< -o $@
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(infodir)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
d=$(srcdir); \
for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
if test -f $$d/$$ifile; then \
echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
$(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
else : ; fi; \
done; \
done
@$(POST_INSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
done; \
else : ; fi
uninstall-info:
$(PRE_UNINSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
ii=yes; \
else ii=; fi; \
list='$(INFO_DEPS)'; \
for file in $$list; do \
test -z "$$ii" \
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
done
@$(NORMAL_UNINSTALL)
list='$(INFO_DEPS)'; \
for file in $$list; do \
(cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
done
dist-info: $(INFO_DEPS)
list='$(INFO_DEPS)'; \
for base in $$list; do \
d=$(srcdir); \
for file in `cd $$d && eval echo $$base*`; do \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done; \
done
mostlyclean-aminfo:
-rm -f emacs-lisp-intro.aux emacs-lisp-intro.cp emacs-lisp-intro.cps \
emacs-lisp-intro.dvi emacs-lisp-intro.fn emacs-lisp-intro.fns \
emacs-lisp-intro.ky emacs-lisp-intro.kys emacs-lisp-intro.ps \
emacs-lisp-intro.log emacs-lisp-intro.pg emacs-lisp-intro.toc \
emacs-lisp-intro.tp emacs-lisp-intro.tps emacs-lisp-intro.vr \
emacs-lisp-intro.vrs emacs-lisp-intro.op emacs-lisp-intro.tr \
emacs-lisp-intro.cv emacs-lisp-intro.cn
clean-aminfo:
distclean-aminfo:
maintainer-clean-aminfo:
cd $(srcdir) && for i in $(INFO_DEPS); do \
rm -f $$i; \
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
rm -f $$i-[0-9]*; \
fi; \
done
tags: TAGS
TAGS:
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
-rm -rf $(distdir)
GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
mkdir $(distdir)/=build
mkdir $(distdir)/=inst
dc_install_base=`cd $(distdir)/=inst && pwd`; \
cd $(distdir)/=build \
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) dist
-rm -rf $(distdir)
@banner="$(distdir).tar.gz is ready for distribution"; \
dashes=`echo "$$banner" | sed s/./=/g`; \
echo "$$dashes"; \
echo "$$banner"; \
echo "$$dashes"
dist: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
dist-all: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
distdir: $(DISTFILES)
-rm -rf $(distdir)
mkdir $(distdir)
-chmod 777 $(distdir)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
info-am: $(INFO_DEPS)
info: info-am
dvi-am: $(DVIS)
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
install-data-am: install-info-am
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-info
uninstall: uninstall-am
all-am: Makefile $(INFO_DEPS)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(infodir)
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-aminfo mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-aminfo clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-aminfo distclean-generic clean-am
distclean: distclean-am
-rm -f config.status
maintainer-clean-am: maintainer-clean-aminfo maintainer-clean-generic \
distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-am
-rm -f config.status
.PHONY: install-info-am uninstall-info mostlyclean-aminfo \
distclean-aminfo clean-aminfo maintainer-clean-aminfo tags distdir \
info-am info dvi-am dvi check check-am installcheck-am installcheck \
install-exec-am install-exec install-data-am install-data install-am \
install uninstall-am uninstall all-redirect all-am all installdirs \
mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
# arch-tag: f1a44ea0-b792-4ac7-be28-9626b972c216

84
doc/lispintro/README Normal file
View file

@ -0,0 +1,84 @@
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
See the end of the file for license conditions.
This directory contains the source of the "Introduction to Programming
in Emacs Lisp" written by Robert J. Chassell, bob@gnu.org. This
manual is an elementary introduction to programming in Emacs Lisp for
people who are not programmers, and who are not necessarily interested
in programming, but who do want to customize or extend their computing
environment.
This third edition of 2006 Oct 31 updates the previous editions to GNU
Emacs 22.
The Texinfo source file `emacs-lisp-intro.texi', formats without
reported error using `pdfeTeXk', Version 3.141592-1.21a-2.2 (Web2C
7.5.4) and texinfo.tex version 2006-08-26.17 started by `texi2dvi'
version 4.8, and with `makeinfo' version 4.8.
Also, this tar file contains the following optional Encapsulated Post
Script figures.
drawers.eps 7129 bytes
cons-1.eps 12136
cons-2.eps 12523
cons-2a.eps 12420
cons-3.eps 12984
cons-4.eps 13866
cons-5.eps 12986
lambda-1.eps 10252
lambda-2.eps 10278
lambda-3.eps 10275
See the beginning of the `emacs-lisp-intro.texi' file for appropriate
settings. These figures are not necessary; they are merely nice to
look at --- without them you get the same figures printed with ASCII
characters.
Whether and how you print PostScript depends on your site. You not
only need to set 'print-postscript-figures' before creating the .dvi
file, but then must convert the .dvi file to .ps with a 'dvips' or
equivalent command.
On some systems you will see an error message when `psfig.tex' is
loaded for the last two .eps files:
! No room for a new \write .
If this happens, try `epsf.tex' instead of `psfig.tex', or try typing
RET at the error; the formatting may continue successfully.
Or else find the section that says:
@c !!! Clear print-postscript-figures if the computer formatting this
@c document is too small and cannot handle all the diagrams and figures.
@c clear print-postscript-figures
and change the file so it reads: @clear print-postscript-figures
This will prevent TeX from attempting to load the last few .eps files.
You will find additional instructions on formatting in the beginning
of the Texinfo file 'emacs-lisp-intro.texi'. Best Wishes!
2006 Oct 31
Robert J. Chassell, bob@gnu.org
This file is part of GNU Emacs.
GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.

105
doc/lispintro/aclocal.m4 vendored Normal file
View file

@ -0,0 +1,105 @@
dnl aclocal.m4 generated automatically by aclocal 1.4-p4
dnl Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003,
dnl 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE.
# Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things.
# But this isn't really a big deal.
# serial 1
dnl Usage:
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
AC_DEFUN(AM_INIT_AUTOMAKE,
[AC_REQUIRE([AC_PROG_INSTALL])
PACKAGE=[$1]
AC_SUBST(PACKAGE)
VERSION=[$2]
AC_SUBST(VERSION)
dnl test to see if srcdir already configured
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
fi
ifelse([$3],,
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM])
dnl FIXME This is truly gross.
missing_dir=`cd $ac_aux_dir && pwd`
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_REQUIRE([AC_PROG_MAKE_SET])])
#
# Check to make sure that the build environment is sane.
#
AC_DEFUN(AM_SANITY_CHECK,
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
echo timestamp > conftestfile
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
if test "[$]*" = "X"; then
# -L didn't work.
set X `ls -t $srcdir/configure conftestfile`
fi
if test "[$]*" != "X $srcdir/configure conftestfile" \
&& test "[$]*" != "X conftestfile $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
alias in your environment])
fi
test "[$]2" = conftestfile
)
then
# Ok.
:
else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
rm -f conftest*
AC_MSG_RESULT(yes)])
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
dnl The program must properly implement --version.
AC_DEFUN(AM_MISSING_PROG,
[AC_MSG_CHECKING(for working $2)
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
if ($2 --version) < /dev/null > /dev/null 2>&1; then
$1=$2
AC_MSG_RESULT(found)
else
$1="$3/missing $2"
AC_MSG_RESULT(missing)
fi
AC_SUBST($1)])

1044
doc/lispintro/configure vendored Executable file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,9 @@
dnl autoconf input file for the emacs lisp intro
AC_INIT(emacs-lisp-intro.texi)
AM_INIT_AUTOMAKE(emacs-lisp-intro, 2.00)
AC_OUTPUT(Makefile)
m4_if(dnl Do not change this comment
arch-tag: 8d676bd8-8677-4ae0-8aa0-99bfd595b373
)dnl

584
doc/lispintro/cons-1.eps Normal file
View file

@ -0,0 +1,584 @@
%!
%%BoundingBox: 35 711 289 757
%%Title: cons-cell-diagram1
%%CreationDate: Wed Mar 8 14:26:58 1995
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
%
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
%
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
% Free Software Foundation, Inc.
%
% This file is part of GNU Emacs.
%
% GNU Emacs is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 3, or (at your option)
% any later version.
%
% GNU Emacs is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with GNU Emacs; see the file COPYING. If not, write to
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
% Boston, MA 02110-1301, USA.
/tgifdict 132 dict def
tgifdict begin
%
% Using a zero value radius for an ellipse or an arc would result
% in a non-invertible CTM matrix which causes problem when this
% when this PostScript is wrapped inside other routines, such as
% the multi.ps package from
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
% error by uncommenting the sole line of the procedure below:
%
/tgif_min_radius
{
% dup 0.01 lt { pop 0.01 } if
} bind def
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
/tgifarrowtipdict 8 dict def
tgifarrowtipdict /mtrx matrix put
/tgifarrowtip
{ tgifarrowtipdict begin
/dy exch def
/dx exch def
/h exch def
/w exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
dy dx atan rotate
0 0 moveto
w neg h lineto
w neg h neg lineto
savematrix setmatrix
end
} def
/tgifarcdict 8 dict def
tgifarcdict /mtrx matrix put
/tgifarcn
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arc
savematrix setmatrix
end
} def
/tgifarc
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arcn
savematrix setmatrix
end
} def
/tgifsetuserscreendict 22 dict def
tgifsetuserscreendict begin
/tempctm matrix def
/temprot matrix def
/tempscale matrix def
/concatprocs
{ /proc2 exch cvlit def
/proc1 exch cvlit def
/newproc proc1 length proc2 length add array def
newproc 0 proc1 putinterval
newproc proc1 length proc2 putinterval
newproc cvx
} def
/resmatrix matrix def
/findresolution
{ 72 0 resmatrix defaultmatrix dtransform
/yres exch def /xres exch def
xres dup mul yres dup mul add sqrt
} def
end
/tgifsetuserscreen
{ tgifsetuserscreendict begin
/spotfunction exch def
/screenangle exch def
/cellsize exch def
/m tempctm currentmatrix def
/rm screenangle temprot rotate def
/sm cellsize dup tempscale scale def
sm rm m m concatmatrix m concatmatrix pop
1 0 m dtransform /y1 exch def /x1 exch def
/veclength x1 dup mul y1 dup mul add sqrt def
/frequency findresolution veclength div def
/newscreenangle y1 x1 atan def
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
{{neg} /spotfunction load concatprocs
/spotfunction exch def
} if
frequency newscreenangle /spotfunction load setscreen
end
} def
/tgifsetpatterndict 18 dict def
tgifsetpatterndict begin
/bitison
{ /ybit exch def /xbit exch def
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
/mask 1 7 xbit 8 mod sub bitshift def
bytevalue mask and 0 ne
} def
end
/tgifbitpatternspotfunction
{ tgifsetpatterndict begin
/y exch def /x exch def
/xindex x 1 add 2 div bpside mul cvi def
/yindex y 1 add 2 div bpside mul cvi def
xindex yindex bitison
{ /onbits onbits 1 add def 1 }
{ /offbits offbits 1 add def 0 }
ifelse
end
} def
/tgifsetpattern
{ tgifsetpatterndict begin
/cellsz exch def
/angle exch def
/bwidth exch def
/bpside exch def
/bstring exch def
/onbits 0 def /offbits 0 def
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
{} settransfer
offbits offbits onbits add div setgray
end
} def
/tgifxpmdict 4 dict def
/tgifbwpicstr 1 string def
/tgifcolorpicstr 3 string def
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
/tgifbwspot
{ tgifxpmdict begin
/index exch def
tgifbwpicstr 0
pixels index 3 mul 3 getinterval aload pop
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
cvi put
tgifbwpicstr
end
} def
/tgifcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
tgifcolorpicstr
end
} def
/tgifnewcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop setrgbcolor
end
} def
/tgifcolordict 4 dict def
/colorimage where
{ pop }
{ /colorimage
{ tgifcolordict begin
pop pop pop pop pop
/ih exch def
/iw exch def
/x 0 def
/y 0 def
1 1 ih
{ pop 1 1 iw
{ pop currentfile
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
closepath fill
/x x 1 add def
} for
/y y 1 add def
/x 0 def
} for
end
} def
} ifelse
/tgifpatdict 10 dict def
/tgifpatbyte
{ currentdict /retstr get exch
pat i cellsz mod get put
} def
/tgifpatproc
{ 0 1 widthlim {tgifpatbyte} for retstr
/i i 1 add def
} def
/tgifpatfill
{ tgifpatdict begin
/h exch def
/w exch def
/lty exch def
/ltx exch def
/cellsz exch def
/pat exch def
/widthlim w cellsz div cvi 1 sub def
/retstr widthlim 1 add string def
/i 0 def
ltx lty translate
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
ltx neg lty neg translate
end
} def
/pat1 <ffffffffffffffff> def
/pat2 <0000000000000000> def
/pat3 <8000000008000000> def
/pat4 <8800000022000000> def
/pat5 <8800220088002200> def
/pat6 <8822882288228822> def
/pat7 <aa55aa55aa55aa55> def
/pat8 <77dd77dd77dd77dd> def
/pat9 <77ffddff77ffddff> def
/pat10 <77ffffff77ffffff> def
/pat11 <7fffffff7fffffff> def
/pat12 <8040200002040800> def
/pat13 <40a00000040a0000> def
/pat14 <ff888888ff888888> def
/pat15 <ff808080ff080808> def
/pat16 <f87422478f172271> def
/pat17 <038448300c020101> def
/pat18 <081c22c180010204> def
/pat19 <8080413e080814e3> def
/pat20 <8040201008040201> def
/pat21 <8844221188442211> def
/pat22 <77bbddee77bbddee> def
/pat23 <c1e070381c0e0783> def
/pat24 <7fbfdfeff7fbfdfe> def
/pat25 <3e1f8fc7e3f1f87c> def
/pat26 <0102040810204080> def
/pat27 <1122448811224488> def
/pat28 <eeddbb77eeddbb77> def
/pat29 <83070e1c3870e0c1> def
/pat30 <fefdfbf7efdfbf7f> def
/pat31 <7cf8f1e3c78f1f3e> def
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
/tgifreencsmalldict 12 dict def
/tgifReEncodeSmall
{ tgifreencsmalldict begin
/newcodesandnames exch def
/newfontname exch def
/basefontname exch def
/basefontdict basefontname findfont def
/newfont basefontdict maxlength dict def
basefontdict
{ exch dup /FID ne
{ dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put }
ifelse
}
{ pop pop }
ifelse
}
forall
newfont /FontName newfontname put
newcodesandnames aload pop
newcodesandnames length 2 idiv
{ newfont /Encoding get 3 1 roll put}
repeat
newfontname newfont definefont pop
end
} def
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
/tgifboxdict 6 dict def
/tgifboxstroke
{ tgifboxdict begin
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
1.415 setmiterlimit
w 1 eq { w setlinewidth } if
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
w 1 eq { 1 setlinewidth } if
1 setmiterlimit
end
} def
/tgifboxfill
{ tgifboxdict begin
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
end
} def
end
%%PageBoundingBox: 35 711 289 757
tgifdict begin
/tgifsavedpage save def
1 setmiterlimit
1 setlinewidth
0 setgray
72 0 mul 72 11.00 mul translate
72 128 div 100 mul 100 div dup neg scale
gsave
% BOX
gsave
1.415 setmiterlimit
newpath
66 66 moveto 130 66 lineto 130 98 lineto 66 98 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
98 66 moveto
98 98 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
114 82 moveto
0 80 atan dup cos 8 mul 194 exch sub
exch sin 8 mul 82 exch sub lineto
stroke
grestore
gsave
newpath
194 82 8 3 80 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
146 136 moveto (rose) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
82 82 moveto
82 131 lineto
0 48 atan dup cos 8 mul 130 exch sub
exch sin 8 mul 131 exch sub lineto
stroke
grestore
gsave
newpath
130 131 8 3 48 0 tgifarrowtip
closepath fill
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
199 66 moveto 263 66 lineto 263 98 lineto 199 98 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
231 66 moveto
231 98 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
247 82 moveto
0 93 atan dup cos 8 mul 340 exch sub
exch sin 8 mul 82 exch sub lineto
stroke
grestore
gsave
newpath
340 82 8 3 93 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
279 136 moveto (violet) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
215 82 moveto
215 131 lineto
0 48 atan dup cos 8 mul 263 exch sub
exch sin 8 mul 131 exch sub lineto
stroke
grestore
gsave
newpath
263 131 8 3 48 0 tgifarrowtip
closepath fill
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
342 64 moveto 406 64 lineto 406 96 lineto 342 96 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
373 64 moveto
373 96 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
389 81 moveto
0 48 atan dup cos 8 mul 437 exch sub
exch sin 8 mul 81 exch sub lineto
stroke
grestore
gsave
newpath
437 81 8 3 48 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
421 135 moveto (buttercup) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
357 81 moveto
357 130 lineto
0 48 atan dup cos 8 mul 405 exch sub
exch sin 8 mul 130 exch sub lineto
stroke
grestore
gsave
newpath
405 130 8 3 48 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
449 87 moveto (nil) show
grestore
grestore
tgifsavedpage restore
end
%MatchingCreationDate: Wed Mar 8 14:26:58 1995

606
doc/lispintro/cons-2.eps Normal file
View file

@ -0,0 +1,606 @@
%!
%%BoundingBox: 15 712 321 775
%%Title: cons-cell-diagram2
%%CreationDate: Wed Mar 8 14:26:39 1995
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
%
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
%
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
% Free Software Foundation, Inc.
%
% This file is part of GNU Emacs.
%
% GNU Emacs is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 3, or (at your option)
% any later version.
%
% GNU Emacs is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with GNU Emacs; see the file COPYING. If not, write to
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
% Boston, MA 02110-1301, USA.
/tgifdict 132 dict def
tgifdict begin
%
% Using a zero value radius for an ellipse or an arc would result
% in a non-invertible CTM matrix which causes problem when this
% when this PostScript is wrapped inside other routines, such as
% the multi.ps package from
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
% error by uncommenting the sole line of the procedure below:
%
/tgif_min_radius
{
% dup 0.01 lt { pop 0.01 } if
} bind def
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
/tgifarrowtipdict 8 dict def
tgifarrowtipdict /mtrx matrix put
/tgifarrowtip
{ tgifarrowtipdict begin
/dy exch def
/dx exch def
/h exch def
/w exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
dy dx atan rotate
0 0 moveto
w neg h lineto
w neg h neg lineto
savematrix setmatrix
end
} def
/tgifarcdict 8 dict def
tgifarcdict /mtrx matrix put
/tgifarcn
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arc
savematrix setmatrix
end
} def
/tgifarc
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arcn
savematrix setmatrix
end
} def
/tgifsetuserscreendict 22 dict def
tgifsetuserscreendict begin
/tempctm matrix def
/temprot matrix def
/tempscale matrix def
/concatprocs
{ /proc2 exch cvlit def
/proc1 exch cvlit def
/newproc proc1 length proc2 length add array def
newproc 0 proc1 putinterval
newproc proc1 length proc2 putinterval
newproc cvx
} def
/resmatrix matrix def
/findresolution
{ 72 0 resmatrix defaultmatrix dtransform
/yres exch def /xres exch def
xres dup mul yres dup mul add sqrt
} def
end
/tgifsetuserscreen
{ tgifsetuserscreendict begin
/spotfunction exch def
/screenangle exch def
/cellsize exch def
/m tempctm currentmatrix def
/rm screenangle temprot rotate def
/sm cellsize dup tempscale scale def
sm rm m m concatmatrix m concatmatrix pop
1 0 m dtransform /y1 exch def /x1 exch def
/veclength x1 dup mul y1 dup mul add sqrt def
/frequency findresolution veclength div def
/newscreenangle y1 x1 atan def
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
{{neg} /spotfunction load concatprocs
/spotfunction exch def
} if
frequency newscreenangle /spotfunction load setscreen
end
} def
/tgifsetpatterndict 18 dict def
tgifsetpatterndict begin
/bitison
{ /ybit exch def /xbit exch def
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
/mask 1 7 xbit 8 mod sub bitshift def
bytevalue mask and 0 ne
} def
end
/tgifbitpatternspotfunction
{ tgifsetpatterndict begin
/y exch def /x exch def
/xindex x 1 add 2 div bpside mul cvi def
/yindex y 1 add 2 div bpside mul cvi def
xindex yindex bitison
{ /onbits onbits 1 add def 1 }
{ /offbits offbits 1 add def 0 }
ifelse
end
} def
/tgifsetpattern
{ tgifsetpatterndict begin
/cellsz exch def
/angle exch def
/bwidth exch def
/bpside exch def
/bstring exch def
/onbits 0 def /offbits 0 def
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
{} settransfer
offbits offbits onbits add div setgray
end
} def
/tgifxpmdict 4 dict def
/tgifbwpicstr 1 string def
/tgifcolorpicstr 3 string def
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
/tgifbwspot
{ tgifxpmdict begin
/index exch def
tgifbwpicstr 0
pixels index 3 mul 3 getinterval aload pop
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
cvi put
tgifbwpicstr
end
} def
/tgifcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
tgifcolorpicstr
end
} def
/tgifnewcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop setrgbcolor
end
} def
/tgifcolordict 4 dict def
/colorimage where
{ pop }
{ /colorimage
{ tgifcolordict begin
pop pop pop pop pop
/ih exch def
/iw exch def
/x 0 def
/y 0 def
1 1 ih
{ pop 1 1 iw
{ pop currentfile
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
closepath fill
/x x 1 add def
} for
/y y 1 add def
/x 0 def
} for
end
} def
} ifelse
/tgifpatdict 10 dict def
/tgifpatbyte
{ currentdict /retstr get exch
pat i cellsz mod get put
} def
/tgifpatproc
{ 0 1 widthlim {tgifpatbyte} for retstr
/i i 1 add def
} def
/tgifpatfill
{ tgifpatdict begin
/h exch def
/w exch def
/lty exch def
/ltx exch def
/cellsz exch def
/pat exch def
/widthlim w cellsz div cvi 1 sub def
/retstr widthlim 1 add string def
/i 0 def
ltx lty translate
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
ltx neg lty neg translate
end
} def
/pat1 <ffffffffffffffff> def
/pat2 <0000000000000000> def
/pat3 <8000000008000000> def
/pat4 <8800000022000000> def
/pat5 <8800220088002200> def
/pat6 <8822882288228822> def
/pat7 <aa55aa55aa55aa55> def
/pat8 <77dd77dd77dd77dd> def
/pat9 <77ffddff77ffddff> def
/pat10 <77ffffff77ffffff> def
/pat11 <7fffffff7fffffff> def
/pat12 <8040200002040800> def
/pat13 <40a00000040a0000> def
/pat14 <ff888888ff888888> def
/pat15 <ff808080ff080808> def
/pat16 <f87422478f172271> def
/pat17 <038448300c020101> def
/pat18 <081c22c180010204> def
/pat19 <8080413e080814e3> def
/pat20 <8040201008040201> def
/pat21 <8844221188442211> def
/pat22 <77bbddee77bbddee> def
/pat23 <c1e070381c0e0783> def
/pat24 <7fbfdfeff7fbfdfe> def
/pat25 <3e1f8fc7e3f1f87c> def
/pat26 <0102040810204080> def
/pat27 <1122448811224488> def
/pat28 <eeddbb77eeddbb77> def
/pat29 <83070e1c3870e0c1> def
/pat30 <fefdfbf7efdfbf7f> def
/pat31 <7cf8f1e3c78f1f3e> def
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
/tgifreencsmalldict 12 dict def
/tgifReEncodeSmall
{ tgifreencsmalldict begin
/newcodesandnames exch def
/newfontname exch def
/basefontname exch def
/basefontdict basefontname findfont def
/newfont basefontdict maxlength dict def
basefontdict
{ exch dup /FID ne
{ dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put }
ifelse
}
{ pop pop }
ifelse
}
forall
newfont /FontName newfontname put
newcodesandnames aload pop
newcodesandnames length 2 idiv
{ newfont /Encoding get 3 1 roll put}
repeat
newfontname newfont definefont pop
end
} def
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
/tgifboxdict 6 dict def
/tgifboxstroke
{ tgifboxdict begin
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
1.415 setmiterlimit
w 1 eq { w setlinewidth } if
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
w 1 eq { 1 setlinewidth } if
1 setmiterlimit
end
} def
/tgifboxfill
{ tgifboxdict begin
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
end
} def
end
%%PageBoundingBox: 15 712 321 775
tgifdict begin
/tgifsavedpage save def
1 setmiterlimit
1 setlinewidth
0 setgray
72 0 mul 72 11.00 mul translate
72 128 div 100 mul 100 div dup neg scale
gsave
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
32 47 moveto (bouquet) show
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
122 65 moveto 186 65 lineto 186 97 lineto 122 97 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
154 65 moveto
154 97 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
170 81 moveto
0 80 atan dup cos 8 mul 250 exch sub
exch sin 8 mul 81 exch sub lineto
stroke
grestore
gsave
newpath
250 81 8 3 80 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
202 135 moveto (rose) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
138 81 moveto
138 130 lineto
0 48 atan dup cos 8 mul 186 exch sub
exch sin 8 mul 130 exch sub lineto
stroke
grestore
gsave
newpath
186 130 8 3 48 0 tgifarrowtip
closepath fill
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
255 65 moveto 319 65 lineto 319 97 lineto 255 97 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
287 65 moveto
287 97 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
303 81 moveto
0 93 atan dup cos 8 mul 396 exch sub
exch sin 8 mul 81 exch sub lineto
stroke
grestore
gsave
newpath
396 81 8 3 93 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
335 135 moveto (violet) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
271 81 moveto
271 130 lineto
0 48 atan dup cos 8 mul 319 exch sub
exch sin 8 mul 130 exch sub lineto
stroke
grestore
gsave
newpath
319 130 8 3 48 0 tgifarrowtip
closepath fill
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
398 63 moveto 462 63 lineto 462 95 lineto 398 95 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
429 63 moveto
429 95 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
445 80 moveto
0 48 atan dup cos 8 mul 493 exch sub
exch sin 8 mul 80 exch sub lineto
stroke
grestore
gsave
newpath
493 80 8 3 48 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
477 134 moveto (buttercup) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
413 80 moveto
413 129 lineto
0 48 atan dup cos 8 mul 461 exch sub
exch sin 8 mul 129 exch sub lineto
stroke
grestore
gsave
newpath
461 129 8 3 48 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
505 86 moveto (nil) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
66 53 moveto
66 81 lineto
0 46 atan dup cos 8 mul 112 exch sub
exch sin 8 mul 81 exch sub lineto
stroke
grestore
gsave
newpath
112 81 8 3 46 0 tgifarrowtip
closepath fill
grestore
grestore
tgifsavedpage restore
end
%MatchingCreationDate: Wed Mar 8 14:26:39 1995

600
doc/lispintro/cons-2a.eps Normal file
View file

@ -0,0 +1,600 @@
%!
%%BoundingBox: 15 702 300 767
%%Title: cons-cell-diagram2a
%%CreationDate: Tue Mar 14 15:09:30 1995
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
%
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
%
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
% Free Software Foundation, Inc.
%
% This file is part of GNU Emacs.
%
% GNU Emacs is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 3, or (at your option)
% any later version.
%
% GNU Emacs is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with GNU Emacs; see the file COPYING. If not, write to
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
% Boston, MA 02110-1301, USA.
/tgifdict 132 dict def
tgifdict begin
%
% Using a zero value radius for an ellipse or an arc would result
% in a non-invertible CTM matrix which causes problem when this
% when this PostScript is wrapped inside other routines, such as
% the multi.ps package from
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
% error by uncommenting the sole line of the procedure below:
%
/tgif_min_radius
{
% dup 0.01 lt { pop 0.01 } if
} bind def
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
/tgifarrowtipdict 8 dict def
tgifarrowtipdict /mtrx matrix put
/tgifarrowtip
{ tgifarrowtipdict begin
/dy exch def
/dx exch def
/h exch def
/w exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
dy dx atan rotate
0 0 moveto
w neg h lineto
w neg h neg lineto
savematrix setmatrix
end
} def
/tgifarcdict 8 dict def
tgifarcdict /mtrx matrix put
/tgifarcn
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arc
savematrix setmatrix
end
} def
/tgifarc
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arcn
savematrix setmatrix
end
} def
/tgifsetuserscreendict 22 dict def
tgifsetuserscreendict begin
/tempctm matrix def
/temprot matrix def
/tempscale matrix def
/concatprocs
{ /proc2 exch cvlit def
/proc1 exch cvlit def
/newproc proc1 length proc2 length add array def
newproc 0 proc1 putinterval
newproc proc1 length proc2 putinterval
newproc cvx
} def
/resmatrix matrix def
/findresolution
{ 72 0 resmatrix defaultmatrix dtransform
/yres exch def /xres exch def
xres dup mul yres dup mul add sqrt
} def
end
/tgifsetuserscreen
{ tgifsetuserscreendict begin
/spotfunction exch def
/screenangle exch def
/cellsize exch def
/m tempctm currentmatrix def
/rm screenangle temprot rotate def
/sm cellsize dup tempscale scale def
sm rm m m concatmatrix m concatmatrix pop
1 0 m dtransform /y1 exch def /x1 exch def
/veclength x1 dup mul y1 dup mul add sqrt def
/frequency findresolution veclength div def
/newscreenangle y1 x1 atan def
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
{{neg} /spotfunction load concatprocs
/spotfunction exch def
} if
frequency newscreenangle /spotfunction load setscreen
end
} def
/tgifsetpatterndict 18 dict def
tgifsetpatterndict begin
/bitison
{ /ybit exch def /xbit exch def
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
/mask 1 7 xbit 8 mod sub bitshift def
bytevalue mask and 0 ne
} def
end
/tgifbitpatternspotfunction
{ tgifsetpatterndict begin
/y exch def /x exch def
/xindex x 1 add 2 div bpside mul cvi def
/yindex y 1 add 2 div bpside mul cvi def
xindex yindex bitison
{ /onbits onbits 1 add def 1 }
{ /offbits offbits 1 add def 0 }
ifelse
end
} def
/tgifsetpattern
{ tgifsetpatterndict begin
/cellsz exch def
/angle exch def
/bwidth exch def
/bpside exch def
/bstring exch def
/onbits 0 def /offbits 0 def
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
{} settransfer
offbits offbits onbits add div setgray
end
} def
/tgifxpmdict 4 dict def
/tgifbwpicstr 1 string def
/tgifcolorpicstr 3 string def
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
/tgifbwspot
{ tgifxpmdict begin
/index exch def
tgifbwpicstr 0
pixels index 3 mul 3 getinterval aload pop
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
cvi put
tgifbwpicstr
end
} def
/tgifcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
tgifcolorpicstr
end
} def
/tgifnewcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop setrgbcolor
end
} def
/tgifcolordict 4 dict def
/colorimage where
{ pop }
{ /colorimage
{ tgifcolordict begin
pop pop pop pop pop
/ih exch def
/iw exch def
/x 0 def
/y 0 def
1 1 ih
{ pop 1 1 iw
{ pop currentfile
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
closepath fill
/x x 1 add def
} for
/y y 1 add def
/x 0 def
} for
end
} def
} ifelse
/tgifpatdict 10 dict def
/tgifpatbyte
{ currentdict /retstr get exch
pat i cellsz mod get put
} def
/tgifpatproc
{ 0 1 widthlim {tgifpatbyte} for retstr
/i i 1 add def
} def
/tgifpatfill
{ tgifpatdict begin
/h exch def
/w exch def
/lty exch def
/ltx exch def
/cellsz exch def
/pat exch def
/widthlim w cellsz div cvi 1 sub def
/retstr widthlim 1 add string def
/i 0 def
ltx lty translate
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
ltx neg lty neg translate
end
} def
/pat1 <ffffffffffffffff> def
/pat2 <0000000000000000> def
/pat3 <8000000008000000> def
/pat4 <8800000022000000> def
/pat5 <8800220088002200> def
/pat6 <8822882288228822> def
/pat7 <aa55aa55aa55aa55> def
/pat8 <77dd77dd77dd77dd> def
/pat9 <77ffddff77ffddff> def
/pat10 <77ffffff77ffffff> def
/pat11 <7fffffff7fffffff> def
/pat12 <8040200002040800> def
/pat13 <40a00000040a0000> def
/pat14 <ff888888ff888888> def
/pat15 <ff808080ff080808> def
/pat16 <f87422478f172271> def
/pat17 <038448300c020101> def
/pat18 <081c22c180010204> def
/pat19 <8080413e080814e3> def
/pat20 <8040201008040201> def
/pat21 <8844221188442211> def
/pat22 <77bbddee77bbddee> def
/pat23 <c1e070381c0e0783> def
/pat24 <7fbfdfeff7fbfdfe> def
/pat25 <3e1f8fc7e3f1f87c> def
/pat26 <0102040810204080> def
/pat27 <1122448811224488> def
/pat28 <eeddbb77eeddbb77> def
/pat29 <83070e1c3870e0c1> def
/pat30 <fefdfbf7efdfbf7f> def
/pat31 <7cf8f1e3c78f1f3e> def
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
/tgifreencsmalldict 12 dict def
/tgifReEncodeSmall
{ tgifreencsmalldict begin
/newcodesandnames exch def
/newfontname exch def
/basefontname exch def
/basefontdict basefontname findfont def
/newfont basefontdict maxlength dict def
basefontdict
{ exch dup /FID ne
{ dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put }
ifelse
}
{ pop pop }
ifelse
}
forall
newfont /FontName newfontname put
newcodesandnames aload pop
newcodesandnames length 2 idiv
{ newfont /Encoding get 3 1 roll put}
repeat
newfontname newfont definefont pop
end
} def
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
/tgifboxdict 6 dict def
/tgifboxstroke
{ tgifboxdict begin
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
1.415 setmiterlimit
w 1 eq { w setlinewidth } if
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
w 1 eq { 1 setlinewidth } if
1 setmiterlimit
end
} def
/tgifboxfill
{ tgifboxdict begin
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
end
} def
end
%%PageBoundingBox: 15 702 300 767
tgifdict begin
/tgifsavedpage save def
1 setmiterlimit
1 setlinewidth
0 setgray
72 0 mul 72 11.00 mul translate
72 128 div 100 mul 100 div dup neg scale
gsave
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
32 62 moveto (bouquet) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
64 80 moveto
64 120 lineto
0 49 atan dup cos 8 mul 113 exch sub
exch sin 8 mul 120 exch sub lineto
stroke
grestore
gsave
newpath
113 120 8 3 49 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
128 110 moveto (car) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
128 142 moveto (rose) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
192 110 moveto (cdr) show
grestore
% OVAL
gsave
newpath 207 124 4 4 tgifellipse stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
217 123 moveto
0 38 atan dup cos 8 mul 255 exch sub
exch sin 8 mul 123 exch sub lineto
stroke
grestore
gsave
newpath
255 123 8 3 38 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
268 111 moveto (car) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
264 143 moveto (violet) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
332 111 moveto (cdr) show
grestore
% OVAL
gsave
newpath 347 125 4 4 tgifellipse stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
357 124 moveto
0 38 atan dup cos 8 mul 395 exch sub
exch sin 8 mul 124 exch sub lineto
stroke
grestore
gsave
newpath
395 124 8 3 38 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
408 112 moveto (car) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
408 136 moveto (butter-) show
408 153 moveto (cup) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
496 113 moveto (cdr) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
495 137 moveto (nil) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
178 86 moveto
178 157 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
485 84 moveto
485 157 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
327 85 moveto
327 157 lineto
stroke
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
120 86 moveto 234 86 lineto 234 157 lineto 120 157 lineto
closepath stroke
1 setmiterlimit
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
257 85 moveto 371 85 lineto 371 157 lineto 257 157 lineto
closepath stroke
1 setmiterlimit
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
397 84 moveto 531 84 lineto 531 157 lineto 397 157 lineto
closepath stroke
1 setmiterlimit
grestore
grestore
tgifsavedpage restore
end
%MatchingCreationDate: Tue Mar 14 15:09:30 1995

630
doc/lispintro/cons-3.eps Normal file
View file

@ -0,0 +1,630 @@
%!
%%BoundingBox: -1 691 324 757
%%Title: cons-cell-diagram3
%%CreationDate: Wed Mar 8 14:25:41 1995
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
%
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
%
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
% Free Software Foundation, Inc.
%
% This file is part of GNU Emacs.
%
% GNU Emacs is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 3, or (at your option)
% any later version.
%
% GNU Emacs is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with GNU Emacs; see the file COPYING. If not, write to
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
% Boston, MA 02110-1301, USA.
/tgifdict 132 dict def
tgifdict begin
%
% Using a zero value radius for an ellipse or an arc would result
% in a non-invertible CTM matrix which causes problem when this
% when this PostScript is wrapped inside other routines, such as
% the multi.ps package from
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
% error by uncommenting the sole line of the procedure below:
%
/tgif_min_radius
{
% dup 0.01 lt { pop 0.01 } if
} bind def
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
/tgifarrowtipdict 8 dict def
tgifarrowtipdict /mtrx matrix put
/tgifarrowtip
{ tgifarrowtipdict begin
/dy exch def
/dx exch def
/h exch def
/w exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
dy dx atan rotate
0 0 moveto
w neg h lineto
w neg h neg lineto
savematrix setmatrix
end
} def
/tgifarcdict 8 dict def
tgifarcdict /mtrx matrix put
/tgifarcn
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arc
savematrix setmatrix
end
} def
/tgifarc
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arcn
savematrix setmatrix
end
} def
/tgifsetuserscreendict 22 dict def
tgifsetuserscreendict begin
/tempctm matrix def
/temprot matrix def
/tempscale matrix def
/concatprocs
{ /proc2 exch cvlit def
/proc1 exch cvlit def
/newproc proc1 length proc2 length add array def
newproc 0 proc1 putinterval
newproc proc1 length proc2 putinterval
newproc cvx
} def
/resmatrix matrix def
/findresolution
{ 72 0 resmatrix defaultmatrix dtransform
/yres exch def /xres exch def
xres dup mul yres dup mul add sqrt
} def
end
/tgifsetuserscreen
{ tgifsetuserscreendict begin
/spotfunction exch def
/screenangle exch def
/cellsize exch def
/m tempctm currentmatrix def
/rm screenangle temprot rotate def
/sm cellsize dup tempscale scale def
sm rm m m concatmatrix m concatmatrix pop
1 0 m dtransform /y1 exch def /x1 exch def
/veclength x1 dup mul y1 dup mul add sqrt def
/frequency findresolution veclength div def
/newscreenangle y1 x1 atan def
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
{{neg} /spotfunction load concatprocs
/spotfunction exch def
} if
frequency newscreenangle /spotfunction load setscreen
end
} def
/tgifsetpatterndict 18 dict def
tgifsetpatterndict begin
/bitison
{ /ybit exch def /xbit exch def
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
/mask 1 7 xbit 8 mod sub bitshift def
bytevalue mask and 0 ne
} def
end
/tgifbitpatternspotfunction
{ tgifsetpatterndict begin
/y exch def /x exch def
/xindex x 1 add 2 div bpside mul cvi def
/yindex y 1 add 2 div bpside mul cvi def
xindex yindex bitison
{ /onbits onbits 1 add def 1 }
{ /offbits offbits 1 add def 0 }
ifelse
end
} def
/tgifsetpattern
{ tgifsetpatterndict begin
/cellsz exch def
/angle exch def
/bwidth exch def
/bpside exch def
/bstring exch def
/onbits 0 def /offbits 0 def
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
{} settransfer
offbits offbits onbits add div setgray
end
} def
/tgifxpmdict 4 dict def
/tgifbwpicstr 1 string def
/tgifcolorpicstr 3 string def
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
/tgifbwspot
{ tgifxpmdict begin
/index exch def
tgifbwpicstr 0
pixels index 3 mul 3 getinterval aload pop
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
cvi put
tgifbwpicstr
end
} def
/tgifcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
tgifcolorpicstr
end
} def
/tgifnewcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop setrgbcolor
end
} def
/tgifcolordict 4 dict def
/colorimage where
{ pop }
{ /colorimage
{ tgifcolordict begin
pop pop pop pop pop
/ih exch def
/iw exch def
/x 0 def
/y 0 def
1 1 ih
{ pop 1 1 iw
{ pop currentfile
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
closepath fill
/x x 1 add def
} for
/y y 1 add def
/x 0 def
} for
end
} def
} ifelse
/tgifpatdict 10 dict def
/tgifpatbyte
{ currentdict /retstr get exch
pat i cellsz mod get put
} def
/tgifpatproc
{ 0 1 widthlim {tgifpatbyte} for retstr
/i i 1 add def
} def
/tgifpatfill
{ tgifpatdict begin
/h exch def
/w exch def
/lty exch def
/ltx exch def
/cellsz exch def
/pat exch def
/widthlim w cellsz div cvi 1 sub def
/retstr widthlim 1 add string def
/i 0 def
ltx lty translate
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
ltx neg lty neg translate
end
} def
/pat1 <ffffffffffffffff> def
/pat2 <0000000000000000> def
/pat3 <8000000008000000> def
/pat4 <8800000022000000> def
/pat5 <8800220088002200> def
/pat6 <8822882288228822> def
/pat7 <aa55aa55aa55aa55> def
/pat8 <77dd77dd77dd77dd> def
/pat9 <77ffddff77ffddff> def
/pat10 <77ffffff77ffffff> def
/pat11 <7fffffff7fffffff> def
/pat12 <8040200002040800> def
/pat13 <40a00000040a0000> def
/pat14 <ff888888ff888888> def
/pat15 <ff808080ff080808> def
/pat16 <f87422478f172271> def
/pat17 <038448300c020101> def
/pat18 <081c22c180010204> def
/pat19 <8080413e080814e3> def
/pat20 <8040201008040201> def
/pat21 <8844221188442211> def
/pat22 <77bbddee77bbddee> def
/pat23 <c1e070381c0e0783> def
/pat24 <7fbfdfeff7fbfdfe> def
/pat25 <3e1f8fc7e3f1f87c> def
/pat26 <0102040810204080> def
/pat27 <1122448811224488> def
/pat28 <eeddbb77eeddbb77> def
/pat29 <83070e1c3870e0c1> def
/pat30 <fefdfbf7efdfbf7f> def
/pat31 <7cf8f1e3c78f1f3e> def
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
/tgifreencsmalldict 12 dict def
/tgifReEncodeSmall
{ tgifreencsmalldict begin
/newcodesandnames exch def
/newfontname exch def
/basefontname exch def
/basefontdict basefontname findfont def
/newfont basefontdict maxlength dict def
basefontdict
{ exch dup /FID ne
{ dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put }
ifelse
}
{ pop pop }
ifelse
}
forall
newfont /FontName newfontname put
newcodesandnames aload pop
newcodesandnames length 2 idiv
{ newfont /Encoding get 3 1 roll put}
repeat
newfontname newfont definefont pop
end
} def
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
/tgifboxdict 6 dict def
/tgifboxstroke
{ tgifboxdict begin
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
1.415 setmiterlimit
w 1 eq { w setlinewidth } if
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
w 1 eq { 1 setlinewidth } if
1 setmiterlimit
end
} def
/tgifboxfill
{ tgifboxdict begin
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
end
} def
end
%%PageBoundingBox: -1 691 324 757
tgifdict begin
/tgifsavedpage save def
1 setmiterlimit
1 setlinewidth
0 setgray
72 0 mul 72 11.00 mul translate
72 128 div 100 mul 100 div dup neg scale
gsave
% BOX
gsave
1.415 setmiterlimit
newpath
128 102 moveto 192 102 lineto 192 134 lineto 128 134 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
160 102 moveto
160 134 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
176 124 moveto
0 80 atan dup cos 8 mul 256 exch sub
exch sin 8 mul 124 exch sub lineto
stroke
grestore
gsave
newpath
256 124 8 3 80 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
208 172 moveto (rose) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
144 118 moveto
144 167 lineto
0 48 atan dup cos 8 mul 192 exch sub
exch sin 8 mul 167 exch sub lineto
stroke
grestore
gsave
newpath
192 167 8 3 48 0 tgifarrowtip
closepath fill
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
261 102 moveto 325 102 lineto 325 134 lineto 261 134 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
293 102 moveto
293 134 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
309 118 moveto
0 93 atan dup cos 8 mul 402 exch sub
exch sin 8 mul 118 exch sub lineto
stroke
grestore
gsave
newpath
402 118 8 3 93 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
341 172 moveto (violet) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
277 118 moveto
277 167 lineto
0 48 atan dup cos 8 mul 325 exch sub
exch sin 8 mul 167 exch sub lineto
stroke
grestore
gsave
newpath
325 167 8 3 48 0 tgifarrowtip
closepath fill
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
404 100 moveto 468 100 lineto 468 132 lineto 404 132 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
435 100 moveto
435 132 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
451 117 moveto
0 48 atan dup cos 8 mul 499 exch sub
exch sin 8 mul 117 exch sub lineto
stroke
grestore
gsave
newpath
499 117 8 3 48 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
483 171 moveto (buttercup) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
419 117 moveto
419 166 lineto
0 48 atan dup cos 8 mul 467 exch sub
exch sin 8 mul 166 exch sub lineto
stroke
grestore
gsave
newpath
467 166 8 3 48 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
511 123 moveto (nil) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
131 80 moveto (flowers) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
210 75 moveto
237 75 lineto
237 113 lineto
0 18 atan dup cos 8 mul 255 exch sub
exch sin 8 mul 113 exch sub lineto
stroke
grestore
gsave
newpath
255 113 8 3 18 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
2 80 moveto (bouquet) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
81 77 moveto
108 77 lineto
108 115 lineto
0 18 atan dup cos 8 mul 126 exch sub
exch sin 8 mul 115 exch sub lineto
stroke
grestore
gsave
newpath
126 115 8 3 18 0 tgifarrowtip
closepath fill
grestore
grestore
tgifsavedpage restore
end
%MatchingCreationDate: Wed Mar 8 14:25:41 1995

683
doc/lispintro/cons-4.eps Normal file
View file

@ -0,0 +1,683 @@
%!
%%BoundingBox: 6 681 355 758
%%Title: cons-cell-diagram4
%%CreationDate: Wed Mar 8 14:25:06 1995
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
%
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
%
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
% Free Software Foundation, Inc.
%
% This file is part of GNU Emacs.
%
% GNU Emacs is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 3, or (at your option)
% any later version.
%
% GNU Emacs is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with GNU Emacs; see the file COPYING. If not, write to
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
% Boston, MA 02110-1301, USA.
/tgifdict 132 dict def
tgifdict begin
%
% Using a zero value radius for an ellipse or an arc would result
% in a non-invertible CTM matrix which causes problem when this
% when this PostScript is wrapped inside other routines, such as
% the multi.ps package from
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
% error by uncommenting the sole line of the procedure below:
%
/tgif_min_radius
{
% dup 0.01 lt { pop 0.01 } if
} bind def
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
/tgifarrowtipdict 8 dict def
tgifarrowtipdict /mtrx matrix put
/tgifarrowtip
{ tgifarrowtipdict begin
/dy exch def
/dx exch def
/h exch def
/w exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
dy dx atan rotate
0 0 moveto
w neg h lineto
w neg h neg lineto
savematrix setmatrix
end
} def
/tgifarcdict 8 dict def
tgifarcdict /mtrx matrix put
/tgifarcn
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arc
savematrix setmatrix
end
} def
/tgifarc
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arcn
savematrix setmatrix
end
} def
/tgifsetuserscreendict 22 dict def
tgifsetuserscreendict begin
/tempctm matrix def
/temprot matrix def
/tempscale matrix def
/concatprocs
{ /proc2 exch cvlit def
/proc1 exch cvlit def
/newproc proc1 length proc2 length add array def
newproc 0 proc1 putinterval
newproc proc1 length proc2 putinterval
newproc cvx
} def
/resmatrix matrix def
/findresolution
{ 72 0 resmatrix defaultmatrix dtransform
/yres exch def /xres exch def
xres dup mul yres dup mul add sqrt
} def
end
/tgifsetuserscreen
{ tgifsetuserscreendict begin
/spotfunction exch def
/screenangle exch def
/cellsize exch def
/m tempctm currentmatrix def
/rm screenangle temprot rotate def
/sm cellsize dup tempscale scale def
sm rm m m concatmatrix m concatmatrix pop
1 0 m dtransform /y1 exch def /x1 exch def
/veclength x1 dup mul y1 dup mul add sqrt def
/frequency findresolution veclength div def
/newscreenangle y1 x1 atan def
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
{{neg} /spotfunction load concatprocs
/spotfunction exch def
} if
frequency newscreenangle /spotfunction load setscreen
end
} def
/tgifsetpatterndict 18 dict def
tgifsetpatterndict begin
/bitison
{ /ybit exch def /xbit exch def
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
/mask 1 7 xbit 8 mod sub bitshift def
bytevalue mask and 0 ne
} def
end
/tgifbitpatternspotfunction
{ tgifsetpatterndict begin
/y exch def /x exch def
/xindex x 1 add 2 div bpside mul cvi def
/yindex y 1 add 2 div bpside mul cvi def
xindex yindex bitison
{ /onbits onbits 1 add def 1 }
{ /offbits offbits 1 add def 0 }
ifelse
end
} def
/tgifsetpattern
{ tgifsetpatterndict begin
/cellsz exch def
/angle exch def
/bwidth exch def
/bpside exch def
/bstring exch def
/onbits 0 def /offbits 0 def
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
{} settransfer
offbits offbits onbits add div setgray
end
} def
/tgifxpmdict 4 dict def
/tgifbwpicstr 1 string def
/tgifcolorpicstr 3 string def
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
/tgifbwspot
{ tgifxpmdict begin
/index exch def
tgifbwpicstr 0
pixels index 3 mul 3 getinterval aload pop
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
cvi put
tgifbwpicstr
end
} def
/tgifcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
tgifcolorpicstr
end
} def
/tgifnewcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop setrgbcolor
end
} def
/tgifcolordict 4 dict def
/colorimage where
{ pop }
{ /colorimage
{ tgifcolordict begin
pop pop pop pop pop
/ih exch def
/iw exch def
/x 0 def
/y 0 def
1 1 ih
{ pop 1 1 iw
{ pop currentfile
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
closepath fill
/x x 1 add def
} for
/y y 1 add def
/x 0 def
} for
end
} def
} ifelse
/tgifpatdict 10 dict def
/tgifpatbyte
{ currentdict /retstr get exch
pat i cellsz mod get put
} def
/tgifpatproc
{ 0 1 widthlim {tgifpatbyte} for retstr
/i i 1 add def
} def
/tgifpatfill
{ tgifpatdict begin
/h exch def
/w exch def
/lty exch def
/ltx exch def
/cellsz exch def
/pat exch def
/widthlim w cellsz div cvi 1 sub def
/retstr widthlim 1 add string def
/i 0 def
ltx lty translate
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
ltx neg lty neg translate
end
} def
/pat1 <ffffffffffffffff> def
/pat2 <0000000000000000> def
/pat3 <8000000008000000> def
/pat4 <8800000022000000> def
/pat5 <8800220088002200> def
/pat6 <8822882288228822> def
/pat7 <aa55aa55aa55aa55> def
/pat8 <77dd77dd77dd77dd> def
/pat9 <77ffddff77ffddff> def
/pat10 <77ffffff77ffffff> def
/pat11 <7fffffff7fffffff> def
/pat12 <8040200002040800> def
/pat13 <40a00000040a0000> def
/pat14 <ff888888ff888888> def
/pat15 <ff808080ff080808> def
/pat16 <f87422478f172271> def
/pat17 <038448300c020101> def
/pat18 <081c22c180010204> def
/pat19 <8080413e080814e3> def
/pat20 <8040201008040201> def
/pat21 <8844221188442211> def
/pat22 <77bbddee77bbddee> def
/pat23 <c1e070381c0e0783> def
/pat24 <7fbfdfeff7fbfdfe> def
/pat25 <3e1f8fc7e3f1f87c> def
/pat26 <0102040810204080> def
/pat27 <1122448811224488> def
/pat28 <eeddbb77eeddbb77> def
/pat29 <83070e1c3870e0c1> def
/pat30 <fefdfbf7efdfbf7f> def
/pat31 <7cf8f1e3c78f1f3e> def
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
/tgifreencsmalldict 12 dict def
/tgifReEncodeSmall
{ tgifreencsmalldict begin
/newcodesandnames exch def
/newfontname exch def
/basefontname exch def
/basefontdict basefontname findfont def
/newfont basefontdict maxlength dict def
basefontdict
{ exch dup /FID ne
{ dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put }
ifelse
}
{ pop pop }
ifelse
}
forall
newfont /FontName newfontname put
newcodesandnames aload pop
newcodesandnames length 2 idiv
{ newfont /Encoding get 3 1 roll put}
repeat
newfontname newfont definefont pop
end
} def
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
/tgifboxdict 6 dict def
/tgifboxstroke
{ tgifboxdict begin
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
1.415 setmiterlimit
w 1 eq { w setlinewidth } if
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
w 1 eq { 1 setlinewidth } if
1 setmiterlimit
end
} def
/tgifboxfill
{ tgifboxdict begin
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
end
} def
end
%%PageBoundingBox: 6 681 355 758
tgifdict begin
/tgifsavedpage save def
1 setmiterlimit
1 setlinewidth
0 setgray
72 0 mul 72 11.00 mul translate
72 128 div 100 mul 100 div dup neg scale
gsave
% POLY/OPEN-SPLINE
gsave
newpath
274 102 moveto
274 134 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
289 122 moveto
0 56 atan dup cos 8 mul 345 exch sub
exch sin 8 mul 122 exch sub lineto
stroke
grestore
gsave
newpath
345 122 8 3 56 0 tgifarrowtip
closepath fill
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
350 100 moveto 414 100 lineto 414 132 lineto 350 132 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
382 100 moveto
382 132 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
397 114 moveto
0 59 atan dup cos 8 mul 456 exch sub
exch sin 8 mul 114 exch sub lineto
stroke
grestore
gsave
newpath
456 114 8 3 59 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
430 170 moveto (violet) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
366 116 moveto
366 165 lineto
0 48 atan dup cos 8 mul 414 exch sub
exch sin 8 mul 165 exch sub lineto
stroke
grestore
gsave
newpath
414 165 8 3 48 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
219 78 moveto (flowers) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
298 73 moveto
325 73 lineto
325 111 lineto
0 18 atan dup cos 8 mul 343 exch sub
exch sin 8 mul 111 exch sub lineto
stroke
grestore
gsave
newpath
343 111 8 3 18 0 tgifarrowtip
closepath fill
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
459 95 moveto 523 95 lineto 523 127 lineto 459 127 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
490 95 moveto
490 127 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
506 112 moveto
0 48 atan dup cos 8 mul 554 exch sub
exch sin 8 mul 112 exch sub lineto
stroke
grestore
gsave
newpath
554 112 8 3 48 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
566 118 moveto (nil) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
538 151 moveto (buttercup) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
474 109 moveto
474 146 lineto
0 48 atan dup cos 8 mul 522 exch sub
exch sin 8 mul 146 exch sub lineto
stroke
grestore
gsave
newpath
522 146 8 3 48 0 tgifarrowtip
closepath fill
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
244 102 moveto 308 102 lineto 308 134 lineto 244 134 lineto
closepath stroke
1 setmiterlimit
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
324 189 moveto (rose) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
260 117 moveto
260 184 lineto
0 48 atan dup cos 8 mul 308 exch sub
exch sin 8 mul 184 exch sub lineto
stroke
grestore
gsave
newpath
308 184 8 3 48 0 tgifarrowtip
closepath fill
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
146 101 moveto 210 101 lineto 210 133 lineto 146 133 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
177 101 moveto
177 133 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
193 118 moveto
0 48 atan dup cos 8 mul 241 exch sub
exch sin 8 mul 118 exch sub lineto
stroke
grestore
gsave
newpath
241 118 8 3 48 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
187 178 moveto (lily) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
163 118 moveto
163 171 lineto
0 18 atan dup cos 8 mul 181 exch sub
exch sin 8 mul 171 exch sub lineto
stroke
grestore
gsave
newpath
181 171 8 3 18 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
16 78 moveto (bouquet) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
95 73 moveto
122 73 lineto
122 111 lineto
0 18 atan dup cos 8 mul 140 exch sub
exch sin 8 mul 111 exch sub lineto
stroke
grestore
gsave
newpath
140 111 8 3 18 0 tgifarrowtip
closepath fill
grestore
grestore
tgifsavedpage restore
end
%MatchingCreationDate: Wed Mar 8 14:25:06 1995

628
doc/lispintro/cons-5.eps Normal file
View file

@ -0,0 +1,628 @@
%!
%%BoundingBox: 15 680 305 764
%%Title: cons-cell-diagram5
%%CreationDate: Wed Mar 8 14:27:28 1995
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
%
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
%
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
% Free Software Foundation, Inc.
%
% This file is part of GNU Emacs.
%
% GNU Emacs is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 3, or (at your option)
% any later version.
%
% GNU Emacs is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with GNU Emacs; see the file COPYING. If not, write to
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
% Boston, MA 02110-1301, USA.
/tgifdict 132 dict def
tgifdict begin
%
% Using a zero value radius for an ellipse or an arc would result
% in a non-invertible CTM matrix which causes problem when this
% when this PostScript is wrapped inside other routines, such as
% the multi.ps package from
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
% error by uncommenting the sole line of the procedure below:
%
/tgif_min_radius
{
% dup 0.01 lt { pop 0.01 } if
} bind def
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
/tgifarrowtipdict 8 dict def
tgifarrowtipdict /mtrx matrix put
/tgifarrowtip
{ tgifarrowtipdict begin
/dy exch def
/dx exch def
/h exch def
/w exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
dy dx atan rotate
0 0 moveto
w neg h lineto
w neg h neg lineto
savematrix setmatrix
end
} def
/tgifarcdict 8 dict def
tgifarcdict /mtrx matrix put
/tgifarcn
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arc
savematrix setmatrix
end
} def
/tgifarc
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arcn
savematrix setmatrix
end
} def
/tgifsetuserscreendict 22 dict def
tgifsetuserscreendict begin
/tempctm matrix def
/temprot matrix def
/tempscale matrix def
/concatprocs
{ /proc2 exch cvlit def
/proc1 exch cvlit def
/newproc proc1 length proc2 length add array def
newproc 0 proc1 putinterval
newproc proc1 length proc2 putinterval
newproc cvx
} def
/resmatrix matrix def
/findresolution
{ 72 0 resmatrix defaultmatrix dtransform
/yres exch def /xres exch def
xres dup mul yres dup mul add sqrt
} def
end
/tgifsetuserscreen
{ tgifsetuserscreendict begin
/spotfunction exch def
/screenangle exch def
/cellsize exch def
/m tempctm currentmatrix def
/rm screenangle temprot rotate def
/sm cellsize dup tempscale scale def
sm rm m m concatmatrix m concatmatrix pop
1 0 m dtransform /y1 exch def /x1 exch def
/veclength x1 dup mul y1 dup mul add sqrt def
/frequency findresolution veclength div def
/newscreenangle y1 x1 atan def
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
{{neg} /spotfunction load concatprocs
/spotfunction exch def
} if
frequency newscreenangle /spotfunction load setscreen
end
} def
/tgifsetpatterndict 18 dict def
tgifsetpatterndict begin
/bitison
{ /ybit exch def /xbit exch def
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
/mask 1 7 xbit 8 mod sub bitshift def
bytevalue mask and 0 ne
} def
end
/tgifbitpatternspotfunction
{ tgifsetpatterndict begin
/y exch def /x exch def
/xindex x 1 add 2 div bpside mul cvi def
/yindex y 1 add 2 div bpside mul cvi def
xindex yindex bitison
{ /onbits onbits 1 add def 1 }
{ /offbits offbits 1 add def 0 }
ifelse
end
} def
/tgifsetpattern
{ tgifsetpatterndict begin
/cellsz exch def
/angle exch def
/bwidth exch def
/bpside exch def
/bstring exch def
/onbits 0 def /offbits 0 def
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
{} settransfer
offbits offbits onbits add div setgray
end
} def
/tgifxpmdict 4 dict def
/tgifbwpicstr 1 string def
/tgifcolorpicstr 3 string def
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
/tgifbwspot
{ tgifxpmdict begin
/index exch def
tgifbwpicstr 0
pixels index 3 mul 3 getinterval aload pop
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
cvi put
tgifbwpicstr
end
} def
/tgifcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
tgifcolorpicstr
end
} def
/tgifnewcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop setrgbcolor
end
} def
/tgifcolordict 4 dict def
/colorimage where
{ pop }
{ /colorimage
{ tgifcolordict begin
pop pop pop pop pop
/ih exch def
/iw exch def
/x 0 def
/y 0 def
1 1 ih
{ pop 1 1 iw
{ pop currentfile
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
closepath fill
/x x 1 add def
} for
/y y 1 add def
/x 0 def
} for
end
} def
} ifelse
/tgifpatdict 10 dict def
/tgifpatbyte
{ currentdict /retstr get exch
pat i cellsz mod get put
} def
/tgifpatproc
{ 0 1 widthlim {tgifpatbyte} for retstr
/i i 1 add def
} def
/tgifpatfill
{ tgifpatdict begin
/h exch def
/w exch def
/lty exch def
/ltx exch def
/cellsz exch def
/pat exch def
/widthlim w cellsz div cvi 1 sub def
/retstr widthlim 1 add string def
/i 0 def
ltx lty translate
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
ltx neg lty neg translate
end
} def
/pat1 <ffffffffffffffff> def
/pat2 <0000000000000000> def
/pat3 <8000000008000000> def
/pat4 <8800000022000000> def
/pat5 <8800220088002200> def
/pat6 <8822882288228822> def
/pat7 <aa55aa55aa55aa55> def
/pat8 <77dd77dd77dd77dd> def
/pat9 <77ffddff77ffddff> def
/pat10 <77ffffff77ffffff> def
/pat11 <7fffffff7fffffff> def
/pat12 <8040200002040800> def
/pat13 <40a00000040a0000> def
/pat14 <ff888888ff888888> def
/pat15 <ff808080ff080808> def
/pat16 <f87422478f172271> def
/pat17 <038448300c020101> def
/pat18 <081c22c180010204> def
/pat19 <8080413e080814e3> def
/pat20 <8040201008040201> def
/pat21 <8844221188442211> def
/pat22 <77bbddee77bbddee> def
/pat23 <c1e070381c0e0783> def
/pat24 <7fbfdfeff7fbfdfe> def
/pat25 <3e1f8fc7e3f1f87c> def
/pat26 <0102040810204080> def
/pat27 <1122448811224488> def
/pat28 <eeddbb77eeddbb77> def
/pat29 <83070e1c3870e0c1> def
/pat30 <fefdfbf7efdfbf7f> def
/pat31 <7cf8f1e3c78f1f3e> def
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
/tgifreencsmalldict 12 dict def
/tgifReEncodeSmall
{ tgifreencsmalldict begin
/newcodesandnames exch def
/newfontname exch def
/basefontname exch def
/basefontdict basefontname findfont def
/newfont basefontdict maxlength dict def
basefontdict
{ exch dup /FID ne
{ dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put }
ifelse
}
{ pop pop }
ifelse
}
forall
newfont /FontName newfontname put
newcodesandnames aload pop
newcodesandnames length 2 idiv
{ newfont /Encoding get 3 1 roll put}
repeat
newfontname newfont definefont pop
end
} def
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
/tgifboxdict 6 dict def
/tgifboxstroke
{ tgifboxdict begin
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
1.415 setmiterlimit
w 1 eq { w setlinewidth } if
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
w 1 eq { 1 setlinewidth } if
1 setmiterlimit
end
} def
/tgifboxfill
{ tgifboxdict begin
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
end
} def
end
%%PageBoundingBox: 15 680 305 764
tgifdict begin
/tgifsavedpage save def
1 setmiterlimit
1 setlinewidth
0 setgray
72 0 mul 72 11.00 mul translate
72 128 div 100 mul 100 div dup neg scale
gsave
% POLY/OPEN-SPLINE
gsave
newpath
156 105 moveto
156 137 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
171 125 moveto
0 56 atan dup cos 8 mul 227 exch sub
exch sin 8 mul 125 exch sub lineto
stroke
grestore
gsave
newpath
227 125 8 3 56 0 tgifarrowtip
closepath fill
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
232 103 moveto 296 103 lineto 296 135 lineto 232 135 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
264 103 moveto
264 135 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
279 117 moveto
0 59 atan dup cos 8 mul 338 exch sub
exch sin 8 mul 117 exch sub lineto
stroke
grestore
gsave
newpath
338 117 8 3 59 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
289 172 moveto (a different piece of text) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
248 119 moveto
248 168 lineto
0 29 atan dup cos 8 mul 277 exch sub
exch sin 8 mul 168 exch sub lineto
stroke
grestore
gsave
newpath
277 168 8 3 29 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
147 66 moveto (kill-ring-yank-pointer) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
207 76 moveto
207 114 lineto
0 18 atan dup cos 8 mul 225 exch sub
exch sin 8 mul 114 exch sub lineto
stroke
grestore
gsave
newpath
225 114 8 3 18 0 tgifarrowtip
closepath fill
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
341 98 moveto 405 98 lineto 405 130 lineto 341 130 lineto
closepath stroke
1 setmiterlimit
grestore
% POLY/OPEN-SPLINE
gsave
newpath
372 98 moveto
372 130 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
388 115 moveto
0 48 atan dup cos 8 mul 436 exch sub
exch sin 8 mul 115 exch sub lineto
stroke
grestore
gsave
newpath
436 115 8 3 48 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
448 121 moveto (nil) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
397 154 moveto (yet more text) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
356 112 moveto
356 149 lineto
0 35 atan dup cos 8 mul 391 exch sub
exch sin 8 mul 149 exch sub lineto
stroke
grestore
gsave
newpath
391 149 8 3 35 0 tgifarrowtip
closepath fill
grestore
% BOX
gsave
1.415 setmiterlimit
newpath
126 105 moveto 190 105 lineto 190 137 lineto 126 137 lineto
closepath stroke
1 setmiterlimit
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
206 192 moveto (some text) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
142 120 moveto
142 187 lineto
0 48 atan dup cos 8 mul 190 exch sub
exch sin 8 mul 187 exch sub lineto
stroke
grestore
gsave
newpath
190 187 8 3 48 0 tgifarrowtip
closepath fill
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
32 66 moveto (kill-ring) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
65 81 moveto
65 121 lineto
0 51 atan dup cos 8 mul 116 exch sub
exch sin 8 mul 121 exch sub lineto
stroke
grestore
gsave
newpath
116 121 8 3 51 0 tgifarrowtip
closepath fill
grestore
grestore
tgifsavedpage restore
end
%MatchingCreationDate: Wed Mar 8 14:27:28 1995

513
doc/lispintro/drawers.eps Normal file
View file

@ -0,0 +1,513 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 34 577 324 778
%%Title: chest-of-drawers-diagram-new
%%CreationDate: Fri Sep 14 17:40:57 2001
%%Creator: Tgif-4.1.35 by William Chia-Wei Cheng (william@cs.UCLA.edu)
%%ProducedBy: (unknown)
%%Pages: 1
%%DocumentFonts: (atend)
%%EndComments
%%BeginProlog
% Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
% Free Software Foundation, Inc.
%
% This file is part of GNU Emacs.
%
% GNU Emacs is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 3, or (at your option)
% any later version.
%
% GNU Emacs is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with GNU Emacs; see the file COPYING. If not, write to
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
% Boston, MA 02110-1301, USA.
/tgifdict 53 dict def
tgifdict begin
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/TGEL % tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
/TGMAX
{ exch dup 3 1 roll exch dup 3 1 roll gt { pop } { exch pop } ifelse
} def
/TGMIN
{ exch dup 3 1 roll exch dup 3 1 roll lt { pop } { exch pop } ifelse
} def
/TGSW { stringwidth pop } def
/bd { bind def } bind def
/GS { gsave } bd
/GR { grestore } bd
/NP { newpath } bd
/CP { closepath } bd
/CHP { charpath } bd
/CT { curveto } bd
/L { lineto } bd
/RL { rlineto } bd
/M { moveto } bd
/RM { rmoveto } bd
/S { stroke } bd
/F { fill } bd
/TR { translate } bd
/RO { rotate } bd
/SC { scale } bd
/MU { mul } bd
/DI { div } bd
/DU { dup } bd
/NE { neg } bd
/AD { add } bd
/SU { sub } bd
/PO { pop } bd
/EX { exch } bd
/CO { concat } bd
/CL { clip } bd
/EC { eoclip } bd
/EF { eofill } bd
/IM { image } bd
/IMM { imagemask } bd
/ARY { array } bd
/SG { setgray } bd
/RG { setrgbcolor } bd
/SD { setdash } bd
/W { setlinewidth } bd
/SM { setmiterlimit } bd
/SLC { setlinecap } bd
/SLJ { setlinejoin } bd
/SH { show } bd
/FF { findfont } bd
/MS { makefont setfont } bd
/AR { arcto 4 {pop} repeat } bd
/CURP { currentpoint } bd
/FLAT { flattenpath strokepath clip newpath } bd
/TGSM { tgiforigctm setmatrix } def
/TGRM { savematrix setmatrix } def
end
%%EndProlog
%%Page: 1 1
%%PageBoundingBox: 34 577 324 778
tgifdict begin
/tgifsavedpage save def
1 SM
1 W
0 SG
72 0 MU 72 11 MU TR
72 128 DI 100.000 MU 100 DI DU NE SC
GS
/tgiforigctm matrix currentmatrix def
% BOX
0 SG
GS
10 SM
GS
NP 64 104 M 255 104 L 255 360 L 64 360 L CP
S
GR
GR
% POLY/OPEN-SPLINE
0 SG
GS
NP
65 296 M
254 296 L
TGSM
1 W
S
GR
% POLY/OPEN-SPLINE
0 SG
GS
NP
63 233 M
255 233 L
TGSM
1 W
S
GR
% POLY/OPEN-SPLINE
0 SG
GS
NP
63 169 M
255 169 L
TGSM
1 W
S
GR
% POLY/OPEN-SPLINE
0 SG
GS
NP
251 362 M
251 361 L
251 379 L
244 379 L
229 361 L
TGSM
1 W
S
GR
% OVAL
0 SG
GS
GS
NP 160 72 10 6 TGEL
S
GR
GR
% POLY/OPEN-SPLINE
0 SG
GS
NP
63 104 M
128 64 L
138 69 L
TGSM
1 W
S
GR
% POLY/OPEN-SPLINE
0 SG
GS
NP
255 103 M
190 63 L
180 68 L
TGSM
1 W
S
GR
% TEXT
NP
0 SG
GS
1 W
160 152 M
GS
GS
0
/Courier FF [17 0 0 -17 0 0] MS
(symbol name) TGSW
AD
GR
2 DI NE 0 RM
0 SG
/Courier FF [17 0 0 -17 0 0] MS
(symbol name) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
160 41 M
GS
GS
0
/Courier FF [17 0 0 -17 0 0] MS
(Chest of Drawers) TGSW
AD
GR
2 DI NE 0 RM
0 SG
/Courier FF [17 0 0 -17 0 0] MS
(Chest of Drawers) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
344 41 M
GS
0 SG
/Courier FF [17 0 0 -17 0 0] MS
(Contents of Drawers) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
344 160 M
GS
0 SG
/Courier FF [17 0 0 -17 0 0] MS
(bouquet) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
344 220 M
GS
0 SG
/Courier FF [17 0 0 -17 0 0] MS
([none]) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
344 279 M
GS
0 SG
/Courier FF [17 0 0 -17 0 0] MS
(\(rose violet buttercup\)) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
344 337 M
GS
0 SG
/Courier FF [17 0 0 -17 0 0] MS
([not described here]) SH
GR
GR
% POLY/OPEN-SPLINE
0 SG
GS
NP
68 362 M
68 361 L
68 379 L
75 379 L
90 361 L
TGSM
1 W
S
GR
% TEXT
NP
0 SG
GS
1 W
158 132 M
GS
GS
0
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
(directions to) TGSW
AD
GR
2 DI NE 0 RM
0 SG
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
(directions to) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
345 139 M
GS
0 SG
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
(map to) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
350 259 M
GS
0 SG
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
(map to) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
159 213 M
GS
GS
0
/Courier FF [17 0 0 -17 0 0] MS
(symbol definition) TGSW
AD
GR
2 DI NE 0 RM
0 SG
/Courier FF [17 0 0 -17 0 0] MS
(symbol definition) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
159 195 M
GS
GS
0
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
(directions to) TGSW
AD
GR
2 DI NE 0 RM
0 SG
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
(directions to) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
160 276 M
GS
GS
0
/Courier FF [17 0 0 -17 0 0] MS
(variable name) TGSW
AD
GR
2 DI NE 0 RM
0 SG
/Courier FF [17 0 0 -17 0 0] MS
(variable name) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
158 260 M
GS
GS
0
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
(directions to) TGSW
AD
GR
2 DI NE 0 RM
0 SG
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
(directions to) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
160 339 M
GS
GS
0
/Courier FF [17 0 0 -17 0 0] MS
(property list) TGSW
AD
GR
2 DI NE 0 RM
0 SG
/Courier FF [17 0 0 -17 0 0] MS
(property list) SH
GR
GR
% TEXT
NP
0 SG
GS
1 W
158 323 M
GS
GS
0
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
(directions to) TGSW
AD
GR
2 DI NE 0 RM
0 SG
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
(directions to) SH
GR
GR
GR
tgifsavedpage restore
end
showpage
%%Trailer
%MatchingCreationDate: Fri Sep 14 17:40:57 2001
%%DocumentFonts: NewCenturySchlbk-Roman
%%+ Courier
%%EOF

File diff suppressed because it is too large Load diff

250
doc/lispintro/install-sh Executable file
View file

@ -0,0 +1,250 @@
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# Copyright 1991 by the Massachusetts Institute of Technology
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd="$cpprog"
shift
continue;;
-d) dir_arg=true
shift
continue;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
-s) stripcmd="$stripprog"
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
esac
done
if [ x"$src" = x ]
then
echo "install: no input file specified"
exit 1
else
true
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d $dst ]; then
instcmd=:
else
instcmd=mkdir
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f $src -o -d $src ]
then
true
else
echo "install: $src does not exist"
exit 1
fi
if [ x"$dst" = x ]
then
echo "install: no destination specified"
exit 1
else
true
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d $dst ]
then
dst="$dst"/`basename $src`
else
true
fi
fi
## this sed command emulates the dirname command
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
oIFS="${IFS}"
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS="${oIFS}"
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp="${pathcomp}${1}"
shift
if [ ! -d "${pathcomp}" ] ;
then
$mkdirprog "${pathcomp}"
else
true
fi
pathcomp="${pathcomp}/"
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd $dst &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
else
dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
else
true
fi
# Make a temp file name in the proper directory.
dsttmp=$dstdir/#inst.$$#
# Move or copy the file name to the temp name
$doit $instcmd $src $dsttmp &&
trap "rm -f ${dsttmp}" 0 &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
$doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
exit 0

471
doc/lispintro/lambda-1.eps Normal file
View file

@ -0,0 +1,471 @@
%!
%%BoundingBox: 33 710 173 759
%%Title: lambda-diagram1
%%CreationDate: Wed Mar 8 14:31:53 1995
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
%
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
%
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
% Free Software Foundation, Inc.
%
% This file is part of GNU Emacs.
%
% GNU Emacs is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 3, or (at your option)
% any later version.
%
% GNU Emacs is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with GNU Emacs; see the file COPYING. If not, write to
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
% Boston, MA 02110-1301, USA.
/tgifdict 132 dict def
tgifdict begin
%
% Using a zero value radius for an ellipse or an arc would result
% in a non-invertible CTM matrix which causes problem when this
% when this PostScript is wrapped inside other routines, such as
% the multi.ps package from
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
% error by uncommenting the sole line of the procedure below:
%
/tgif_min_radius
{
% dup 0.01 lt { pop 0.01 } if
} bind def
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
/tgifarrowtipdict 8 dict def
tgifarrowtipdict /mtrx matrix put
/tgifarrowtip
{ tgifarrowtipdict begin
/dy exch def
/dx exch def
/h exch def
/w exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
dy dx atan rotate
0 0 moveto
w neg h lineto
w neg h neg lineto
savematrix setmatrix
end
} def
/tgifarcdict 8 dict def
tgifarcdict /mtrx matrix put
/tgifarcn
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arc
savematrix setmatrix
end
} def
/tgifarc
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arcn
savematrix setmatrix
end
} def
/tgifsetuserscreendict 22 dict def
tgifsetuserscreendict begin
/tempctm matrix def
/temprot matrix def
/tempscale matrix def
/concatprocs
{ /proc2 exch cvlit def
/proc1 exch cvlit def
/newproc proc1 length proc2 length add array def
newproc 0 proc1 putinterval
newproc proc1 length proc2 putinterval
newproc cvx
} def
/resmatrix matrix def
/findresolution
{ 72 0 resmatrix defaultmatrix dtransform
/yres exch def /xres exch def
xres dup mul yres dup mul add sqrt
} def
end
/tgifsetuserscreen
{ tgifsetuserscreendict begin
/spotfunction exch def
/screenangle exch def
/cellsize exch def
/m tempctm currentmatrix def
/rm screenangle temprot rotate def
/sm cellsize dup tempscale scale def
sm rm m m concatmatrix m concatmatrix pop
1 0 m dtransform /y1 exch def /x1 exch def
/veclength x1 dup mul y1 dup mul add sqrt def
/frequency findresolution veclength div def
/newscreenangle y1 x1 atan def
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
{{neg} /spotfunction load concatprocs
/spotfunction exch def
} if
frequency newscreenangle /spotfunction load setscreen
end
} def
/tgifsetpatterndict 18 dict def
tgifsetpatterndict begin
/bitison
{ /ybit exch def /xbit exch def
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
/mask 1 7 xbit 8 mod sub bitshift def
bytevalue mask and 0 ne
} def
end
/tgifbitpatternspotfunction
{ tgifsetpatterndict begin
/y exch def /x exch def
/xindex x 1 add 2 div bpside mul cvi def
/yindex y 1 add 2 div bpside mul cvi def
xindex yindex bitison
{ /onbits onbits 1 add def 1 }
{ /offbits offbits 1 add def 0 }
ifelse
end
} def
/tgifsetpattern
{ tgifsetpatterndict begin
/cellsz exch def
/angle exch def
/bwidth exch def
/bpside exch def
/bstring exch def
/onbits 0 def /offbits 0 def
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
{} settransfer
offbits offbits onbits add div setgray
end
} def
/tgifxpmdict 4 dict def
/tgifbwpicstr 1 string def
/tgifcolorpicstr 3 string def
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
/tgifbwspot
{ tgifxpmdict begin
/index exch def
tgifbwpicstr 0
pixels index 3 mul 3 getinterval aload pop
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
cvi put
tgifbwpicstr
end
} def
/tgifcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
tgifcolorpicstr
end
} def
/tgifnewcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop setrgbcolor
end
} def
/tgifcolordict 4 dict def
/colorimage where
{ pop }
{ /colorimage
{ tgifcolordict begin
pop pop pop pop pop
/ih exch def
/iw exch def
/x 0 def
/y 0 def
1 1 ih
{ pop 1 1 iw
{ pop currentfile
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
closepath fill
/x x 1 add def
} for
/y y 1 add def
/x 0 def
} for
end
} def
} ifelse
/tgifpatdict 10 dict def
/tgifpatbyte
{ currentdict /retstr get exch
pat i cellsz mod get put
} def
/tgifpatproc
{ 0 1 widthlim {tgifpatbyte} for retstr
/i i 1 add def
} def
/tgifpatfill
{ tgifpatdict begin
/h exch def
/w exch def
/lty exch def
/ltx exch def
/cellsz exch def
/pat exch def
/widthlim w cellsz div cvi 1 sub def
/retstr widthlim 1 add string def
/i 0 def
ltx lty translate
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
ltx neg lty neg translate
end
} def
/pat1 <ffffffffffffffff> def
/pat2 <0000000000000000> def
/pat3 <8000000008000000> def
/pat4 <8800000022000000> def
/pat5 <8800220088002200> def
/pat6 <8822882288228822> def
/pat7 <aa55aa55aa55aa55> def
/pat8 <77dd77dd77dd77dd> def
/pat9 <77ffddff77ffddff> def
/pat10 <77ffffff77ffffff> def
/pat11 <7fffffff7fffffff> def
/pat12 <8040200002040800> def
/pat13 <40a00000040a0000> def
/pat14 <ff888888ff888888> def
/pat15 <ff808080ff080808> def
/pat16 <f87422478f172271> def
/pat17 <038448300c020101> def
/pat18 <081c22c180010204> def
/pat19 <8080413e080814e3> def
/pat20 <8040201008040201> def
/pat21 <8844221188442211> def
/pat22 <77bbddee77bbddee> def
/pat23 <c1e070381c0e0783> def
/pat24 <7fbfdfeff7fbfdfe> def
/pat25 <3e1f8fc7e3f1f87c> def
/pat26 <0102040810204080> def
/pat27 <1122448811224488> def
/pat28 <eeddbb77eeddbb77> def
/pat29 <83070e1c3870e0c1> def
/pat30 <fefdfbf7efdfbf7f> def
/pat31 <7cf8f1e3c78f1f3e> def
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
/tgifreencsmalldict 12 dict def
/tgifReEncodeSmall
{ tgifreencsmalldict begin
/newcodesandnames exch def
/newfontname exch def
/basefontname exch def
/basefontdict basefontname findfont def
/newfont basefontdict maxlength dict def
basefontdict
{ exch dup /FID ne
{ dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put }
ifelse
}
{ pop pop }
ifelse
}
forall
newfont /FontName newfontname put
newcodesandnames aload pop
newcodesandnames length 2 idiv
{ newfont /Encoding get 3 1 roll put}
repeat
newfontname newfont definefont pop
end
} def
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
/tgifboxdict 6 dict def
/tgifboxstroke
{ tgifboxdict begin
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
1.415 setmiterlimit
w 1 eq { w setlinewidth } if
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
w 1 eq { 1 setlinewidth } if
1 setmiterlimit
end
} def
/tgifboxfill
{ tgifboxdict begin
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
end
} def
end
%%PageBoundingBox: 33 710 173 759
tgifdict begin
/tgifsavedpage save def
1 setmiterlimit
1 setlinewidth
0 setgray
72 0 mul 72 11.00 mul translate
72 128 div 100 mul 100 div dup neg scale
gsave
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
63 75 moveto (\(multiply-by-seven 3\)) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
80 80 moveto
96 96 lineto
224 96 lineto
240 80 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
264 119 moveto
-22 0 atan dup cos 8 mul 264 exch sub
exch sin 8 mul 97 exch sub lineto
stroke
grestore
gsave
newpath
264 97 8 3 0 -22 tgifarrowtip
closepath fill
grestore
% POLY/OPEN-SPLINE
gsave
newpath
160 103 moveto
160 119 lineto
stroke
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
112 139 moveto (function) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
224 139 moveto (argument) show
grestore
grestore
tgifsavedpage restore
end
%MatchingCreationDate: Wed Mar 8 14:31:53 1995

471
doc/lispintro/lambda-2.eps Normal file
View file

@ -0,0 +1,471 @@
%!
%%BoundingBox: 33 730 240 777
%%Title: lambda-diagram2
%%CreationDate: Wed Mar 8 14:33:09 1995
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
%
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
%
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
% Free Software Foundation, Inc.
%
% This file is part of GNU Emacs.
%
% GNU Emacs is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 3, or (at your option)
% any later version.
%
% GNU Emacs is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with GNU Emacs; see the file COPYING. If not, write to
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
% Boston, MA 02110-1301, USA.
/tgifdict 132 dict def
tgifdict begin
%
% Using a zero value radius for an ellipse or an arc would result
% in a non-invertible CTM matrix which causes problem when this
% when this PostScript is wrapped inside other routines, such as
% the multi.ps package from
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
% error by uncommenting the sole line of the procedure below:
%
/tgif_min_radius
{
% dup 0.01 lt { pop 0.01 } if
} bind def
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
/tgifarrowtipdict 8 dict def
tgifarrowtipdict /mtrx matrix put
/tgifarrowtip
{ tgifarrowtipdict begin
/dy exch def
/dx exch def
/h exch def
/w exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
dy dx atan rotate
0 0 moveto
w neg h lineto
w neg h neg lineto
savematrix setmatrix
end
} def
/tgifarcdict 8 dict def
tgifarcdict /mtrx matrix put
/tgifarcn
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arc
savematrix setmatrix
end
} def
/tgifarc
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arcn
savematrix setmatrix
end
} def
/tgifsetuserscreendict 22 dict def
tgifsetuserscreendict begin
/tempctm matrix def
/temprot matrix def
/tempscale matrix def
/concatprocs
{ /proc2 exch cvlit def
/proc1 exch cvlit def
/newproc proc1 length proc2 length add array def
newproc 0 proc1 putinterval
newproc proc1 length proc2 putinterval
newproc cvx
} def
/resmatrix matrix def
/findresolution
{ 72 0 resmatrix defaultmatrix dtransform
/yres exch def /xres exch def
xres dup mul yres dup mul add sqrt
} def
end
/tgifsetuserscreen
{ tgifsetuserscreendict begin
/spotfunction exch def
/screenangle exch def
/cellsize exch def
/m tempctm currentmatrix def
/rm screenangle temprot rotate def
/sm cellsize dup tempscale scale def
sm rm m m concatmatrix m concatmatrix pop
1 0 m dtransform /y1 exch def /x1 exch def
/veclength x1 dup mul y1 dup mul add sqrt def
/frequency findresolution veclength div def
/newscreenangle y1 x1 atan def
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
{{neg} /spotfunction load concatprocs
/spotfunction exch def
} if
frequency newscreenangle /spotfunction load setscreen
end
} def
/tgifsetpatterndict 18 dict def
tgifsetpatterndict begin
/bitison
{ /ybit exch def /xbit exch def
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
/mask 1 7 xbit 8 mod sub bitshift def
bytevalue mask and 0 ne
} def
end
/tgifbitpatternspotfunction
{ tgifsetpatterndict begin
/y exch def /x exch def
/xindex x 1 add 2 div bpside mul cvi def
/yindex y 1 add 2 div bpside mul cvi def
xindex yindex bitison
{ /onbits onbits 1 add def 1 }
{ /offbits offbits 1 add def 0 }
ifelse
end
} def
/tgifsetpattern
{ tgifsetpatterndict begin
/cellsz exch def
/angle exch def
/bwidth exch def
/bpside exch def
/bstring exch def
/onbits 0 def /offbits 0 def
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
{} settransfer
offbits offbits onbits add div setgray
end
} def
/tgifxpmdict 4 dict def
/tgifbwpicstr 1 string def
/tgifcolorpicstr 3 string def
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
/tgifbwspot
{ tgifxpmdict begin
/index exch def
tgifbwpicstr 0
pixels index 3 mul 3 getinterval aload pop
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
cvi put
tgifbwpicstr
end
} def
/tgifcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
tgifcolorpicstr
end
} def
/tgifnewcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop setrgbcolor
end
} def
/tgifcolordict 4 dict def
/colorimage where
{ pop }
{ /colorimage
{ tgifcolordict begin
pop pop pop pop pop
/ih exch def
/iw exch def
/x 0 def
/y 0 def
1 1 ih
{ pop 1 1 iw
{ pop currentfile
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
closepath fill
/x x 1 add def
} for
/y y 1 add def
/x 0 def
} for
end
} def
} ifelse
/tgifpatdict 10 dict def
/tgifpatbyte
{ currentdict /retstr get exch
pat i cellsz mod get put
} def
/tgifpatproc
{ 0 1 widthlim {tgifpatbyte} for retstr
/i i 1 add def
} def
/tgifpatfill
{ tgifpatdict begin
/h exch def
/w exch def
/lty exch def
/ltx exch def
/cellsz exch def
/pat exch def
/widthlim w cellsz div cvi 1 sub def
/retstr widthlim 1 add string def
/i 0 def
ltx lty translate
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
ltx neg lty neg translate
end
} def
/pat1 <ffffffffffffffff> def
/pat2 <0000000000000000> def
/pat3 <8000000008000000> def
/pat4 <8800000022000000> def
/pat5 <8800220088002200> def
/pat6 <8822882288228822> def
/pat7 <aa55aa55aa55aa55> def
/pat8 <77dd77dd77dd77dd> def
/pat9 <77ffddff77ffddff> def
/pat10 <77ffffff77ffffff> def
/pat11 <7fffffff7fffffff> def
/pat12 <8040200002040800> def
/pat13 <40a00000040a0000> def
/pat14 <ff888888ff888888> def
/pat15 <ff808080ff080808> def
/pat16 <f87422478f172271> def
/pat17 <038448300c020101> def
/pat18 <081c22c180010204> def
/pat19 <8080413e080814e3> def
/pat20 <8040201008040201> def
/pat21 <8844221188442211> def
/pat22 <77bbddee77bbddee> def
/pat23 <c1e070381c0e0783> def
/pat24 <7fbfdfeff7fbfdfe> def
/pat25 <3e1f8fc7e3f1f87c> def
/pat26 <0102040810204080> def
/pat27 <1122448811224488> def
/pat28 <eeddbb77eeddbb77> def
/pat29 <83070e1c3870e0c1> def
/pat30 <fefdfbf7efdfbf7f> def
/pat31 <7cf8f1e3c78f1f3e> def
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
/tgifreencsmalldict 12 dict def
/tgifReEncodeSmall
{ tgifreencsmalldict begin
/newcodesandnames exch def
/newfontname exch def
/basefontname exch def
/basefontdict basefontname findfont def
/newfont basefontdict maxlength dict def
basefontdict
{ exch dup /FID ne
{ dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put }
ifelse
}
{ pop pop }
ifelse
}
forall
newfont /FontName newfontname put
newcodesandnames aload pop
newcodesandnames length 2 idiv
{ newfont /Encoding get 3 1 roll put}
repeat
newfontname newfont definefont pop
end
} def
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
/tgifboxdict 6 dict def
/tgifboxstroke
{ tgifboxdict begin
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
1.415 setmiterlimit
w 1 eq { w setlinewidth } if
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
w 1 eq { 1 setlinewidth } if
1 setmiterlimit
end
} def
/tgifboxfill
{ tgifboxdict begin
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
end
} def
end
%%PageBoundingBox: 33 730 240 777
tgifdict begin
/tgifsavedpage save def
1 setmiterlimit
1 setlinewidth
0 setgray
72 0 mul 72 11.00 mul translate
72 128 div 100 mul 100 div dup neg scale
gsave
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
63 43 moveto (\(\(lambda \(number\) \(* 7 number\)\) 3\)) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
80 48 moveto
96 64 lineto
336 64 lineto
353 49 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
395 85 moveto
-21 0 atan dup cos 8 mul 395 exch sub
exch sin 8 mul 64 exch sub lineto
stroke
grestore
gsave
newpath
395 64 8 3 0 -21 tgifarrowtip
closepath fill
grestore
% POLY/OPEN-SPLINE
gsave
newpath
208 69 moveto
208 85 lineto
stroke
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
112 102 moveto (anonymous function) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
344 102 moveto (argument) show
grestore
grestore
tgifsavedpage restore
end
%MatchingCreationDate: Wed Mar 8 14:33:09 1995

471
doc/lispintro/lambda-3.eps Normal file
View file

@ -0,0 +1,471 @@
%!
%%BoundingBox: 33 728 211 777
%%Title: lambda-diagram3
%%CreationDate: Wed Mar 8 14:33:49 1995
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
%
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
%
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
% Free Software Foundation, Inc.
%
% This file is part of GNU Emacs.
%
% GNU Emacs is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 3, or (at your option)
% any later version.
%
% GNU Emacs is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with GNU Emacs; see the file COPYING. If not, write to
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
% Boston, MA 02110-1301, USA.
/tgifdict 132 dict def
tgifdict begin
%
% Using a zero value radius for an ellipse or an arc would result
% in a non-invertible CTM matrix which causes problem when this
% when this PostScript is wrapped inside other routines, such as
% the multi.ps package from
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
% error by uncommenting the sole line of the procedure below:
%
/tgif_min_radius
{
% dup 0.01 lt { pop 0.01 } if
} bind def
/tgifellipsedict 6 dict def
tgifellipsedict /mtrx matrix put
/tgifellipse
{ tgifellipsedict begin
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 0 360 arc
savematrix setmatrix
end
} def
/tgifarrowtipdict 8 dict def
tgifarrowtipdict /mtrx matrix put
/tgifarrowtip
{ tgifarrowtipdict begin
/dy exch def
/dx exch def
/h exch def
/w exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
dy dx atan rotate
0 0 moveto
w neg h lineto
w neg h neg lineto
savematrix setmatrix
end
} def
/tgifarcdict 8 dict def
tgifarcdict /mtrx matrix put
/tgifarcn
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arc
savematrix setmatrix
end
} def
/tgifarc
{ tgifarcdict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def
/savematrix mtrx currentmatrix def
x y translate
xrad yrad scale
0 0 1 startangle endangle arcn
savematrix setmatrix
end
} def
/tgifsetuserscreendict 22 dict def
tgifsetuserscreendict begin
/tempctm matrix def
/temprot matrix def
/tempscale matrix def
/concatprocs
{ /proc2 exch cvlit def
/proc1 exch cvlit def
/newproc proc1 length proc2 length add array def
newproc 0 proc1 putinterval
newproc proc1 length proc2 putinterval
newproc cvx
} def
/resmatrix matrix def
/findresolution
{ 72 0 resmatrix defaultmatrix dtransform
/yres exch def /xres exch def
xres dup mul yres dup mul add sqrt
} def
end
/tgifsetuserscreen
{ tgifsetuserscreendict begin
/spotfunction exch def
/screenangle exch def
/cellsize exch def
/m tempctm currentmatrix def
/rm screenangle temprot rotate def
/sm cellsize dup tempscale scale def
sm rm m m concatmatrix m concatmatrix pop
1 0 m dtransform /y1 exch def /x1 exch def
/veclength x1 dup mul y1 dup mul add sqrt def
/frequency findresolution veclength div def
/newscreenangle y1 x1 atan def
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
{{neg} /spotfunction load concatprocs
/spotfunction exch def
} if
frequency newscreenangle /spotfunction load setscreen
end
} def
/tgifsetpatterndict 18 dict def
tgifsetpatterndict begin
/bitison
{ /ybit exch def /xbit exch def
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
/mask 1 7 xbit 8 mod sub bitshift def
bytevalue mask and 0 ne
} def
end
/tgifbitpatternspotfunction
{ tgifsetpatterndict begin
/y exch def /x exch def
/xindex x 1 add 2 div bpside mul cvi def
/yindex y 1 add 2 div bpside mul cvi def
xindex yindex bitison
{ /onbits onbits 1 add def 1 }
{ /offbits offbits 1 add def 0 }
ifelse
end
} def
/tgifsetpattern
{ tgifsetpatterndict begin
/cellsz exch def
/angle exch def
/bwidth exch def
/bpside exch def
/bstring exch def
/onbits 0 def /offbits 0 def
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
{} settransfer
offbits offbits onbits add div setgray
end
} def
/tgifxpmdict 4 dict def
/tgifbwpicstr 1 string def
/tgifcolorpicstr 3 string def
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
/tgifbwspot
{ tgifxpmdict begin
/index exch def
tgifbwpicstr 0
pixels index 3 mul 3 getinterval aload pop
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
cvi put
tgifbwpicstr
end
} def
/tgifcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
tgifcolorpicstr
end
} def
/tgifnewcolorspot
{ tgifxpmdict begin
/index exch def
pixels index 3 mul 3 getinterval aload pop setrgbcolor
end
} def
/tgifcolordict 4 dict def
/colorimage where
{ pop }
{ /colorimage
{ tgifcolordict begin
pop pop pop pop pop
/ih exch def
/iw exch def
/x 0 def
/y 0 def
1 1 ih
{ pop 1 1 iw
{ pop currentfile
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
closepath fill
/x x 1 add def
} for
/y y 1 add def
/x 0 def
} for
end
} def
} ifelse
/tgifpatdict 10 dict def
/tgifpatbyte
{ currentdict /retstr get exch
pat i cellsz mod get put
} def
/tgifpatproc
{ 0 1 widthlim {tgifpatbyte} for retstr
/i i 1 add def
} def
/tgifpatfill
{ tgifpatdict begin
/h exch def
/w exch def
/lty exch def
/ltx exch def
/cellsz exch def
/pat exch def
/widthlim w cellsz div cvi 1 sub def
/retstr widthlim 1 add string def
/i 0 def
ltx lty translate
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
ltx neg lty neg translate
end
} def
/pat1 <ffffffffffffffff> def
/pat2 <0000000000000000> def
/pat3 <8000000008000000> def
/pat4 <8800000022000000> def
/pat5 <8800220088002200> def
/pat6 <8822882288228822> def
/pat7 <aa55aa55aa55aa55> def
/pat8 <77dd77dd77dd77dd> def
/pat9 <77ffddff77ffddff> def
/pat10 <77ffffff77ffffff> def
/pat11 <7fffffff7fffffff> def
/pat12 <8040200002040800> def
/pat13 <40a00000040a0000> def
/pat14 <ff888888ff888888> def
/pat15 <ff808080ff080808> def
/pat16 <f87422478f172271> def
/pat17 <038448300c020101> def
/pat18 <081c22c180010204> def
/pat19 <8080413e080814e3> def
/pat20 <8040201008040201> def
/pat21 <8844221188442211> def
/pat22 <77bbddee77bbddee> def
/pat23 <c1e070381c0e0783> def
/pat24 <7fbfdfeff7fbfdfe> def
/pat25 <3e1f8fc7e3f1f87c> def
/pat26 <0102040810204080> def
/pat27 <1122448811224488> def
/pat28 <eeddbb77eeddbb77> def
/pat29 <83070e1c3870e0c1> def
/pat30 <fefdfbf7efdfbf7f> def
/pat31 <7cf8f1e3c78f1f3e> def
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
/tgifreencsmalldict 12 dict def
/tgifReEncodeSmall
{ tgifreencsmalldict begin
/newcodesandnames exch def
/newfontname exch def
/basefontname exch def
/basefontdict basefontname findfont def
/newfont basefontdict maxlength dict def
basefontdict
{ exch dup /FID ne
{ dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put }
ifelse
}
{ pop pop }
ifelse
}
forall
newfont /FontName newfontname put
newcodesandnames aload pop
newcodesandnames length 2 idiv
{ newfont /Encoding get 3 1 roll put}
repeat
newfontname newfont definefont pop
end
} def
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
/tgifboxdict 6 dict def
/tgifboxstroke
{ tgifboxdict begin
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
1.415 setmiterlimit
w 1 eq { w setlinewidth } if
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
w 1 eq { 1 setlinewidth } if
1 setmiterlimit
end
} def
/tgifboxfill
{ tgifboxdict begin
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
pat pat1 ne pat pat2 ne and { grestore } if
end
} def
end
%%PageBoundingBox: 33 728 211 777
tgifdict begin
/tgifsavedpage save def
1 setmiterlimit
1 setlinewidth
0 setgray
72 0 mul 72 11.00 mul translate
72 128 div 100 mul 100 div dup neg scale
gsave
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
63 43 moveto (\(\(lambda \(arg\) \(/ arg 50\)\) 100\)) show
grestore
% POLY/OPEN-SPLINE
gsave
newpath
80 48 moveto
96 64 lineto
284 64 lineto
299 48 lineto
stroke
grestore
% POLY/OPEN-SPLINE
gsave
newpath
354 86 moveto
-25 0 atan dup cos 8 mul 354 exch sub
exch sin 8 mul 61 exch sub lineto
stroke
grestore
gsave
newpath
354 61 8 3 0 -25 tgifarrowtip
closepath fill
grestore
% POLY/OPEN-SPLINE
gsave
newpath
199 70 moveto
199 86 lineto
stroke
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
101 106 moveto (anonymous function) show
grestore
% TEXT
0 setgray
/Courier findfont [17 0 0 -17 0 0] makefont setfont
gsave
293 106 moveto (argument) show
grestore
grestore
tgifsavedpage restore
end
%MatchingCreationDate: Wed Mar 8 14:33:49 1995

View file

@ -0,0 +1,73 @@
#### -*- Makefile -*- for the Emacs Lisp Introduction manual.
# Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
# GNU Emacs is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with GNU Emacs; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
srcdir = .
infodir = $(srcdir)/../../info
INFO_SOURCES = $(srcdir)/emacs-lisp-intro.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
DVI_TARGETS = emacs-lisp-intro.dvi
MAKEINFO = makeinfo
INSTALL_INFO = install-info
TEXI2DVI = texi2dvi
DVIPS = dvips
ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \
"MAKEINFO=$(MAKEINFO) -I$(srcdir)" /C
.SUFFIXES: .dvi .ps .texi
info: $(INFO_TARGETS)
$(infodir)/dir:
$(INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS)
dvi: $(DVI_TARGETS)
$(infodir)/eintr: $(INFO_SOURCES)
$(MAKEINFO) -o $@ $(srcdir)/emacs-lisp-intro.texi
emacs-lisp-intro.dvi: $(INFO_SOURCES)
$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-lisp-intro.texi
emacs-lisp-intro.html: $(INFO_SOURCES)
$(MAKEINFO) --html -o $@ $(srcdir)/emacs-lisp-intro.texi
.dvi.ps:
$(DVIPS) $< -o $@
mostlyclean:
- $(DEL) *.log *.cp *.fn *.ky *.pg *.vr *.tp
clean: mostlyclean
- $(DEL) *.dvi $(infodir)/eintr*
distclean: clean
maintainer-clean: distclean
- $(DEL) *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

135
doc/lispintro/missing Executable file
View file

@ -0,0 +1,135 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
# Free Software Foundation, Inc.
# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
case "$1" in
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison touch file \`y.tab.c'
makeinfo touch the output file
yacc touch file \`y.tab.c'"
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing - GNU libit 0.0"
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
aclocal)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acinclude.m4' or \`configure.in'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`configure.in'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acconfig.h' or \`configure.in'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
touch config.h.in
;;
automake)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print \
| sed 's/^\(.*\).am$/touch \1.in/' \
| sh
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
touch y.tab.c
;;
makeinfo)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
touch $file
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0

17
doc/lispref/.gitignore vendored Normal file
View file

@ -0,0 +1,17 @@
texput.log
elisp.??
elisp.???
configure
config.log
config.cache
config.status
Makefile
makefile
index.texi
elisp
elisp-?
elisp-??
vol1.*
vol2.*
elisp1*
elisp2*

View file

@ -1,3 +1,69 @@
2007-10-06 Juri Linkov <juri@jurta.org>
* text.texi (Filling): Document fill-paragraph-or-region.
2007-10-05 Juanma Barranquero <lekktu@gmail.com>
* display.texi (Auto Faces): Fix typo.
2007-10-02 Richard Stallman <rms@gnu.org>
* display.texi (Display Property): Explain some display specs
don't let you move point in.
* frames.texi (Cursor Parameters): Describe
cursor-in-non-selected-windows here. Explain more values.
* windows.texi (Basic Windows): Don't describe
cursor-in-non-selected-windows here.
2007-10-01 Eli Zaretskii <eliz@gnu.org>
* processes.texi (Misc Network): Note that these functions are
supported only on some systems.
2007-10-01 Richard Stallman <rms@gnu.org>
* display.texi (Overlay Properties): Explain nil as priority.
Explain that conflicts are unpredictable if not resolved by
priorities.
2007-09-23 Richard Stallman <rms@gnu.org>
* macros.texi (Backquote): Minor clarification.
2007-09-19 Richard Stallman <rms@gnu.org>
* display.texi (Display Property): Explain multiple display specs.
Clarify when they work in parallel and when one overrides.
Fix error in example.
2007-09-06 Glenn Morris <rgm@gnu.org>
* Move from lispref/ to doc/lispref/. Change all setfilename
commands to use ../../info.
* Makefile.in (infodir): Go up one more level.
(usermanualdir): Change from ../man to ../emacs.
(miscmanualdir): New.
(dist): Use new variable miscmanualdir.
* makefile.w32-in (infodir, texinputdir): Go up one more level.
(usermanualdir): Change from ../man to ../emacs.
2007-08-30 Martin Rudalics <rudalics@gmx.at>
* commands.texi (Command Loop Info): Advise against changing
most variables described here. Explain new variable
last-repeatable-command.
2007-08-29 Glenn Morris <rgm@gnu.org>
* elisp.texi (EMACSVER): Increase to 23.0.50.
2007-08-29 Dan Nicolaescu <dann@ics.uci.edu>
* frames.texi (Basic Parameters): Add display-environment-variable
and term-environment-variable.
2007-08-28 Juri Linkov <juri@jurta.org>
* display.texi (Image Formats, Other Image Types): Add SVG.
@ -8,6 +74,11 @@
"Image Formats".
(Image Formats): New node.
2007-08-27 Richard Stallman <rms@gnu.org>
* windows.texi (Window Configurations): Clarify what
a window configuration saves.
2007-08-25 Richard Stallman <rms@gnu.org>
* display.texi (Images): Delete redundant @findex.
@ -43,8 +114,8 @@
2007-07-24 Michael Albinus <michael.albinus@gmx.de>
* processes.texi (Synchronous Processes): Add
`process-file-shell-command',
* processes.texi (Synchronous Processes):
Add `process-file-shell-command'.
(Asynchronous Processes): Mention restricted use of
`process-filter' and `process-sentinel' in
`start-file-process'. Add `start-file-process-shell-command'.
@ -87,13 +158,13 @@
2007-06-27 Michael Albinus <michael.albinus@gmx.de>
* files.texi (Magic File Names): Remove `dired-call-process'. Add
`process-file'.
* files.texi (Magic File Names): Remove `dired-call-process'.
Add `process-file'.
2007-06-27 Kenichi Handa <handa@m17n.org>
* text.texi (Special Properties): Fix description about
`compostion' property.
`composition' property.
2007-06-26 Kenichi Handa <handa@m17n.org>
@ -107,7 +178,7 @@
2007-06-24 Karl Berry <karl@gnu.org>
* elisp.texi, vol1.texi, vol2.texi: new Back-Cover Text.
* elisp.texi, vol1.texi, vol2.texi: New Back-Cover Text.
2007-06-15 Juanma Barranquero <lekktu@gmail.com>

View file

@ -26,8 +26,9 @@ srcdir = @srcdir@
# Tell make where to find source files; this is needed for the makefiles.
VPATH=@srcdir@
infodir = ../info
usermanualdir = $(srcdir)/../man
infodir = ../../info
usermanualdir = $(srcdir)/../emacs
miscmanualdir = $(srcdir)/../misc
TEXI2DVI = texi2dvi
SHELL = /bin/sh
@ -133,7 +134,7 @@ dist: $(infodir)/elisp elisp.dvi
-mkdir temp/$(manual)
-ln $(srcdir)/README $(srcdir)/configure.in $(srcdir)/configure \
$(srcdir)/Makefile.in $(srcs) \
$(srcdir)/../man/texinfo.tex \
$(miscmanualdir)/texinfo.tex \
elisp.dvi elisp.aux elisp.??s \
$(infodir)/elisp $(infodir)/elisp-[1-9] $(infodir)/elisp-[1-9][0-9] \
temp/$(manual)

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1999, 2001, 2002, 2003,
@c 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/abbrevs
@setfilename ../../info/abbrevs
@node Abbrevs, Processes, Syntax Tables, Top
@chapter Abbrevs and Abbrev Expansion
@cindex abbrev

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004,
@c 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/advising
@setfilename ../../info/advising
@node Advising Functions, Debugging, Byte Compilation, Top
@chapter Advising Emacs Lisp Functions
@cindex advising functions

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2001, 2002, 2003,
@c 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/backups
@setfilename ../../info/backups
@node Backups and Auto-Saving, Buffers, Files, Top
@chapter Backups and Auto-Saving
@cindex backups and auto-saving

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
@c 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/buffers
@setfilename ../../info/buffers
@node Buffers, Windows, Backups and Auto-Saving, Top
@chapter Buffers
@cindex buffer

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
@c 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/commands
@setfilename ../../info/commands
@node Command Loop, Keymaps, Minibuffers, Top
@chapter Command Loop
@cindex editor command loop
@ -716,7 +716,9 @@ caller to ``pretend'' that the function was called interactively.
@section Information from the Command Loop
The editor command loop sets several Lisp variables to keep status
records for itself and for commands that are run.
records for itself and for commands that are run. With the exception of
@code{this-command} and @code{last-command} it's generally a bad idea to
change any of these variables in a Lisp program.
@defvar last-command
This variable records the name of the previous command executed by the
@ -736,6 +738,12 @@ This variable is set up by Emacs just like @code{last-command},
but never altered by Lisp programs.
@end defvar
@defvar last-repeatable-command
This variable stores the most recently executed command that was not
part of an input event. This is the command @code{repeat} will try to
repeat, @xref{Repeating,,, emacs, The GNU Emacs Manual}.
@end defvar
@defvar this-command
@cindex current command
This variable records the name of the command now being executed by

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2001, 2002, 2003, 2004,
@c 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/compile
@setfilename ../../info/compile
@node Byte Compilation, Advising Functions, Loading, Top
@chapter Byte Compilation
@cindex byte compilation

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
@c 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/control
@setfilename ../../info/control
@node Control Structures, Variables, Evaluation, Top
@chapter Control Structures
@cindex special forms for control structures

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
@c 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/customize
@setfilename ../../info/customize
@node Customization, Loading, Macros, Top
@chapter Writing Customization Definitions

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2001, 2002, 2003,
@c 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/debugging
@setfilename ../../info/debugging
@node Debugging, Read and Print, Advising Functions, Top
@chapter Debugging Lisp Programs

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/display
@setfilename ../../info/display
@node Display, System Interface, Processes, Top
@chapter Emacs Display
@ -1291,6 +1291,11 @@ while moving an overlay or changing its properties does not. Unlike
text property changes, overlay property changes are not recorded in
the buffer's undo list.
Since more than one overlay can specify a property value for the
same character, Emacs lets you specify a priority value of each
overlay. You should not make assumptions about which overlay will
prevail when there is a conflict and they have the same priority.
These functions read and set the properties of an overlay:
@defun overlay-get overlay prop
@ -1321,13 +1326,16 @@ of them:
@item priority
@kindex priority @r{(overlay property)}
This property's value (which should be a nonnegative integer number)
determines the priority of the overlay. The priority matters when two
or more overlays cover the same character and both specify the same
property; the one whose @code{priority} value is larger takes priority
over the other. For the @code{face} property, the higher priority
value does not completely replace the other; instead, its face
attributes override the face attributes of the lower priority
@code{face} property.
determines the priority of the overlay. No priority, or @code{nil},
means zero.
The priority matters when two or more overlays cover the same
character and both specify the same property; the one whose
@code{priority} value is larger overrides the other. For the
@code{face} property, the higher priority overlay's value does not
completely override the other value; instead, its face attributes
override the face attributes of the lower priority @code{face}
property.
Currently, all overlays take priority over text properties. Please
avoid using negative priority values, as we have not yet decided just
@ -2510,7 +2518,7 @@ makes @code{modeline} an alias for the @code{mode-line} face.
@cindex automatic face assignment
@cindex faces, automatic choice
This hook is used for automatically assigning facesto text in the
This hook is used for automatically assigning faces to text in the
buffer. It is part of the implementation of Jit-Lock mode, used by
Font-Lock.
@ -3237,15 +3245,21 @@ to use the value specified by the frame.
insert images into text, and also control other aspects of how text
displays. The value of the @code{display} property should be a
display specification, or a list or vector containing several display
specifications.
specifications. Display specifications generally apply in parallel to
the text they cover.
Some kinds of @code{display} properties specify something to display
instead of the text that has the property. In this case, ``the text''
means all the consecutive characters that have the same Lisp object as
their @code{display} property; these characters are replaced as a
single unit. By contrast, characters that have similar but distinct
Lisp objects as their @code{display} properties are handled
separately. Here's a function that illustrates this point:
Some kinds of @code{display} specifications specify something to
display instead of the text that has the property. If a list of
display specifications includes more than one of this kind, the first
is effective and the rest are ignored. You cannot interactively move
point into the middle of the text that is thus replaced.
For these specifications, ``the text that has the property'' means
all the consecutive characters that have the same Lisp object as their
@code{display} property; these characters are replaced as a single
unit. By contrast, characters that have similar but distinct Lisp
objects as their @code{display} properties are handled separately.
Here's a function that illustrates this point:
@smallexample
(defun foo ()
@ -3273,7 +3287,7 @@ results:
(goto-char (point-min))
(dotimes (i 5)
(let ((string (concat "A")))
(put-text-property (point) (2+ (point)) 'display string)
(put-text-property (point) (+ 2 (point)) 'display string)
(put-text-property (point) (1+ (point)) 'display string)
(forward-char 2))))
@end smallexample

View file

@ -7,7 +7,7 @@
@c Version of the manual and of Emacs.
@c Please remember to update the edition number in README as well.
@set VERSION 2.9
@set EMACSVER 22.1.50
@set EMACSVER 23.0.50
@dircategory Emacs
@direntry

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2001, 2002, 2003, 2004,
@c 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/errors
@setfilename ../../info/errors
@node Standard Errors, Standard Buffer-Local Variables, GNU Emacs Internals, Top
@appendix Standard Errors
@cindex standard errors

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 2001, 2002, 2003,
@c 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/eval
@setfilename ../../info/eval
@node Evaluation, Control Structures, Symbols, Top
@chapter Evaluation
@cindex evaluation

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/files
@setfilename ../../info/files
@node Files, Backups and Auto-Saving, Documentation, Top
@comment node-name, next, previous, up
@chapter Files

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/frames
@setfilename ../../info/frames
@node Frames, Positions, Windows, Top
@chapter Frames
@cindex frame
@ -378,6 +378,14 @@ you don't specify a name, Emacs sets the frame name automatically
If you specify the frame name explicitly when you create the frame, the
name is also used (instead of the name of the Emacs executable) when
looking up X resources for the frame.
@item display-environment-variable
The value of the @code{DISPLAY} environment variable for the frame. It
is passed to child processes.
@item term-environment-variable
The value of the @code{TERM} environment variable for the frame. It
is passed to child processes.
@end table
@node Position Parameters
@ -655,8 +663,17 @@ should be suitable values for the @code{cursor-type} frame parameter.
There are various defaults for how to blink each type of cursor, if
the type is not mentioned as an @var{on-state} here. Changes in this
variable do not take effect immediately, because the variable is
examined only when you specify the @code{cursor-type} parameter.
variable do not take effect immediately, only when you specify the
@code{cursor-type} frame parameter.
@end defvar
@defvar cursor-in-non-selected-windows
This variable controls how the cursor looks in a window that is not
selected. It supports the same values as the @code{cursor-type} frame
parameter; also, @code{nil} means don't display a cursor in
nonselected windows, and @code{t} (the default) means use a standard
modificatoin of the usual cursor type (solid box becomes hollow box,
and bar becomes a narrower bar).
@end defvar
@node Color Parameters

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/functions
@setfilename ../../info/functions
@node Functions, Macros, Variables, Top
@chapter Functions

View file

@ -1,5 +1,5 @@
@c -*-texinfo-*-
@setfilename ../info/gpl
@setfilename ../../info/gpl
@node GPL, Tips, GNU Free Documentation License, Top
@comment node-name, next, previous, up

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005,
@c 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/hash
@setfilename ../../info/hash
@node Hash Tables, Symbols, Sequences Arrays Vectors, Top
@chapter Hash Tables
@cindex hash tables

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/help
@setfilename ../../info/help
@node Documentation, Files, Modes, Top
@chapter Documentation
@cindex documentation strings

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 2001, 2002, 2003, 2004,
@c 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/hooks
@setfilename ../../info/hooks
@node Standard Hooks, Index, Standard Keymaps, Top
@appendix Standard Hooks
@cindex standard hooks

View file

@ -1,5 +1,5 @@
@c -*-texinfo-*-
@setfilename ../info/index
@setfilename ../../info/index
@c Indexing guidelines

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 1999, 2001, 2002, 2003,
@c 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/internals
@setfilename ../../info/internals
@node GNU Emacs Internals, Standard Errors, Tips, Top
@comment node-name, next, previous, up
@appendix GNU Emacs Internals

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2001, 2002, 2003, 2004,
@c 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/intro
@setfilename ../../info/intro
@node Introduction, Lisp Data Types, Top, Top
@comment node-name, next, previous, up

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/keymaps
@setfilename ../../info/keymaps
@node Keymaps, Modes, Command Loop, Top
@chapter Keymaps
@cindex keymap
@ -1512,17 +1512,18 @@ specifies a list of keymaps to search in. This argument is ignored if
This section describes keymaps that are used during reading a key
sequence, to translate certain event sequences into others.
@code{read-key-sequence} checks every subsequence of the key sequence
being read, as it is read, against @code{function-key-map} and then
against @code{key-translation-map}.
being read, as it is read, against @code{input-decode-map}, then
@code{function-key-map}, and then against @code{key-translation-map}.
@defvar input-decode-map
@defvar function-key-map
This variable holds a keymap that describes the character sequences sent
by function keys on an ordinary character terminal. This keymap has the
same structure as other keymaps, but is used differently: it specifies
translations to make while reading key sequences, rather than bindings
for key sequences.
If @code{function-key-map} ``binds'' a key sequence @var{k} to a vector
If @code{input-decode-map} ``binds'' a key sequence @var{k} to a vector
@var{v}, then when @var{k} appears as a subsequence @emph{anywhere} in a
key sequence, it is replaced with the events in @var{v}.
@ -1530,50 +1531,49 @@ For example, VT100 terminals send @kbd{@key{ESC} O P} when the
keypad @key{PF1} key is pressed. Therefore, we want Emacs to translate
that sequence of events into the single event @code{pf1}. We accomplish
this by ``binding'' @kbd{@key{ESC} O P} to @code{[pf1]} in
@code{function-key-map}, when using a VT100.
@code{input-decode-map}, when using a VT100.
Thus, typing @kbd{C-c @key{PF1}} sends the character sequence @kbd{C-c
@key{ESC} O P}; later the function @code{read-key-sequence} translates
this back into @kbd{C-c @key{PF1}}, which it returns as the vector
@code{[?\C-c pf1]}.
Entries in @code{function-key-map} are ignored if they conflict with
bindings made in the minor mode, local, or global keymaps. The intent
is that the character sequences that function keys send should not have
command bindings in their own right---but if they do, the ordinary
bindings take priority.
The value of @code{function-key-map} is usually set up automatically
The value of @code{input-decode-map} is usually set up automatically
according to the terminal's Terminfo or Termcap entry, but sometimes
those need help from terminal-specific Lisp files. Emacs comes with
terminal-specific files for many common terminals; their main purpose is
to make entries in @code{function-key-map} beyond those that can be
to make entries in @code{input-decode-map} beyond those that can be
deduced from Termcap and Terminfo. @xref{Terminal-Specific}.
@end defvar
@defvar function-key-map
This variable holds a keymap similar to @code{input-decode-map} except
that it describes key sequences which should be translated to
alternative interpretations that are usually preferred. It applies
after @code{input-decode-map} and before @code{key-translation-map}.
Entries in @code{function-key-map} are ignored if they conflict with
bindings made in the minor mode, local, or global keymaps. I.e.
the remapping only applies if the original key sequence would
otherwise not have any binding.
@end defvar
@defvar key-translation-map
This variable is another keymap used just like @code{function-key-map}
This variable is another keymap used just like @code{input-decode-map}
to translate input events into other events. It differs from
@code{function-key-map} in two ways:
@code{input-decode-map} in that it goes to work after
@code{function-key-map} is finished rather than before; it receives
the results of translation by @code{function-key-map}.
@itemize @bullet
@item
@code{key-translation-map} goes to work after @code{function-key-map} is
finished; it receives the results of translation by
@code{function-key-map}.
@item
Non-prefix bindings in @code{key-translation-map} override actual key
bindings. For example, if @kbd{C-x f} has a non-prefix binding in
@code{key-translation-map}, that translation takes effect even though
@kbd{C-x f} also has a key binding in the global map.
@end itemize
Note however that actual key bindings can have an effect on
@code{key-translation-map}, even though they are overridden by it.
Indeed, actual key bindings override @code{function-key-map} and thus
may alter the key sequence that @code{key-translation-map} receives.
Clearly, it is better to avoid this type of situation.
Just like @code{input-decode-map}, but unlike @code{function-key-map},
this keymap is applied regardless of whether the input key-sequence
has a normal binding. Note however that actual key bindings can have
an effect on @code{key-translation-map}, even though they are
overridden by it. Indeed, actual key bindings override
@code{function-key-map} and thus may alter the key sequence that
@code{key-translation-map} receives. Clearly, it is better to avoid
this type of situation.
The intent of @code{key-translation-map} is for users to map one
character set to another, including ordinary characters normally bound
@ -1581,7 +1581,8 @@ to @code{self-insert-command}.
@end defvar
@cindex key translation function
You can use @code{function-key-map} or @code{key-translation-map} for
You can use @code{input-decode-map}, @code{function-key-map}, or
@code{key-translation-map} for
more than simple aliases, by using a function, instead of a key
sequence, as the ``translation'' of a key. Then this function is called
to compute the translation of that key.

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/lists
@setfilename ../../info/lists
@node Lists, Sequences Arrays Vectors, Strings and Characters, Top
@chapter Lists
@cindex lists

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/loading
@setfilename ../../info/loading
@node Loading, Byte Compilation, Customization, Top
@chapter Loading
@cindex loading

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2001, 2002, 2003, 2004,
@c 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/locals
@setfilename ../../info/locals
@node Standard Buffer-Local Variables, Standard Keymaps, Standard Errors, Top
@appendix Buffer-Local Variables
@c The title "Standard Buffer-Local Variables" is too long for

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 2001, 2002,
@c 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/macros
@setfilename ../../info/macros
@node Macros, Customization, Functions, Top
@chapter Macros
@cindex macros
@ -365,7 +365,7 @@ whitespace between the @samp{`}, @samp{,} or @samp{,@@} and the
following expression.
This syntax is still accepted, for compatibility with old Emacs
versions, but support for it will soon disappear.
versions, but support for it will be removed in the future.
@node Problems with Macros
@section Common Problems Using Macros

View file

@ -22,8 +22,8 @@
# Standard configure variables.
srcdir = .
infodir = $(srcdir)/../info
usermanualdir = $(srcdir)/../man
infodir = $(srcdir)/../../info
usermanualdir = $(srcdir)/../emacs
# Redefine `TEX' if `tex' does not invoke plain TeX. For example:
# TEX=platex
@ -33,7 +33,7 @@ MAKEINFO = makeinfo --force
# The environment variable and its value to add $(srcdir) to the path
# searched for TeX input files.
texinputdir = $(srcdir)\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" /C
texinputdir = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" /C
# The name of the manual:
VERSION=2.9

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2001, 2002, 2003, 2004,
@c 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/maps
@setfilename ../../info/maps
@node Standard Keymaps, Standard Hooks, Standard Buffer-Local Variables, Top
@appendix Standard Keymaps
@cindex standard keymaps
@ -113,7 +113,7 @@ The sparse keymap that displays the Special Props submenu of the Text
Properties menu.
@item function-key-map
The keymap for translating keypad and function keys.@*
The keymap for translating key sequences to preferred alternatives.@*
If there are none, then it contains an empty sparse keymap.
@xref{Translation Keymaps}.
@ -151,6 +151,11 @@ A sparse keymap used by the @kbd{e} command of Info.
@vindex Info-mode-map
A sparse keymap containing Info commands.
@item input-decode-map
The keymap for translating keypad and function keys.@*
If there are none, then it contains an empty sparse keymap.
@xref{Translation Keymaps}.
@item isearch-mode-map
@vindex isearch-mode-map
A keymap that defines the characters you can type within incremental

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/markers
@setfilename ../../info/markers
@node Markers, Text, Positions, Top
@chapter Markers
@cindex markers

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
@c 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/minibuf
@setfilename ../../info/minibuf
@node Minibuffers, Command Loop, Read and Print, Top
@chapter Minibuffers
@cindex arguments, reading

38
doc/lispref/mkinstalldirs Executable file
View file

@ -0,0 +1,38 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain
errstatus=0
for file
do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d
do
pathcomp="$pathcomp$d"
case "$pathcomp" in
-* ) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp" 1>&2
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
fi
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# mkinstalldirs ends here

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/modes
@setfilename ../../info/modes
@node Modes, Documentation, Keymaps, Top
@chapter Major and Minor Modes
@cindex mode

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004,
@c 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/characters
@setfilename ../../info/characters
@node Non-ASCII Characters, Searching and Matching, Text, Top
@chapter Non-@acronym{ASCII} Characters
@cindex multibyte characters

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/numbers
@setfilename ../../info/numbers
@node Numbers, Strings and Characters, Lisp Data Types, Top
@chapter Numbers
@cindex integers

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/objects
@setfilename ../../info/objects
@node Lisp Data Types, Numbers, Introduction, Top
@chapter Lisp Data Types
@cindex object

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/os
@setfilename ../../info/os
@node System Interface, Antinews, Display, Top
@chapter Operating System Interface
@ -279,7 +279,7 @@ trying the @samp{.elc} and @samp{.el} suffixes.
@cindex Termcap
The usual function of a terminal-specific library is to enable
special keys to send sequences that Emacs can recognize. It may also
need to set or add to @code{function-key-map} if the Termcap or
need to set or add to @code{input-decode-map} if the Termcap or
Terminfo entry does not specify all the terminal's function keys.
@xref{Terminal Input}.

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/positions
@setfilename ../../info/positions
@node Positions, Markers, Frames, Top
@chapter Positions
@cindex position (in buffer)

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/processes
@setfilename ../../info/processes
@node Processes, Display, Abbrevs, Top
@chapter Processes
@cindex child process
@ -2062,7 +2062,8 @@ That particular network option is supported by
@section Misc Network Facilities
These additional functions are useful for creating and operating
on network connections.
on network connections. Note that they are supported only on some
systems.
@defun network-interface-list
This function returns a list describing the network interfaces

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/searching
@setfilename ../../info/searching
@node Searching and Matching, Syntax Tables, Non-ASCII Characters, Top
@chapter Searching and Matching
@cindex searching

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/sequences
@setfilename ../../info/sequences
@node Sequences Arrays Vectors, Hash Tables, Lists, Top
@chapter Sequences, Arrays, and Vectors
@cindex sequence

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2001, 2002,
@c 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/streams
@setfilename ../../info/streams
@node Read and Print, Minibuffers, Debugging, Top
@comment node-name, next, previous, up
@chapter Reading and Printing Lisp Objects

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/strings
@setfilename ../../info/strings
@node Strings and Characters, Lists, Numbers, Top
@comment node-name, next, previous, up
@chapter Strings and Characters

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/symbols
@setfilename ../../info/symbols
@node Symbols, Evaluation, Hash Tables, Top
@chapter Symbols
@cindex symbol

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/syntax
@setfilename ../../info/syntax
@node Syntax Tables, Abbrevs, Searching and Matching, Top
@chapter Syntax Tables
@cindex parsing buffer text

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/text
@setfilename ../../info/text
@node Text, Non-ASCII Characters, Markers, Top
@chapter Text
@cindex text
@ -1453,6 +1453,12 @@ The variable @code{paragraph-separate} controls how to distinguish
paragraphs. @xref{Standard Regexps}.
@end deffn
@deffn Command fill-paragraph-or-region justify
In Transient Mark mode, when the mark is active, this command calls
@code{fill-region} on the active region. Otherwise, it calls
@code{fill-paragraph}.
@end deffn
@deffn Command fill-individual-paragraphs start end &optional justify citation-regexp
This command fills each paragraph in the region according to its
individual fill prefix. Thus, if the lines of a paragraph were indented

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2001, 2002,
@c 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/tips
@setfilename ../../info/tips
@node Tips, GNU Emacs Internals, GPL, Top
@appendix Tips and Conventions
@cindex tips for writing Lisp

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000,
@c 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/variables
@setfilename ../../info/variables
@node Variables, Functions, Control Structures, Top
@chapter Variables
@cindex variable

View file

@ -3,7 +3,7 @@
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/windows
@setfilename ../../info/windows
@node Windows, Frames, Buffers, Top
@chapter Windows
@ -55,15 +55,11 @@ multiple nonoverlapping Emacs windows.
In each frame, at any time, one and only one window is designated as
@dfn{selected within the frame}. The frame's cursor appears in that
window, but the other windows have ``non-selected'' cursors, normally
less visible. At any time, one frame is the selected frame; and the
window selected within that frame is @dfn{the selected window}. The
selected window's buffer is usually the current buffer (except when
@code{set-buffer} has been used). @xref{Current Buffer}.
@defvar cursor-in-non-selected-windows
If this variable is @code{nil}, Emacs displays only one cursor,
in the selected window. Other windows have no cursor at all.
@end defvar
less visible. (@pxref{Cursor Parameters}, for customization of this.)
At any time, one frame is the selected frame; and the window selected
within that frame is @dfn{the selected window}. The selected window's
buffer is usually the current buffer (except when @code{set-buffer}
has been used). @xref{Current Buffer}.
For practical purposes, a window exists only while it is displayed in
a frame. Once removed from the frame, the window is effectively deleted
@ -2246,13 +2242,13 @@ similar to the value returned by @code{window-edges}.
@cindex saving window information
A @dfn{window configuration} records the entire layout of one
frame---all windows, their sizes, which buffers they contain, what
part of each buffer is displayed, and the values of point and the
mark; also their fringes, margins, and scroll bar settings. It also
frame---all windows, their sizes, which buffers they contain, how
those buffers are scrolled, and their values of point and the mark;
also their fringes, margins, and scroll bar settings. It also
includes the values of @code{window-min-height},
@code{window-min-width} and @code{minibuffer-scroll-window}. An
exception is made for point in the selected window for the current
buffer; its value is not saved in the window configuration.
@code{window-min-width} and @code{minibuffer-scroll-window}. As a
special exception, the window configuration does not record the value
of point in the selected window for the current buffer.
You can bring back an entire previous layout by restoring a window
configuration previously saved. If you want to record all frames

Some files were not shown because too many files have changed in this diff Show more