X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/321cc491c5843ee3af86570d5b2d59b98ba0c422..34dabdb7701594b83a5b35b034bba55855d256a5:/doc/lispref/elisp.texi diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index a87a7ff3fa..caa5185dec 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -1,20 +1,71 @@ \input texinfo @c -*-texinfo-*- @c %**start of header @setfilename elisp + +@ifset VOL1 +@set volflag +@set voltitle Volume 1 +@end ifset + +@ifset VOL2 +@set volflag +@set voltitle Volume 2 +@end ifset + +@ifset volflag +@settitle GNU Emacs Lisp Reference Manual: @value{voltitle} +@end ifset +@ifclear volflag @settitle GNU Emacs Lisp Reference Manual +@end ifclear + @c %**end of header +@c See two-volume-cross-refs.txt. +@tex +@ifset VOL1 +\message{Formatting for two volume edition...Volume 1...} +% +% Read special toc file, set up in two-volume.make. +\gdef\tocreadfilename{elisp1-toc-ready.toc} +% +% Don't make outlines, they're not needed and \readdatafile can't pay +% attention to the special definition above. +\global\let\pdfmakeoutlines=\relax +% +% Start volume 1 chapter numbering at 1; this must be listed as chapno0. +\global\chapno=0 +@end ifset +@ifset VOL2 +\message{Formatting for two volume edition...Volume 2...} +% +% Read special toc file, set up in two-volume.make. +\gdef\tocreadfilename{elisp2-toc-ready.toc} +% +% Don't make outlines, they're not needed and \readdatafile can't pay +% attention to the special definition above. +\global\let\pdfmakeoutlines=\relax +% +% Start volume 2 chapter numbering at 27; this must be listed as chapno26 +\global\chapno=26 +@end ifset +@end tex + + @c Version of the manual and of Emacs. -@c Please remember to update the edition number in README as well. -@c And also the copies in vol1.texi and vol2.texi. -@set VERSION 3.0 +@c (See comments for EDITION in emacs.texi) +@set VERSION 3.1 @include emacsver.texi -@set DATE July 2009 +@set DATE May 2012 @c in general, keep the following line commented out, unless doing a @c copy of this manual that will be published. The manual should go @c onto the distribution in the full, 8.5 x 11" size. -@c @smallbook +@c @set smallbook + +@ifset volflag +@smallbook +@end ifset @ifset smallbook @smallbook @@ -26,8 +77,6 @@ @tex @ifset smallbook @fonttextsize 10 -\global\let\urlcolor=\Black % don't print links in grayscale -\global\let\linkcolor=\Black @end ifset \global\hbadness=6666 % don't worry about not-too-underfull boxes @end tex @@ -41,7 +90,12 @@ @c @syncodeindex tp fn @copying -This is edition @value{VERSION} of the GNU Emacs Lisp Reference Manual,@* +@iftex +This is edition @value{VERSION} of the @cite{GNU Emacs Lisp Reference Manual},@* +@end iftex +@ifnottex +This is the @cite{GNU Emacs Lisp Reference Manual} +@end ifnottex corresponding to Emacs version @value{EMACSVER}. Copyright @copyright{} 1990-1996, 1998-2012 Free Software Foundation, Inc. @@ -70,11 +124,14 @@ developing GNU and promoting software freedom.'' @titlepage @title GNU Emacs Lisp Reference Manual +@ifset volflag +@subtitle @value{voltitle} +@end ifset @subtitle For Emacs Version @value{EMACSVER} @subtitle Revision @value{VERSION}, @value{DATE} -@author by Bil Lewis, Dan LaLiberte, Richard Stallman -@author and the GNU Manual Group +@author by Bil Lewis, Dan LaLiberte, Richard Stallman, +@author the GNU Manual Group, et al. @page @vskip 0pt plus 1filll @insertcopying @@ -97,13 +154,12 @@ Cover art by Etienne Suvasa. @ifnottex -@node Top, Introduction, (dir), (dir) +@node Top @top Emacs Lisp @insertcopying @end ifnottex -@c Copy any updates to vol1.texi and vol2.texi. @menu * Introduction:: Introduction and conventions used. @@ -123,7 +179,7 @@ Cover art by Etienne Suvasa. * Functions:: A function is a Lisp program that can be invoked from other functions. * Macros:: Macros are a way to extend the Lisp language. -* Customization:: Writing customization declarations. +* Customization:: Making variables and faces customizable. * Loading:: Reading files of Lisp code into Lisp. * Byte Compilation:: Compilation makes programs run faster. @@ -163,7 +219,7 @@ Cover art by Etienne Suvasa. Appendices -* Antinews:: Info for users downgrading to Emacs 22. +* Antinews:: Info for users downgrading to Emacs 23. * 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. @@ -184,7 +240,6 @@ Appendices @c be correctly identified by `texinfo-multiple-files-update'. In @c particular, the detailed menu header line MUST be identical to the @c value of `texinfo-master-menu-header'. See texnfo-upd.el. -@c Copy any updates to vol1.texi and vol2.texi. @detailmenu --- The Detailed Node Listing --- @@ -199,7 +254,7 @@ Introduction * Lisp History:: Emacs Lisp is descended from Maclisp. * Conventions:: How the manual is formatted. * Version Info:: Which Emacs version is running? -* Acknowledgements:: The authors, editors, and sponsors of this manual. +* Acknowledgments:: The authors, editors, and sponsors of this manual. Conventions @@ -460,7 +515,7 @@ Functions * Closures:: Functions that enclose a lexical environment. * Obsolete Functions:: Declaring functions obsolete. * Inline Functions:: Defining functions that the compiler - will open code. + will expand inline. * Declaring Functions:: Telling the compiler that a function is defined. * Function Safety:: Determining whether a function is safe to call. * Related Topics:: Cross-references to specific Lisp primitives @@ -493,13 +548,15 @@ Common Problems Using Macros * Eval During Expansion:: Don't evaluate them; put them in the expansion. * Repeated Expansion:: Avoid depending on how many times expansion is done. -Writing Customization Definitions +Customization Settings * Common Keywords:: Common keyword arguments for all kinds of customization declarations. * Group Definitions:: Writing customization group definitions. * Variable Definitions:: Declaring user options. * Customization Types:: Specifying the type of a user option. +* Applying Customizations:: Functions to apply customization settings. +* Custom Themes:: Writing Custom themes. Customization Types @@ -635,8 +692,8 @@ Minibuffers * Multiple Queries:: Asking a series of similar questions. * Reading a Password:: Reading a password from the terminal. * Minibuffer Commands:: Commands used as key bindings in minibuffers. -* Minibuffer Contents:: How such commands access the minibuffer text. * Minibuffer Windows:: Operating on the special minibuffer windows. +* Minibuffer Contents:: How such commands access the minibuffer text. * Recursive Mini:: Whether recursive entry to minibuffer is allowed. * Minibuffer Misc:: Various customization hooks and variables. @@ -646,7 +703,7 @@ Completion * Minibuffer Completion:: Invoking the minibuffer with completion. * Completion Commands:: Minibuffer commands that do completion. * High-Level Completion:: Convenient special cases of completion - (reading buffer name, file name, etc.). + (reading buffer names, variable names, etc.). * Reading File Names:: Using completion to read file names and shell commands. * Completion Variables:: Variables controlling completion behavior. @@ -752,6 +809,7 @@ Defining Menus various features. * Menu Separators:: Drawing a horizontal line through a menu. * Alias Menu Items:: Using command aliases in menu items. +* Toolkit Differences:: Not all toolkits provide the same features. Major and Minor Modes @@ -822,6 +880,21 @@ Multiline Font Lock Constructs * Region to Refontify:: Controlling which region gets refontified after a buffer change. +Automatic Indentation of code + +* SMIE:: A simple minded indentation engine. + +Simple Minded Indentation Engine + +* SMIE setup:: SMIE setup and features. +* Operator Precedence Grammars:: A very simple parsing technique. +* SMIE Grammar:: Defining the grammar of a language. +* SMIE Lexer:: Defining tokens. +* SMIE Tricks:: Working around the parser's limitations. +* SMIE Indentation:: Specifying indentation rules. +* SMIE Indentation Helpers:: Helper functions for indentation rules. +* SMIE Indentation Example:: Sample indentation rules. + Documentation * Documentation Basics:: Where doc strings are defined and stored. @@ -1050,9 +1123,9 @@ Text * Case Changes:: Case conversion of parts of the buffer. * Text Properties:: Assigning Lisp property lists to text characters. * Substitution:: Replacing a given character wherever it appears. -* Transposition:: Swapping two portions of a buffer. * Registers:: How registers are implemented. Accessing the text or position stored in a register. +* Transposition:: Swapping two portions of a buffer. * Base 64:: Conversion to or from base 64 encoding. * Checksum/Hash:: Computing cryptographic hashes. * Parsing HTML/XML:: Parsing HTML and XML. @@ -1168,7 +1241,6 @@ Syntax Tables * Motion and Syntax:: Moving over characters with certain syntaxes. * Parsing Expressions:: Parsing balanced expressions using the syntax table. -* Standard Syntax Tables:: Syntax tables used by various major modes. * Syntax Table Internals:: How syntax table information is stored. * Categories:: Another way of classifying character syntax. @@ -1218,8 +1290,7 @@ Processes * Datagrams:: UDP network connections. * Low-Level Network:: Lower-level but more general function to create connections and servers. -* Misc Network:: Additional relevant functions for - network connections. +* Misc Network:: Additional relevant functions for net connections. * Serial Ports:: Communicating with serial ports. * Byte Packing:: Using bindat to pack and unpack binary data. @@ -1295,7 +1366,7 @@ Overlays Faces -* Defining Faces:: How to define a face with @code{defface}. +* Defining Faces:: How to define a face. * Face Attributes:: What is in a face? * Attribute Functions:: Functions to examine and set face attributes. * Displaying Faces:: How Emacs combines the faces specified for @@ -1339,6 +1410,7 @@ Images * GIF Images:: Special features for GIF format. * TIFF Images:: Special features for TIFF format. * PostScript Images:: Special features for PostScript format. +* ImageMagick Images:: Special features available through ImageMagick. * Other Image Types:: Various other formats are supported. * Defining Images:: Convenient ways to define an image for later use. * Showing Images:: Convenient ways to display an image once @@ -1394,13 +1466,6 @@ Operating System Interface * Notifications:: Desktop notifications. * Dynamic Libraries:: On-demand loading of support libraries. -Preparing Lisp code for distribution - -* Packaging Basics:: The basic concepts of Emacs Lisp packages. -* Simple Packages:: How to package a single .el file. -* Multi-file Packages:: How to package multiple files. -* Package Archives:: Maintaining package archives. - Starting Up Emacs * Startup Summary:: Sequence of actions Emacs performs at startup. @@ -1419,6 +1484,13 @@ Terminal Input * Input Modes:: Options for how input is processed. * Recording Input:: Saving histories of recent or all input events. +Preparing Lisp code for distribution + +* Packaging Basics:: The basic concepts of Emacs Lisp packages. +* Simple Packages:: How to package a single .el file. +* Multi-file Packages:: How to package multiple files. +* Package Archives:: Maintaining package archives. + Tips and Conventions * Coding Conventions:: Conventions for clean and robust programs. @@ -1447,6 +1519,7 @@ Object Internals @end detailmenu @end menu +@ifclear VOL2 @include intro.texi @include objects.texi @include numbers.texi @@ -1480,6 +1553,12 @@ Object Internals @include files.texi @include backups.texi + +@end ifclear + +@c ================ Beginning of Volume 2 ================ +@ifclear VOL1 + @include buffers.texi @include windows.texi @include frames.texi @@ -1499,12 +1578,8 @@ Object Internals @include package.texi -@c MOVE to Emacs Manual: include misc-modes.texi - @c appendices -@c REMOVE this: include non-hacker.texi - @include anti.texi @include doclicense.texi @include gpl.texi @@ -1516,8 +1591,10 @@ Object Internals @include index.texi +@end ifclear + @ignore -@node New Symbols, , Index, Top +@node New Symbols @unnumbered New Symbols Since the Previous Edition @printindex tp