@c %**end of header
@c Versino of the manual.
-@set VERSION 2.8
+@set VERSION 2.9
@dircategory Emacs
@direntry
@ifnottex
This Info file contains edition @value{VERSION} of the GNU Emacs Lisp
-Reference Manual, corresponding to Emacs version 21.1.
+Reference Manual, corresponding to Emacs version 22.1.
@c Please REMEMBER to update edition number in *four* places in this file
-@c and also in *one* place in intro.texi
+@c and also in *one* place in intro.texi and *one* in README.
Published by the Free Software Foundation
59 Temple Place, Suite 330
Boston, MA 02111-1307 USA
-Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000
- Free Software Foundation, Inc.
+Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2005,@*
+ 2000, 2002 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation; with the
-Invariant Sections being ``Copying'', with the Front-Cover texts being
+Invariant Sections being ``GNU General Public License'', with the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below. A copy
of the license is included in the section entitled ``GNU Free
Documentation License''.
@titlepage
@title GNU Emacs Lisp Reference Manual
-@subtitle For Emacs Version 21
+@subtitle For Emacs Version 22
@c The edition number appears in several places in this file
@c and also in the file intro.texi.
-@subtitle Revision @value{VERSION}, May 2000
+@subtitle Revision @value{VERSION}, January 2002
@author by Bil Lewis, Dan LaLiberte, Richard Stallman
@author and the GNU Manual Group
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000
-Free Software Foundation, Inc.
+Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,@*
+1999, 2000, 2002 Free Software Foundation, Inc.
@sp 2
Edition @value{VERSION} @*
-Revised for Emacs Version 21.1,@*
-May 2000.@*
+Revised for Emacs Version 22.1,@*
+January 2002.@*
@sp 2
ISBN 1-882114-73-6
@ifnottex
This Info file contains edition @value{VERSION} of the GNU Emacs Lisp
-Reference Manual, corresponding to GNU Emacs version 21.1.
+Reference Manual, corresponding to GNU Emacs version 22.1.
@end ifnottex
@menu
* Processes:: Running and communicating with subprocesses.
* Display:: Features for controlling the screen display.
-* Calendar:: Customizing the calendar and diary.
* System Interface:: Getting the user id, system type, environment
variables, and other such things.
* Index:: Index including concepts, functions, variables,
and other terms.
-* New Symbols:: New functions and variables in Emacs 21.
+* New Symbols:: New functions and variables in Emacs 22.
--- The Detailed Node Listing ---
Format of Descriptions
-* A Sample Function Description::
-* A Sample Variable Description::
+* A Sample Function Description::
+* A Sample Variable Description::
Lisp Data Types
Lists
* Cons Cells:: How lists are made out of cons cells.
-* Lists as Boxes:: Graphical notation to explain lists.
* List-related Predicates:: Is this object a list? Comparing two lists.
* List Elements:: Extracting the pieces of a list.
* Building Lists:: Creating list structure.
* Intro Eval:: Evaluation in the scheme of things.
* Eval:: How to invoke the Lisp interpreter explicitly.
* Forms:: How various sorts of objects are evaluated.
-* Quoting:: Avoiding evaluation (to put constants in
+* Quoting:: Avoiding evaluation (to put constants in
the program).
Kinds of Forms
Scoping Rules for Variable Bindings
-* Scope:: Scope means where in the program a value
+* Scope:: Scope means where in the program a value
is visible. Comparison with other languages.
* Extent:: Extent means how long in time a value exists.
* Impl of Scope:: Two ways to implement dynamic scoping.
-* Using Scoping:: How to use dynamic scoping carefully and
+* Using Scoping:: How to use dynamic scoping carefully and
avoid problems.
Buffer-Local Variables
* Defining Functions:: Lisp expressions for defining functions.
* Calling Functions:: How to use an existing function.
* Mapping Functions:: Applying a function to each element of a list, etc.
-* Anonymous Functions:: Lambda-expressions are functions with no names.
+* Anonymous Functions:: Lambda-expressions are functions with no names.
* Function Cells:: Accessing or setting the function definition
of a symbol.
* Related Topics:: Cross-references to specific Lisp primitives
- that have a special bearing on how
+ that have a special bearing on how
functions work.
Lambda Expressions
* Backquote:: Easier construction of list structure.
* Problems with Macros:: Don't evaluate the macro arguments too many times.
Don't hide the user's variables.
+* Indenting Macros:: Specifying how to indent macro calls.
Loading
* How Programs Do Loading:: The @code{load} function and others.
+* Library Search:: Finding a library to load.
+* Loading Non-ASCII:: Non-@acronym{ASCII} characters in Emacs Lisp files.
* Autoload:: Setting up a function to autoload.
-* Named Features:: Loading a library if it isn't already loaded.
* Repeated Loading:: Precautions about loading a file twice.
+* Named Features:: Loading a library if it isn't already loaded.
+* Where Defined:: Finding which file defined a certain symbol.
+* Unloading:: How to ``unload'' a library that was loaded.
+* Hooks for Loading:: Providing code to be run when
+ particular libraries are loaded.
Byte Compilation
* Preactivation:: Preactivation is a way of speeding up the
loading of compiled advice.
* Argument Access in Advice:: How advice can access the function's arguments.
-* Subr Arguments:: Accessing arguments when advising a primitive.
+* Advising Primitives:: Accessing arguments when advising a primitive.
* Combined Definition:: How advice is implemented.
Debugging Lisp Programs
* Debugger:: How the Emacs Lisp debugger is implemented.
* Syntax Errors:: How to find syntax errors.
-* Compilation Errors:: How to find errors that show up in
+* Compilation Errors:: How to find errors that show up in
byte compilation.
* Edebug:: A source-level Emacs Lisp debugger.
-
+
The Lisp Debugger
* Error Debugging:: Entering the debugger when an error happens.
Reading and Printing Lisp Objects
* Streams Intro:: Overview of streams, reading and printing.
-* Input Streams:: Various data types that can be used as
+* Input Streams:: Various data types that can be used as
input streams.
* Input Functions:: Functions to read Lisp objects from text.
-* Output Streams:: Various data types that can be used as
+* Output Streams:: Various data types that can be used as
output streams.
* Output Functions:: Functions to print Lisp objects as text.
* Key Lookup:: How extracting elements from keymaps works.
* Functions for Key Lookup:: How to request key lookup.
* Changing Key Bindings:: Redefining a key in a keymap.
+* Remapping Commands:: Bindings that translate one command to another.
* Key Binding Commands:: Interactive interfaces for redefining keys.
* Scanning Keymaps:: Looking through all keymaps, for printing help.
* Major Modes:: Defining major modes.
* Minor Modes:: Defining minor modes.
* Mode Line Format:: Customizing the text that appears in the mode line.
-* Hooks:: How to use hooks; how to write code that
+* Hooks:: How to use hooks; how to write code that
provides hooks.
Major Modes
* File Name Components:: The directory part of a file name, and the rest.
* Directory Names:: A directory's name as a directory
is different from its name as a file.
-* Relative File Names:: Some file names are relative to a
+* Relative File Names:: Some file names are relative to a
current directory.
* File Name Expansion:: Converting relative file names to absolute ones.
* Unique File Names:: Generating names for temporary files.
Backups and Auto-Saving
-* Backup Files:: How backup files are made; how their names
+* Backup Files:: How backup files are made; how their names
are chosen.
* Auto-Saving:: How auto-save files are made; how their
names are chosen.
-* Reverting:: @code{revert-buffer}, and how to customize
+* Reverting:: @code{revert-buffer}, and how to customize
what it does.
Backup Files
* Making Backups:: How Emacs makes backup files, and when.
-* Rename or Copy:: Two alternatives: renaming the old file
+* Rename or Copy:: Two alternatives: renaming the old file
or copying it.
* Numbered Backups:: Keeping multiple backups for each source file.
* Backup Names:: How backup file names are computed; customization.
and choosing a window for it.
* Window Point:: Each window has its own location of point.
* Window Start:: The display-start position controls which text
- is on-screen in the window.
+ is on-screen in the window.
* Vertical Scrolling:: Moving text up and down in the window.
* Horizontal Scrolling:: Moving text sideways on the window.
* Size of Window:: Accessing the size of a window.
* Predicates on Markers:: Testing whether an object is a marker.
* Creating Markers:: Making empty markers or markers at certain places.
* Information from Markers:: Finding the marker's buffer or character
- position.
+ position.
* Moving Markers:: Moving the marker to a new buffer or position.
* The Mark:: How ``the mark'' is implemented with a marker.
* The Region:: How to access ``the region''.
* Transposition:: Swapping two portions of a buffer.
* Registers:: How registers are implemented. Accessing
the text or position stored in a register.
+* Atomic Changes:: Installing several buffer changes ``atomically''.
+* Base 64:: Conversion to or from base 64 encoding.
+* MD5 Checksum:: Compute the MD5 ``message digest''/``checksum''.
* Change Hooks:: Supplying functions to be run when text is changed.
-
+
The Kill Ring
* Kill Ring Concepts:: What text looks like in the kill ring.
* Kill Functions:: Functions that kill text.
+* Yanking:: How yanking is done.
* Yank Commands:: Commands that access the kill ring.
* Low-Level Kill Ring:: Functions and variables for kill ring access.
* Internals of Kill Ring:: Variables that hold kill-ring data.
* Process Buffers:: If no filter, output is put in a buffer.
* Filter Functions:: Filter functions accept output from the process.
+* Decoding Output:: Filters can get unibyte or multibyte strings.
* Accepting Output:: How to wait until process output arrives.
Operating System Interface
* System Environment:: Distinguish the name and kind of system.
* Terminal Input:: Recording terminal input for debugging.
* Terminal Output:: Recording terminal output for debugging.
-* Flow Control:: How to turn output flow control on or off.
* Batch Mode:: Running Emacs without terminal interaction.
Starting Up Emacs
* Refresh Screen:: Clearing the screen and redrawing everything on it.
* Truncation:: Folding or wrapping long text lines.
* The Echo Area:: Where messages are displayed.
+* Warnings:: Displaying warning messages for the user.
* Selective Display:: Hiding part of the buffer text.
* Overlay Arrow:: Display of an arrow to indicate position.
* Temporary Displays:: Displays that go away automatically.
-* Waiting:: Forcing display update and waiting for user.
+* Overlays:: Use overlays to highlight parts of the buffer.
+* Width:: How wide a character or string is on the screen.
+* Faces:: A face defines a graphics style
+ for text characters: font, colors, etc.
+* Fringes:: Controlling window fringes.
+* Display Property:: Enabling special display features.
+* Images:: Displaying images in Emacs buffers.
* Blinking:: How Emacs shows the matching open parenthesis.
-* Usual Display:: How control characters are displayed.
+* Inverse Video:: Specifying how the screen looks.
+* Usual Display:: The usual conventions for displaying nonprinting chars.
+* Display Tables:: How to specify other conventions.
* Beeping:: Audible signal to the user.
* Window Systems:: Which window system is being used.
@include processes.texi
@include display.texi
-@include calendar.texi
@include os.texi
@c MOVE to Emacs Manual: include misc-modes.texi
\f
These words prevent "local variables" above from confusing Emacs.
+
+@ignore
+ arch-tag: f7e9a219-a0e1-4776-b631-08eaa1d49b34
+@end ignore