X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/f4fcb10303e21d4a0526e070f7951b789c781b9f..cd950da:/doc/lispref/elisp.texi diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index cdc443f07d..4c1541e98c 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -18,6 +18,7 @@ @ifclear volflag @settitle GNU Emacs Lisp Reference Manual @end ifclear +@include docstyle.texi @c %**end of header @@ -98,7 +99,7 @@ This is the @cite{GNU Emacs Lisp Reference Manual} @end ifnottex corresponding to Emacs version @value{EMACSVER}. -Copyright @copyright{} 1990--1996, 1998--2015 Free Software Foundation, Inc. +Copyright @copyright{} 1990--1996, 1998--2016 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -115,8 +116,6 @@ developing GNU and promoting software freedom.'' @end quotation @end copying -@documentencoding UTF-8 - @dircategory Emacs lisp @direntry * Elisp: (elisp). The Emacs Lisp Reference Manual. @@ -247,9 +246,9 @@ Appendices @end ignore @c Do NOT modify the following 3 lines! They must have this form to -@c be correctly identified by `texinfo-multiple-files-update'. In +@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 value of 'texinfo-master-menu-header'. See texnfo-upd.el. @detailmenu --- The Detailed Node Listing --- @@ -316,6 +315,7 @@ Programming Types * Byte-Code Type:: A function written in Lisp, then compiled. * Autoload Type:: A type used for automatically loading seldom-used functions. +* Finalizer Type:: Runs code when no longer reachable. Character Type @@ -453,7 +453,7 @@ Kinds of Forms we find the real function via the symbol. * Function Forms:: Forms that call functions. * Macro Forms:: Forms that call macros. -* Special Forms:: "Special forms" are idiosyncratic primitives, +* Special Forms:: Special forms are idiosyncratic primitives, most of them extremely important. * Autoloading:: Functions set up to load files containing their real definitions. @@ -464,8 +464,13 @@ Control Structures * Conditionals:: @code{if}, @code{cond}, @code{when}, @code{unless}. * Combining Conditions:: @code{and}, @code{or}, @code{not}. * Iteration:: @code{while} loops. +* Generators:: Generic sequences and coroutines. * Nonlocal Exits:: Jumping out of a sequence. +Conditionals + +* Pattern matching case statement:: How to use @code{pcase}. + Nonlocal Exits * Catch and Throw:: Nonlocal exits for the program's own purposes. @@ -484,7 +489,7 @@ Errors Variables * Global Variables:: Variable values that exist permanently, everywhere. -* Constant Variables:: Certain "variables" have values that never change. +* Constant Variables:: Variables that never change. * Local Variables:: Variable values that exist only temporarily. * Void Variables:: Symbols that lack values. * Defining Variables:: A definition says a symbol is used as a variable. @@ -531,9 +536,11 @@ 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. +* Generic Functions:: Polymorphism, Emacs-style. * Function Cells:: Accessing or setting the function definition of a symbol. * Closures:: Functions that enclose a lexical environment. +* Advising Functions:: Adding to the definition of a function. * Obsolete Functions:: Declaring functions obsolete. * Inline Functions:: Defining functions that the compiler will expand inline. @@ -551,6 +558,13 @@ Lambda Expressions * Argument List:: Details and special features of argument lists. * Function Documentation:: How to put documentation in a function. +Advising Emacs Lisp Functions + +* Core Advising Primitives:: Primitives to manipulate advice. +* Advising Named Functions:: Advising named functions. +* Advice combinators:: Ways to compose advice. +* Porting old advice:: Adapting code using the old defadvice. + Macros * Simple Macro:: A basic example. @@ -598,9 +612,10 @@ Loading * 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. +* Unloading:: How to unload a library that was loaded. * Hooks for Loading:: Providing code to be run when particular libraries are loaded. +* Dynamic Modules:: Modules provide additional Lisp primitives. Byte Compilation @@ -751,8 +766,8 @@ Defining Commands Input Events -* Keyboard Events:: Ordinary characters--keys with symbols on them. -* Function Keys:: Function keys--keys with names, not symbols. +* Keyboard Events:: Ordinary characters -- keys with symbols on them. +* Function Keys:: Function keys -- keys with names, not symbols. * Mouse Events:: Overview of mouse events. * Click Events:: Pushing and releasing a mouse button. * Drag Events:: Moving the mouse before releasing the button. @@ -989,7 +1004,7 @@ Buffers is visited. * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved. * Modification Time:: Determining whether the visited file was changed - "behind Emacs's back". + behind Emacs's back. * Read Only Buffers:: Modifying text is not allowed in a read-only buffer. * Buffer List:: How to look at all the existing buffers. @@ -1040,6 +1055,7 @@ Frames * Creating Frames:: Creating additional frames. * Multiple Terminals:: Displaying on several different devices. +* Frame Geometry:: Geometric properties of frames. * Frame Parameters:: Controlling frame size, position, font, etc. * Terminal Parameters:: Parameters common for all frames on terminal. * Frame Titles:: Automatic updating of frame titles. @@ -1063,12 +1079,18 @@ Frames * Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. +Frame Geometry + +* Frame Layout:: Basic layout of frames. +* Frame Font:: The default font of a frame and how to set it. +* Size and Position:: Changing the size and position of a frame. +* Implied Frame Resizing:: Implied resizing of frames and how to prevent it. + Frame Parameters * Parameter Access:: How to change a frame's parameters. * Initial Parameters:: Specifying frame parameters when you make a frame. * Window Frame Parameters:: List of frame parameters for window systems. -* Size and Position:: Changing the size and position of a frame. * Geometry:: Parsing geometry specifications. Window Frame Parameters @@ -1109,8 +1131,8 @@ Markers * Marker Insertion Types:: Two ways a marker can relocate when you insert where it points. * 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". +* The Mark:: How the mark is implemented with a marker. +* The Region:: How to access the region. Text @@ -1144,7 +1166,7 @@ Text * Base 64:: Conversion to or from base 64 encoding. * Checksum/Hash:: Computing cryptographic hashes. * Parsing HTML/XML:: Parsing HTML and XML. -* Atomic Changes:: Installing several buffer changes "atomically". +* Atomic Changes:: Installing several buffer changes atomically. * Change Hooks:: Supplying functions to be run when text is changed. The Kill Ring @@ -1183,6 +1205,10 @@ Text Properties * Not Intervals:: Why text properties do not use Lisp-visible text intervals. +Parsing HTML and XML + +* Document Object Model:: Access, manipulate and search the @acronym{DOM}. + Non-@acronym{ASCII} Characters * Text Representations:: How Emacs represents text. @@ -1479,6 +1505,7 @@ Operating System Interface * Desktop Notifications:: Desktop notifications. * File Notifications:: File notifications. * Dynamic Libraries:: On-demand loading of support libraries. +* Security Considerations:: Running Emacs in an unfriendly environment. Starting Up Emacs @@ -1521,9 +1548,12 @@ GNU Emacs Internals * Building Emacs:: How the dumped Emacs is made. * Pure Storage:: Kludge to make preloaded Lisp functions shareable. * Garbage Collection:: Reclaiming space for Lisp objects no longer used. +* Stack-allocated Objects:: Temporary conses and strings on C stack. * Memory Usage:: Info about total size of Lisp objects made so far. +* C Dialect:: What C variant Emacs is written in. * Writing Emacs Primitives:: Writing C code for Emacs. * Object Internals:: Data formats of buffers, windows, processes. +* C Integer Types:: How C integer types are used inside Emacs. Object Internals