This is Info file elisp, produced by Makeinfo version 1.68 from the input file elisp.texi. INFO-DIR-SECTION Editors START-INFO-DIR-ENTRY * Elisp: (elisp). The Emacs Lisp Reference Manual. END-INFO-DIR-ENTRY This version is the edition 2.5 of the GNU Emacs Lisp Reference Manual. It corresponds to Emacs Version 20.3 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 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the section entitled "GNU General Public License" is included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that the section entitled "GNU General Public License" may be included in a translation approved by the Free Software Foundation instead of in the original English.  Indirect: elisp-1: 1865 elisp-2: 39733 elisp-3: 87734 elisp-4: 133400 elisp-5: 178464 elisp-6: 228121 elisp-7: 276990 elisp-8: 324565 elisp-9: 369494 elisp-10: 418973 elisp-11: 467265 elisp-12: 513210 elisp-13: 562043 elisp-14: 610208 elisp-15: 652259 elisp-16: 699763 elisp-17: 749165 elisp-18: 795720 elisp-19: 843305 elisp-20: 888639 elisp-21: 935643 elisp-22: 985371 elisp-23: 1034768 elisp-24: 1083646 elisp-25: 1132739 elisp-26: 1180017 elisp-27: 1227672 elisp-28: 1277583 elisp-29: 1325618 elisp-30: 1373470 elisp-31: 1415865 elisp-32: 1464187 elisp-33: 1512328 elisp-34: 1558434 elisp-35: 1606754 elisp-36: 1654627 elisp-37: 1701748 elisp-38: 1751481 elisp-39: 1799603 elisp-40: 1848166 elisp-41: 1892973 elisp-42: 1928939 elisp-43: 2100887  Tag Table: (Indirect) Node: Top1865 Node: Copying39733 Node: Introduction58906 Node: Caveats60730 Node: Lisp History62435 Node: Conventions64113 Node: Some Terms64911 Node: nil and t65645 Node: Evaluation Notation67387 Node: Printing Notation68300 Node: Error Messages69167 Node: Buffer Text Notation69600 Node: Format of Descriptions70478 Node: A Sample Function Description71325 Node: A Sample Variable Description75351 Node: Version Info76252 Node: Acknowledgements77826 Node: Lisp Data Types79132 Node: Printed Representation81432 Node: Comments83475 Node: Programming Types84367 Node: Integer Type86104 Node: Floating Point Type87068 Node: Character Type87734 Node: Symbol Type95341 Node: Sequence Type98032 Node: Cons Cell Type99616 Node: Dotted Pair Notation104356 Node: Association List Type106741 Node: Array Type107617 Node: String Type109309 Node: Syntax for Strings109939 Node: Non-ASCII in Strings111086 Node: Nonprinting Characters112816 Node: Text Props and Strings114246 Node: Vector Type115570 Node: Char-Table Type116335 Node: Bool-Vector Type117335 Node: Function Type118367 Node: Macro Type119477 Node: Primitive Function Type120367 Node: Byte-Code Type121927 Node: Autoload Type122537 Node: Editing Types123512 Node: Buffer Type124452 Node: Marker Type126564 Node: Window Type127281 Node: Frame Type128482 Node: Window Configuration Type129160 Node: Frame Configuration Type129724 Node: Process Type130289 Node: Stream Type131240 Node: Keymap Type132358 Node: Overlay Type132806 Node: Type Predicates133400 Node: Equality Predicates138413 Node: Numbers141845 Node: Integer Basics143162 Node: Float Basics145497 Node: Predicates on Numbers147567 Node: Comparison of Numbers149196 Node: Numeric Conversions152925 Node: Arithmetic Operations154418 Node: Rounding Operations159952 Node: Bitwise Operations161051 Node: Math Functions169977 Node: Random Numbers171864 Node: Strings and Characters173617 Node: String Basics174888 Node: Predicates for Strings177911 Node: Creating Strings178464 Node: Modifying Strings184448 Node: Text Comparison185499 Node: String Conversion190416 Node: Formatting Strings194127 Node: Case Conversion200100 Node: Case Tables203877 Node: Lists207910 Node: Cons Cells208864 Node: Lists as Boxes210208 Node: List-related Predicates212957 Node: List Elements214652 Node: Building Lists218682 Node: Modifying Lists224674 Node: Setcar225564 Node: Setcdr228121 Node: Rearrangement230703 Node: Sets And Lists236844 Node: Association Lists241074 Node: Sequences Arrays Vectors249696 Node: Sequence Functions252335 Node: Arrays255780 Node: Array Functions258263 Node: Vectors260711 Node: Vector Functions262195 Node: Char-Tables264954 Node: Bool-Vectors270765 Node: Symbols271645 Node: Symbol Components272693 Node: Definitions276990 Node: Creating Symbols279301 Node: Property Lists286124 Node: Plists and Alists287568 Node: Symbol Plists289364 Node: Other Plists291164 Node: Evaluation292454 Node: Intro Eval293251 Node: Forms296745 Node: Self-Evaluating Forms297915 Node: Symbol Forms299426 Node: Classifying Lists300488 Node: Function Indirection301237 Node: Function Forms304345 Node: Macro Forms305337 Node: Special Forms306930 Node: Autoloading309254 Node: Quoting309744 Node: Eval311113 Node: Control Structures316125 Node: Sequencing317757 Node: Conditionals320615 Node: Combining Conditions324565 Node: Iteration327828 Node: Nonlocal Exits329616 Node: Catch and Throw330309 Node: Examples of Catch334354 Node: Errors336366 Node: Signaling Errors337845 Node: Processing of Errors340862 Node: Handling Errors342183 Node: Error Symbols349812 Node: Cleanups353250 Node: Variables356774 Node: Global Variables358760 Node: Constant Variables359842 Node: Local Variables360756 Node: Void Variables366004 Node: Defining Variables369494 Node: Tips for Defining376309 Node: Accessing Variables378528 Node: Setting Variables379930 Node: Variable Scoping384385 Node: Scope385979 Node: Extent387934 Node: Impl of Scope389396 Node: Using Scoping391371 Node: Buffer-Local Variables392886 Node: Intro to Buffer-Local393973 Node: Creating Buffer-Local398135 Node: Default Value405211 Node: Frame-Local Variables408642 Node: Future Local Variables411835 Node: Functions412838 Node: What Is a Function413925 Node: Lambda Expressions418071 Node: Lambda Components418973 Node: Simple Lambda420798 Node: Argument List422450 Node: Function Documentation426278 Node: Function Names428212 Node: Defining Functions431146 Node: Calling Functions434073 Node: Mapping Functions438024 Node: Anonymous Functions440897 Node: Function Cells444540 Node: Inline Functions449887 Node: Related Topics451679 Node: Macros452823 Node: Simple Macro454106 Node: Expansion454862 Node: Compiling Macros457829 Node: Defining Macros459677 Node: Backquote461063 Node: Problems with Macros463677 Node: Argument Evaluation464365 Node: Surprising Local Vars467265 Node: Eval During Expansion469326 Node: Repeated Expansion471110 Node: Customization473473 Node: Common Keywords473992 Node: Group Definitions476830 Node: Variable Definitions479956 Node: Customization Types484642 Node: Simple Types486071 Node: Composite Types488611 Node: Splicing into Lists494183 Node: Type Keywords496011 Node: Loading499524 Node: How Programs Do Loading501329 Node: Library Search506264 Node: Loading Non-ASCII511132 Node: Autoload513210 Node: Repeated Loading519371 Node: Named Features521592 Node: Unloading526437 Node: Hooks for Loading529661 Node: Byte Compilation531328 Node: Speed of Byte-Code533563 Node: Compilation Functions534641 Node: Docs and Compilation540379 Node: Dynamic Loading543096 Node: Eval During Compile545663 Node: Byte-Code Objects546876 Node: Disassembly549238 Node: Advising Functions557678 Node: Simple Advice559460 Node: Defining Advice562043 Node: Around-Advice567805 Node: Computed Advice568989 Node: Activation of Advice570376 Node: Enabling Advice574184 Node: Preactivation575718 Node: Argument Access in Advice578362 Node: Subr Arguments581438 Node: Combined Definition582357 Node: Debugging584760 Node: Debugger586254 Node: Error Debugging587392 Node: Infinite Loops591321 Node: Function Debugging592558 Node: Explicit Debug595455 Node: Using Debugger596280 Node: Debugger Commands598137 Node: Invoking the Debugger601846 Node: Internals of Debugger605675 Node: Edebug610208 Node: Using Edebug612270 Node: Instrumenting614858 Node: Edebug Execution Modes617955 Node: Jumping621226 Node: Edebug Misc624182 Node: Breakpoints625603 Node: Global Break Condition628554 Node: Source Breakpoints629453 Node: Trapping Errors630375 Node: Edebug Views631494 Node: Edebug Eval633396 Node: Eval List634464 Node: Printing in Edebug638421 Node: Trace Buffer640298 Node: Coverage Testing642183 Node: The Outside Context644809 Node: Checking Whether to Stop645527 Node: Edebug Display Update646189 Node: Edebug Recursive Edit648332 Node: Instrumenting Macro Calls649953 Node: Specification List652259 Node: Backtracking660289 Node: Specification Examples662446 Node: Edebug Options664514 Node: Syntax Errors668690 Node: Excess Open670034 Node: Excess Close671953 Node: Compilation Errors673368 Node: Read and Print674634 Node: Streams Intro675604 Node: Input Streams677649 Node: Input Functions682472 Node: Output Streams684532 Node: Output Functions688647 Node: Output Variables693406 Node: Minibuffers696214 Node: Intro to Minibuffers697358 Node: Text from Minibuffer699763 Node: Object from Minibuffer707213 Node: Minibuffer History710415 Node: Completion713134 Node: Basic Completion715101 Node: Minibuffer Completion720105 Node: Completion Commands724069 Node: High-Level Completion728705 Node: Reading File Names733823 Node: Programmed Completion737576 Node: Yes-or-No Queries739951 Node: Multiple Queries745127 Node: Reading a Password749165 Node: Minibuffer Misc750077 Node: Command Loop754510 Node: Command Overview755931 Node: Defining Commands758778 Node: Using Interactive759519 Node: Interactive Codes763720 Node: Interactive Examples770288 Node: Interactive Call771595 Node: Command Loop Info777395 Node: Input Events781750 Node: Keyboard Events783634 Node: Function Keys786332 Node: Mouse Events789182 Node: Click Events790291 Node: Drag Events792954 Node: Button-Down Events794479 Node: Repeat Events795720 Node: Motion Events799707 Node: Focus Events800445 Node: Misc Events801990 Node: Event Examples804605 Node: Classifying Events805846 Node: Accessing Events809332 Node: Strings of Events812022 Node: Reading Input815840 Node: Key Sequence Input816819 Node: Reading One Event820567 Node: Quoted Character Input824911 Node: Event Input Misc826249 Node: Special Events829865 Node: Waiting830969 Node: Quitting833952 Node: Prefix Command Arguments838352 Node: Recursive Editing843305 Node: Disabling Commands848089 Node: Command History850149 Node: Keyboard Macros851870 Node: Keymaps854343 Node: Keymap Terminology855800 Node: Format of Keymaps858726 Node: Creating Keymaps862098 Node: Inheritance and Keymaps863962 Node: Prefix Keys865687 Node: Active Keymaps869502 Node: Key Lookup877654 Node: Functions for Key Lookup883197 Node: Changing Key Bindings888639 Node: Key Binding Commands896186 Node: Scanning Keymaps898240 Node: Menu Keymaps903595 Node: Defining Menus904212 Node: Simple Menu Items905485 Node: Extended Menu Items907723 Node: Alias Menu Items911989 Node: Mouse Menus913239 Node: Keyboard Menus915417 Node: Menu Example916561 Node: Menu Bar919685 Node: Modifying Menus922972 Node: Modes924385 Node: Major Modes925505 Node: Major Mode Conventions928396 Node: Example Major Modes935643 Node: Auto Major Mode942698 Node: Mode Help950400 Node: Derived Modes951494 Node: Minor Modes953678 Node: Minor Mode Conventions955056 Node: Keymaps and Minor Modes958296 Node: Easy-Mmode959358 Node: Mode Line Format961590 Node: Mode Line Data963429 Node: Mode Line Variables968174 Node: %-Constructs973354 Node: Imenu976185 Node: Font Lock Mode982066 Node: Font Lock Basics983135 Node: Search-based Fontification985371 Node: Other Font Lock Variables990490 Node: Levels of Font Lock992784 Node: Faces for Font Lock994041 Node: Syntactic Font Lock995745 Node: Hooks996808 Node: Documentation1003819 Node: Documentation Basics1005171 Node: Accessing Documentation1008070 Node: Keys in Documentation1013593 Node: Describing Characters1016184 Node: Help Functions1018908 Node: Files1026157 Node: Visiting Files1027929 Node: Visiting Functions1029426 Node: Subroutines of Visiting1034768 Node: Saving Buffers1036768 Node: Reading from Files1043726 Node: Writing to Files1046425 Node: File Locks1049811 Node: Information about Files1052762 Node: Testing Accessibility1053506 Node: Kinds of Files1057482 Node: Truenames1059156 Node: File Attributes1060009 Node: Changing Files1065107 Node: File Names1070615 Node: File Name Components1072303 Node: Directory Names1075256 Node: Relative File Names1078605 Node: File Name Expansion1079676 Node: Unique File Names1083646 Node: File Name Completion1085851 Node: Standard File Names1088510 Node: Contents of Directories1090751 Node: Create/Delete Dirs1093913 Node: Magic File Names1094714 Node: Format Conversion1100675 Node: Backups and Auto-Saving1106473 Node: Backup Files1107140 Node: Making Backups1108526 Node: Rename or Copy1111255 Node: Numbered Backups1113750 Node: Backup Names1115978 Node: Auto-Saving1119628 Node: Reverting1127744 Node: Buffers1131332 Node: Buffer Basics1132739 Node: Current Buffer1134793 Node: Buffer Names1141294 Node: Buffer File Name1144321 Node: Buffer Modification1148653 Node: Modification Time1150880 Node: Read Only Buffers1154244 Node: The Buffer List1156731 Node: Creating Buffers1161736 Node: Killing Buffers1163878 Node: Indirect Buffers1167488 Node: Windows1169315 Node: Basic Windows1171004 Node: Splitting Windows1174094 Node: Deleting Windows1180017 Node: Selecting Windows1182748 Node: Cyclic Window Ordering1185694 Node: Buffers and Windows1189653 Node: Displaying Buffers1192951 Node: Choosing Window1198334 Node: Window Point1206090 Node: Window Start1208131 Node: Vertical Scrolling1213179 Node: Horizontal Scrolling1219828 Node: Size of Window1223364 Node: Resizing Windows1227672 Node: Coordinates and Windows1231612 Node: Window Configurations1233567 Node: Window Hooks1237970 Node: Frames1241522 Node: Creating Frames1244178 Node: Multiple Displays1245408 Node: Frame Parameters1248232 Node: Parameter Access1249057 Node: Initial Parameters1249749 Node: Window Frame Parameters1252505 Node: Size and Position1261411 Node: Frame Titles1266906 Node: Deleting Frames1268328 Node: Finding All Frames1269418 Node: Frames and Windows1271026 Node: Minibuffers and Frames1272470 Node: Input Focus1273680 Node: Visibility of Frames1277583 Node: Raising and Lowering1279170 Node: Frame Configurations1280731 Node: Mouse Tracking1281355 Node: Mouse Position1283013 Node: Pop-Up Menus1284397 Node: Dialog Boxes1286971 Node: Pointer Shapes1288799 Node: Window System Selections1289749 Node: Font Names1292654 Node: Fontsets1293756 Node: Color Names1297357 Node: Resources1299336 Node: Server Data1300499 Node: Positions1303004 Node: Point1303952 Node: Motion1306521 Node: Character Motion1307281 Node: Word Motion1309324 Node: Buffer End Motion1310900 Node: Text Lines1312412 Node: Screen Lines1316850 Node: List Motion1322798 Node: Skipping Characters1325618 Node: Excursions1327909 Node: Narrowing1330620 Node: Markers1335829 Node: Overview of Markers1336848 Node: Predicates on Markers1339829 Node: Creating Markers1340715 Node: Information from Markers1343953 Node: Marker Insertion Types1344891 Node: Moving Markers1345848 Node: The Mark1347211 Node: The Region1354666 Node: Text1355829 Node: Near Point1358553 Node: Buffer Contents1361668 Node: Comparing Text1364420 Node: Insertion1365821 Node: Commands for Insertion1370312 Node: Deletion1373470 Node: User-Level Deletion1377499 Node: The Kill Ring1381629 Node: Kill Ring Concepts1383796 Node: Kill Functions1384836 Node: Yank Commands1386972 Node: Low-Level Kill Ring1388843 Node: Internals of Kill Ring1391699 Node: Undo1394580 Node: Maintaining Undo1399000 Node: Filling1401542 Node: Margins1408264 Node: Adaptive Fill1412592 Node: Auto Filling1414430 Node: Sorting1415865 Node: Columns1425634 Node: Indentation1428161 Node: Primitive Indent1428933 Node: Mode-Specific Indent1430386 Node: Region Indent1432886 Node: Relative Indent1435896 Node: Indent Tabs1438277 Node: Motion by Indent1439606 Node: Case Changes1440378 Node: Text Properties1443624 Node: Examining Properties1445750 Node: Changing Properties1448309 Node: Property Search1452062 Node: Special Properties1457377 Node: Format Properties1463272 Node: Sticky Properties1464187 Node: Saving Properties1467346 Node: Lazy Properties1470554 Node: Clickable Text1472722 Node: Not Intervals1475444 Node: Substitution1477938 Node: Registers1479805 Node: Transposition1483030 Node: Change Hooks1483917 Node: Non-ASCII Characters1488229 Node: Text Representations1488764 Node: Converting Representations1491361 Node: Selecting a Representation1495218 Node: Character Codes1496933 Node: Character Sets1497920 Node: Chars and Bytes1499066 Node: Splitting Characters1500162 Node: Scanning Charsets1502742 Node: Translation of Characters1503992 Node: Coding Systems1506360 Node: Coding System Basics1506991 Node: Encoding and I/O1510041 Node: Lisp and Coding Systems1512328 Node: User-Chosen Coding Systems1515700 Node: Default Coding Systems1517504 Node: Specifying Coding Systems1522604 Node: Explicit Encoding1524987 Node: Terminal I/O Encoding1528191 Node: MS-DOS File Types1529438 Node: Input Methods1531840 Node: Searching and Matching1534683 Node: String Search1535826 Node: Regular Expressions1540745 Node: Syntax of Regexps1541321 Node: Regexp Example1556227 Node: Regexp Search1558434 Node: POSIX Regexps1563828 Node: Search and Replace1565516 Node: Match Data1568876 Node: Replacing Match1569998 Node: Simple Match Data1572606 Node: Entire Match Data1577166 Node: Saving Match Data1579032 Node: Searching and Case1580346 Node: Standard Regexps1582357 Node: Syntax Tables1584566 Node: Syntax Basics1585822 Node: Syntax Descriptors1588101 Node: Syntax Class Table1589914 Node: Syntax Flags1597293 Node: Syntax Table Functions1600548 Node: Syntax Properties1604342 Node: Motion and Syntax1605443 Node: Parsing Expressions1606754 Node: Standard Syntax Tables1613069 Node: Syntax Table Internals1613905 Node: Categories1615656 Node: Abbrevs1619985 Node: Abbrev Mode1621783 Node: Abbrev Tables1622524 Node: Defining Abbrevs1624064 Node: Abbrev Files1626083 Node: Abbrev Expansion1627848 Node: Standard Abbrev Tables1632554 Node: Processes1633619 Node: Subprocess Creation1635671 Node: Shell Arguments1639065 Node: Synchronous Processes1640701 Node: Asynchronous Processes1648151 Node: Deleting Processes1652595 Node: Process Information1654627 Node: Input to Processes1659001 Node: Signals to Processes1661670 Node: Output from Processes1665872 Node: Process Buffers1668170 Node: Filter Functions1671012 Node: Accepting Output1676120 Node: Sentinels1677898 Node: Transaction Queues1681414 Node: Network1683076 Node: System Interface1684882 Node: Starting Up1686212 Node: Start-up Summary1686795 Node: Init File1690601 Node: Terminal-Specific1693329 Node: Command Line Arguments1696033 Node: Getting Out1699553 Node: Killing Emacs1700105 Node: Suspending Emacs1701748 Node: System Environment1704820 Node: User Identification1711522 Node: Time of Day1714374 Node: Time Conversion1717163 Node: Timers1724190 Node: Terminal Input1729924 Node: Input Modes1730420 Node: Translating Input1732806 Node: Recording Input1740365 Node: Terminal Output1741663 Node: Special Keysyms1744427 Node: Flow Control1745442 Node: Batch Mode1749196 Node: Display1750271 Node: Refresh Screen1751481 Node: Truncation1752701 Node: The Echo Area1755469 Node: Invisible Text1759940 Node: Selective Display1764472 Node: Overlay Arrow1768529 Node: Temporary Displays1769773 Node: Overlays1774192 Node: Overlay Properties1774804 Node: Managing Overlays1781206 Node: Width1784200 Node: Faces1786160 Node: Standard Faces1787259 Node: Defining Faces1788267 Node: Merging Faces1791981 Node: Face Functions1793763 Node: Blinking1799603 Node: Inverse Video1801521 Node: Usual Display1802272 Node: Display Tables1805194 Node: Display Table Format1806156 Node: Active Display Table1808867 Node: Glyphs1810486 Node: Beeping1812023 Node: Window Systems1813236 Node: Calendar1814488 Node: Calendar Customizing1815347 Node: Holiday Customizing1818547 Node: Date Display Format1824596 Node: Time Display Format1825529 Node: Daylight Savings1826529 Node: Diary Customizing1829592 Node: Hebrew/Islamic Entries1833981 Node: Fancy Diary Display1837198 Node: Sexp Diary Entries1839852 Node: Appt Customizing1846103 Node: Tips1847462 Node: Coding Conventions1848166 Node: Compilation Tips1860213 Node: Documentation Tips1862039 Node: Comment Tips1869379 Node: Library Headers1872392 Node: GNU Emacs Internals1876806 Node: Building Emacs1877574 Node: Pure Storage1881726 Node: Garbage Collection1884434 Node: Memory Usage1891456 Node: Writing Emacs Primitives1892973 Node: Object Internals1903052 Node: Buffer Internals1904385 Node: Window Internals1908080 Node: Process Internals1911512 Node: Standard Errors1913487 Node: Standard Buffer-Local Variables1917949 Node: Standard Keymaps1920808 Node: Standard Hooks1925189 Node: Index1928939 Node: New Symbols2100887  End Tag Table