X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/a4776185ab4499af39dda16274b98bea006c95f9..332c6d4e066cdaa8483a0d80eb48195189aa82ab:/lispref/elisp.texi diff --git a/lispref/elisp.texi b/lispref/elisp.texi index 69dfe2be5f..894ebb20df 100644 --- a/lispref/elisp.texi +++ b/lispref/elisp.texi @@ -4,7 +4,10 @@ @settitle GNU Emacs Lisp Reference Manual @c %**end of header -@dircategory Editors +@c Versino of the manual. +@set VERSION 2.9 + +@dircategory Emacs @direntry * Elisp: (elisp). The Emacs Lisp Reference Manual. @end direntry @@ -22,25 +25,25 @@ @c @syncodeindex tp fn @ifnottex -This Info file contains edition 2.6 of the GNU Emacs Lisp -Reference Manual, corresponding to Emacs version 21.1. +This Info file contains edition @value{VERSION} of the GNU Emacs Lisp +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 and GNU Free Documentation License, the -Front-Cover texts being ``A GNU Manual'', and with the Back-Cover Texts -being (a) (see below). A copy of the license is included in the section -entitled ``GNU Free Documentation License''. +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''. (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free @@ -49,22 +52,22 @@ Software Foundation raise funds for GNU development.'' @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 2.6, September 1999 +@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 2.6 @* -Revised for Emacs Version 21.1,@* -September 1999.@* +Edition @value{VERSION} @* +Revised for Emacs Version 22.1,@* +January 2002.@* @sp 2 ISBN 1-882114-73-6 @@ -76,10 +79,10 @@ Boston, MA 02111-1307 USA 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 and GNU Free Documentation License, the -Front-Cover texts being ``A GNU Manual'', and with the Back-Cover Texts -being (a) (see below). A copy of the license is included in the section -entitled ``GNU Free Documentation License''. +Invariant Sections being ``Copying'', 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''. (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free @@ -89,15 +92,14 @@ Cover art by Etienne Suvasa. @end titlepage @page -@node Top, Copying, (dir), (dir) +@node Top, Introduction, (dir), (dir) @ifnottex -This Info file contains edition 2.6 of the GNU Emacs Lisp -Reference Manual, corresponding to GNU Emacs version 21.1. +This Info file contains edition @value{VERSION} of the GNU Emacs Lisp +Reference Manual, corresponding to GNU Emacs version 22.1. @end ifnottex @menu -* Copying:: Conditions for copying and changing GNU Emacs. * Introduction:: Introduction and conventions used. * Standards: Coding Conventions. Coding conventions for Emacs Lisp. @@ -149,14 +151,15 @@ Reference Manual, corresponding to GNU Emacs version 21.1. * Abbrevs:: How Abbrev mode works, and its data structures. * Processes:: Running and communicating with subprocesses. +* Display:: Features for controlling the screen display. * System Interface:: Getting the user id, system type, environment variables, and other such things. -* Display:: Features for controlling the screen display. -* Calendar:: Customizing the calendar and diary. Appendices * Antinews:: Info for users downgrading to Emacs 20. +* GNU Free Documentation License:: The license for this documentation +* GPL:: Conditions for copying and changing GNU Emacs. * Tips:: Advice and coding conventions for Emacs Lisp. * GNU Emacs Internals:: Building and dumping Emacs; internal data structures. @@ -169,7 +172,7 @@ Appendices * 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 --- @@ -203,8 +206,8 @@ Tips and Conventions Format of Descriptions -* A Sample Function Description:: -* A Sample Variable Description:: +* A Sample Function Description:: +* A Sample Variable Description:: Lisp Data Types @@ -277,7 +280,6 @@ Strings and Characters 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. @@ -313,7 +315,7 @@ Evaluation * 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 @@ -366,11 +368,11 @@ Variables 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 @@ -388,11 +390,11 @@ Functions * 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 @@ -411,13 +413,20 @@ Macros * 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 @@ -434,17 +443,17 @@ Advising Functions * 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. @@ -463,10 +472,10 @@ Debugging Invalid Lisp Syntax 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. @@ -522,7 +531,7 @@ Keymaps * Inheritance and Keymaps:: How one keymap can inherit the bindings of another keymap. * Prefix Keys:: Defining a key with a keymap as its definition. -* Menu Keymaps:: A keymap can define a menu for X windows +* Menu Keymaps:: A keymap can define a menu for X or for use from the terminal. * Active Keymaps:: Each buffer has a local keymap to override the standard (global) bindings. @@ -530,6 +539,7 @@ Keymaps * 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. @@ -538,7 +548,7 @@ Major and Minor Modes * 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 @@ -598,7 +608,7 @@ File Names * 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. @@ -606,17 +616,17 @@ File Names 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. @@ -650,7 +660,7 @@ Windows 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. @@ -706,7 +716,7 @@ Markers * 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''. @@ -734,12 +744,16 @@ Text * 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. @@ -766,6 +780,10 @@ Text Properties them back. * Lazy Properties:: Computing text properties in a lazy fashion only when text is examined. +* Clickable Text:: Using text properties to make regions of text + do something when you click on them. +* Fields:: The @code{field} property defines + fields within the buffer. * Not Intervals:: Why text properties do not use Lisp-visible text intervals. @@ -784,7 +802,7 @@ Non-ASCII Characters * Translation of Characters:: Translation tables are used for conversion. * Coding Systems:: Coding systems are conversions for saving files. * Input Methods:: Input methods allow users to enter various - non-ASCII characters without speciak keyboards. + non-ASCII characters without special keyboards. * Locales:: Interacting with the POSIX locale. Searching and Matching @@ -844,6 +862,7 @@ Receiving Output from Processes * 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 @@ -853,7 +872,6 @@ 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 @@ -874,12 +892,21 @@ Emacs Display * 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. @@ -945,7 +972,6 @@ Object Internals @include processes.texi @include display.texi -@include calendar.texi @include os.texi @c MOVE to Emacs Manual: include misc-modes.texi @@ -955,6 +981,8 @@ Object Internals @c REMOVE this: include non-hacker.texi @include anti.texi +@include doclicense.texi +@include gpl.texi @include tips.texi @include internals.texi @include errors.texi @@ -978,3 +1006,7 @@ Object Internals These words prevent "local variables" above from confusing Emacs. + +@ignore + arch-tag: f7e9a219-a0e1-4776-b631-08eaa1d49b34 +@end ignore