comparison lispref/elisp.texi @ 90751:52a7f3f50b89

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 624-636) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 200-201) - Merge from emacs--devo--0 - Update from CVS: lisp/nnweb.el (nnweb-google-parse-1): Update parser. Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-171
author Miles Bader <miles@gnu.org>
date Tue, 13 Feb 2007 12:14:16 +0000
parents f83d17e1ace6 c20ac93d4e8a
children dd7c098af727
comparison
equal deleted inserted replaced
90750:f8cc067aba62 90751:52a7f3f50b89
168 168
169 @ignore 169 @ignore
170 * New Symbols:: New functions and variables in Emacs @value{EMACSVER}. 170 * New Symbols:: New functions and variables in Emacs @value{EMACSVER}.
171 @end ignore 171 @end ignore
172 172
173 Detailed Node Listing 173 @c Do NOT modify the following 3 lines! They must have this form to
174 --------------------- 174 @c be correctly identified by `texinfo-multiple-files-update'. In
175 @c particular, the detailed menu header line MUST be identical to the
176 @c value of `texinfo-master-menu-header'. See texnfo-upd.el.
177
178 @detailmenu
179 --- The Detailed Node Listing ---
180 ---------------------------------
175 181
176 Here are other nodes that are inferiors of those already listed, 182 Here are other nodes that are inferiors of those already listed,
177 mentioned here so you can get to them in one step: 183 mentioned here so you can get to them in one step:
178 184
179 Introduction 185 Introduction
194 * Buffer Text Notation:: The format we use for buffer contents in examples. 200 * Buffer Text Notation:: The format we use for buffer contents in examples.
195 * Format of Descriptions:: Notation for describing functions, variables, etc. 201 * Format of Descriptions:: Notation for describing functions, variables, etc.
196 202
197 Format of Descriptions 203 Format of Descriptions
198 204
199 * A Sample Function Description:: 205 * A Sample Function Description:: A description of an imaginary
200 * A Sample Variable Description:: 206 function, @code{foo}.
207 * A Sample Variable Description:: A description of an imaginary
208 variable, @code{electric-future-map}.
201 209
202 Lisp Data Types 210 Lisp Data Types
203 211
204 * Printed Representation:: How Lisp objects are represented as text. 212 * Printed Representation:: How Lisp objects are represented as text.
205 * Comments:: Comments and their formatting conventions. 213 * Comments:: Comments and their formatting conventions.
231 * Primitive Function Type:: A function written in C, callable from Lisp. 239 * Primitive Function Type:: A function written in C, callable from Lisp.
232 * Byte-Code Type:: A function written in Lisp, then compiled. 240 * Byte-Code Type:: A function written in Lisp, then compiled.
233 * Autoload Type:: A type used for automatically loading seldom-used 241 * Autoload Type:: A type used for automatically loading seldom-used
234 functions. 242 functions.
235 243
244 Character Type
245
246 * Basic Char Syntax:: Syntax for regular characters.
247 * General Escape Syntax:: How to specify characters by their codes.
248 * Ctl-Char Syntax:: Syntax for control characters.
249 * Meta-Char Syntax:: Syntax for meta-characters.
250 * Other Char Bits:: Syntax for hyper-, super-, and alt-characters.
251
236 Cons Cell and List Types 252 Cons Cell and List Types
237 253
238 * Box Diagrams:: Drawing pictures of lists. 254 * Box Diagrams:: Drawing pictures of lists.
239 * Dotted Pair Notation:: An alternative syntax for lists. 255 * Dotted Pair Notation:: An alternative syntax for lists.
240 * Association List Type:: A specially constructed list. 256 * Association List Type:: A specially constructed list.
257
258 String Type
259
260 * Syntax for Strings:: How to specify Lisp strings.
261 * Non-ASCII in Strings:: International characters in strings.
262 * Nonprinting Characters:: Literal unprintable characters in strings.
263 * Text Props and Strings:: Strings with text properties.
241 264
242 Editing Types 265 Editing Types
243 266
244 * Buffer Type:: The basic object of editing. 267 * Buffer Type:: The basic object of editing.
245 * Marker Type:: A position in a buffer. 268 * Marker Type:: A position in a buffer.
246 * Window Type:: What makes buffers visible. 269 * Window Type:: What makes buffers visible.
247 * Frame Type:: Windows subdivide frames. 270 * Frame Type:: Windows subdivide frames.
248 * Window Configuration Type::Save what the screen looks like. 271 * Window Configuration Type:: Recording the way a frame is subdivided.
249 * Frame Configuration Type::Recording the status of all frames. 272 * Frame Configuration Type:: Recording the status of all frames.
250 * Process Type:: A process running on the underlying OS. 273 * Process Type:: A process running on the underlying OS.
251 * Stream Type:: Receive or send characters. 274 * Stream Type:: Receive or send characters.
252 * Keymap Type:: What function a keystroke invokes. 275 * Keymap Type:: What function a keystroke invokes.
253 * Overlay Type:: How an overlay is represented. 276 * Overlay Type:: How an overlay is represented.
254 277
255 Numbers 278 Numbers
256 279
257 * Integer Basics:: Representation and range of integers. 280 * Integer Basics:: Representation and range of integers.
258 * Float Basics:: Representation and range of floating point. 281 * Float Basics:: Representation and range of floating point.
259 * Predicates on Numbers:: Testing for numbers. 282 * Predicates on Numbers:: Testing for numbers.
260 * Comparison of Numbers:: Equality and inequality predicates. 283 * Comparison of Numbers:: Equality and inequality predicates.
261 * Numeric Conversions:: Converting float to integer and vice versa. 284 * Numeric Conversions:: Converting float to integer and vice versa.
262 * Arithmetic Operations:: How to add, subtract, multiply and divide. 285 * Arithmetic Operations:: How to add, subtract, multiply and divide.
263 * Rounding Operations:: Explicitly rounding floating point numbers. 286 * Rounding Operations:: Explicitly rounding floating point numbers.
264 * Bitwise Operations:: Logical and, or, not, shifting. 287 * Bitwise Operations:: Logical and, or, not, shifting.
265 * Math Functions:: Trig, exponential and logarithmic functions. 288 * Math Functions:: Trig, exponential and logarithmic functions.
266 * Random Numbers:: Obtaining random integers, predictable or not. 289 * Random Numbers:: Obtaining random integers, predictable or not.
267 290
268 Strings and Characters 291 Strings and Characters
269 292
270 * String Basics:: Basic properties of strings and characters. 293 * String Basics:: Basic properties of strings and characters.
271 * Predicates for Strings:: Testing whether an object is a string or char. 294 * Predicates for Strings:: Testing whether an object is a string or char.
272 * Creating Strings:: Functions to allocate new strings. 295 * Creating Strings:: Functions to allocate new strings.
273 * Modifying Strings:: Altering the contents of an existing string. 296 * Modifying Strings:: Altering the contents of an existing string.
274 * Text Comparison:: Comparing characters or strings. 297 * Text Comparison:: Comparing characters or strings.
275 * String Conversion:: Converting characters or strings and vice versa. 298 * String Conversion:: Converting characters to strings and vice versa.
276 * Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. 299 * Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}.
277 * Case Conversion:: Case conversion functions. 300 * Case Conversion:: Case conversion functions.
278 * Case Tables:: Customizing case conversion. 301 * Case Tables:: Customizing case conversion.
279 302
280 Lists 303 Lists
281 304
282 * Cons Cells:: How lists are made out of cons cells. 305 * Cons Cells:: How lists are made out of cons cells.
283 * List-related Predicates:: Is this object a list? Comparing two lists. 306 * List-related Predicates:: Is this object a list? Comparing two lists.
284 * List Elements:: Extracting the pieces of a list. 307 * List Elements:: Extracting the pieces of a list.
285 * Building Lists:: Creating list structure. 308 * Building Lists:: Creating list structure.
309 * List Variables:: Modifying lists stored in variables.
286 * Modifying Lists:: Storing new pieces into an existing list. 310 * Modifying Lists:: Storing new pieces into an existing list.
287 * Sets And Lists:: A list can represent a finite mathematical set. 311 * Sets And Lists:: A list can represent a finite mathematical set.
288 * Association Lists:: A list can represent a finite relation or mapping. 312 * Association Lists:: A list can represent a finite relation or mapping.
289 * Rings:: Managing a fixed-size ring of objects. 313 * Rings:: Managing a fixed-size ring of objects.
290 314
298 Sequences, Arrays, and Vectors 322 Sequences, Arrays, and Vectors
299 323
300 * Sequence Functions:: Functions that accept any kind of sequence. 324 * Sequence Functions:: Functions that accept any kind of sequence.
301 * Arrays:: Characteristics of arrays in Emacs Lisp. 325 * Arrays:: Characteristics of arrays in Emacs Lisp.
302 * Array Functions:: Functions specifically for arrays. 326 * Array Functions:: Functions specifically for arrays.
303 * Vectors:: Functions specifically for vectors. 327 * Vectors:: Special characteristics of Emacs Lisp vectors.
304 * Vector Functions:: Functions specifically for vectors. 328 * Vector Functions:: Functions specifically for vectors.
305 * Char-Tables:: How to work with char-tables. 329 * Char-Tables:: How to work with char-tables.
306 * Bool-Vectors:: How to work with bool-vectors. 330 * Bool-Vectors:: How to work with bool-vectors.
307 331
308 Hash Tables 332 Hash Tables
318 and property lists. 342 and property lists.
319 * Definitions:: A definition says how a symbol will be used. 343 * Definitions:: A definition says how a symbol will be used.
320 * Creating Symbols:: How symbols are kept unique. 344 * Creating Symbols:: How symbols are kept unique.
321 * Property Lists:: Each symbol has a property list 345 * Property Lists:: Each symbol has a property list
322 for recording miscellaneous information. 346 for recording miscellaneous information.
347
348 Property Lists
349
350 * Plists and Alists:: Comparison of the advantages of property
351 lists and association lists.
352 * Symbol Plists:: Functions to access symbols' property lists.
353 * Other Plists:: Accessing property lists stored elsewhere.
323 354
324 Evaluation 355 Evaluation
325 356
326 * Intro Eval:: Evaluation in the scheme of things. 357 * Intro Eval:: Evaluation in the scheme of things.
327 * Forms:: How various sorts of objects are evaluated. 358 * Forms:: How various sorts of objects are evaluated.
440 * Backquote:: Easier construction of list structure. 471 * Backquote:: Easier construction of list structure.
441 * Problems with Macros:: Don't evaluate the macro arguments too many times. 472 * Problems with Macros:: Don't evaluate the macro arguments too many times.
442 Don't hide the user's variables. 473 Don't hide the user's variables.
443 * Indenting Macros:: Specifying how to indent macro calls. 474 * Indenting Macros:: Specifying how to indent macro calls.
444 475
476 Common Problems Using Macros
477
478 * Wrong Time:: Do the work in the expansion, not in the macro.
479 * Argument Evaluation:: The expansion should evaluate each macro arg once.
480 * Surprising Local Vars:: Local variable bindings in the expansion
481 require special care.
482 * Eval During Expansion:: Don't evaluate them; put them in the expansion.
483 * Repeated Expansion:: Avoid depending on how many times expansion is done.
484
445 Writing Customization Definitions 485 Writing Customization Definitions
446 486
447 * Common Keywords:: Common keyword arguments for all kinds of 487 * Common Keywords:: Common keyword arguments for all kinds of
448 customization declarations. 488 customization declarations.
449 * Group Definitions:: Writing customization group definitions. 489 * Group Definitions:: Writing customization group definitions.
450 * Variable Definitions:: Declaring user options. 490 * Variable Definitions:: Declaring user options.
451 * Customization Types:: Specifying the type of a user option. 491 * Customization Types:: Specifying the type of a user option.
492
493 Customization Types
494
495 * Simple Types:: Simple customization types: sexp, integer, number,
496 string, file, directory, alist.
497 * Composite Types:: Build new types from other types or data.
498 * Splicing into Lists:: Splice elements into list with @code{:inline}.
499 * Type Keywords:: Keyword-argument pairs in a customization type.
500 * Defining New Types:: Give your type a name.
452 501
453 Loading 502 Loading
454 503
455 * How Programs Do Loading:: The @code{load} function and others. 504 * How Programs Do Loading:: The @code{load} function and others.
456 * Load Suffixes:: Details about the suffixes that @code{load} tries. 505 * Load Suffixes:: Details about the suffixes that @code{load} tries.
600 * Using Interactive:: General rules for @code{interactive}. 649 * Using Interactive:: General rules for @code{interactive}.
601 * Interactive Codes:: The standard letter-codes for reading arguments 650 * Interactive Codes:: The standard letter-codes for reading arguments
602 in various ways. 651 in various ways.
603 * Interactive Examples:: Examples of how to read interactive arguments. 652 * Interactive Examples:: Examples of how to read interactive arguments.
604 653
654 Input Events
655
656 * Keyboard Events:: Ordinary characters--keys with symbols on them.
657 * Function Keys:: Function keys--keys with names, not symbols.
658 * Mouse Events:: Overview of mouse events.
659 * Click Events:: Pushing and releasing a mouse button.
660 * Drag Events:: Moving the mouse before releasing the button.
661 * Button-Down Events:: A button was pushed and not yet released.
662 * Repeat Events:: Double and triple click (or drag, or down).
663 * Motion Events:: Just moving the mouse, not pushing a button.
664 * Focus Events:: Moving the mouse between frames.
665 * Misc Events:: Other events the system can generate.
666 * Event Examples:: Examples of the lists for mouse events.
667 * Classifying Events:: Finding the modifier keys in an event symbol.
668 * Accessing Events:: Functions to extract info from events.
669 * Strings of Events:: Special considerations for putting
670 keyboard character events in a string.
671
672 Reading Input
673
674 * Key Sequence Input:: How to read one key sequence.
675 * Reading One Event:: How to read just one event.
676 * Event Mod:: How Emacs modifies events as they are read.
677 * Invoking the Input Method:: How reading an event uses the input method.
678 * Quoted Character Input:: Asking the user to specify a character.
679 * Event Input Misc:: How to reread or throw away input events.
680
605 Keymaps 681 Keymaps
606 682
607 * Key Sequences:: Key sequences as Lisp objects. 683 * Key Sequences:: Key sequences as Lisp objects.
608 * Keymap Basics:: Basic concepts of keymaps. 684 * Keymap Basics:: Basic concepts of keymaps.
609 * Format of Keymaps:: What a keymap looks like as a Lisp object. 685 * Format of Keymaps:: What a keymap looks like as a Lisp object.
610 * Creating Keymaps:: Functions to create and copy keymaps. 686 * Creating Keymaps:: Functions to create and copy keymaps.
611 * Inheritance and Keymaps:: How one keymap can inherit the bindings 687 * Inheritance and Keymaps:: How one keymap can inherit the bindings
612 of another keymap. 688 of another keymap.
613 * Prefix Keys:: Defining a key with a keymap as its definition. 689 * Prefix Keys:: Defining a key with a keymap as its definition.
614 * Active Keymaps:: Each buffer has a local keymap 690 * Active Keymaps:: How Emacs searches the active keymaps
615 to override the standard (global) bindings. 691 for a key binding.
616 Each minor mode can also override them. 692 * Searching Keymaps:: A pseudo-Lisp summary of searching active maps.
617 * Key Lookup:: How extracting elements from keymaps works. 693 * Controlling Active Maps:: Each buffer has a local keymap
694 to override the standard (global) bindings.
695 A minor mode can also override them.
696 * Key Lookup:: How extracting elements from keymaps works.
618 * Functions for Key Lookup:: How to request key lookup. 697 * Functions for Key Lookup:: How to request key lookup.
619 * Changing Key Bindings:: Redefining a key in a keymap. 698 * Changing Key Bindings:: Redefining a key in a keymap.
620 * Remapping Commands:: A keymap can translate one command to another. 699 * Remapping Commands:: A keymap can translate one command to another.
621 * Key Binding Commands:: Interactive interfaces for redefining keys. 700 * Translation Keymaps:: Keymaps for translating sequences of events.
622 * Scanning Keymaps:: Looking through all keymaps, for printing help. 701 * Key Binding Commands:: Interactive interfaces for redefining keys.
623 * Menu Keymaps:: A keymap can define a menu for X 702 * Scanning Keymaps:: Looking through all keymaps, for printing help.
624 or for use from the terminal. 703 * Menu Keymaps:: A keymap can define a menu for X
625 * Standard Keymaps:: List of standard keymaps. 704 or for use from the terminal.
705 * Standard Keymaps:: List of standard keymaps.
626 706
627 Major and Minor Modes 707 Major and Minor Modes
628 708
629 * Hooks:: How to use hooks; how to write code that 709 * Hooks:: How to use hooks; how to write code that
630 provides hooks. 710 provides hooks.
635 of definitions in the buffer. 715 of definitions in the buffer.
636 * Font Lock Mode:: How modes can highlight text according to syntax. 716 * Font Lock Mode:: How modes can highlight text according to syntax.
637 * Desktop Save Mode:: How modes can have buffer state saved between 717 * Desktop Save Mode:: How modes can have buffer state saved between
638 Emacs sessions. 718 Emacs sessions.
639 719
720 Menu Keymaps
721
722 * Defining Menus:: How to make a keymap that defines a menu.
723 * Mouse Menus:: How users actuate the menu with the mouse.
724 * Keyboard Menus:: How users actuate the menu with the keyboard.
725 * Menu Example:: Making a simple menu.
726 * Menu Bar:: How to customize the menu bar.
727 * Tool Bar:: A tool bar is a row of images.
728 * Modifying Menus:: How to add new items to a menu.
729
730 Defining Menus
731
732 * Simple Menu Items:: A simple kind of menu key binding,
733 limited in capabilities.
734 * Extended Menu Items:: More powerful menu item definitions
735 let you specify keywords to enable
736 various features.
737 * Menu Separators:: Drawing a horizontal line through a menu.
738 * Alias Menu Items:: Using command aliases in menu items.
739
740 Major and Minor Modes
741
742 * Hooks:: How to use hooks; how to write code that provides hooks.
743 * Major Modes:: Defining major modes.
744 * Minor Modes:: Defining minor modes.
745 * Mode Line Format:: Customizing the text that appears in the mode line.
746 * Imenu:: How a mode can provide a menu
747 of definitions in the buffer.
748 * Font Lock Mode:: How modes can highlight text according to syntax.
749 * Desktop Save Mode:: How modes can have buffer state saved between
750 Emacs sessions.
751
640 Major Modes 752 Major Modes
641 753
642 * Major Mode Basics:: 754 * Major Mode Basics::
643 * Major Mode Conventions:: Coding conventions for keymaps, etc. 755 * Major Mode Conventions:: Coding conventions for keymaps, etc.
644 * Example Major Modes:: Text mode and Lisp modes. 756 * Example Major Modes:: Text mode and Lisp modes.
663 * Mode Line Variables:: Variables used in that data structure. 775 * Mode Line Variables:: Variables used in that data structure.
664 * %-Constructs:: Putting information into a mode line. 776 * %-Constructs:: Putting information into a mode line.
665 * Properties in Mode:: Using text properties in the mode line. 777 * Properties in Mode:: Using text properties in the mode line.
666 * Header Lines:: Like a mode line, but at the top. 778 * Header Lines:: Like a mode line, but at the top.
667 * Emulating Mode Line:: Formatting text as the mode line would. 779 * Emulating Mode Line:: Formatting text as the mode line would.
780
781 Font Lock Mode
782
783 * Font Lock Basics:: Overview of customizing Font Lock.
784 * Search-based Fontification:: Fontification based on regexps.
785 * Customizing Keywords:: Customizing search-based fontification.
786 * Other Font Lock Variables:: Additional customization facilities.
787 * Levels of Font Lock:: Each mode can define alternative levels
788 so that the user can select more or less.
789 * Precalculated Fontification:: How Lisp programs that produce the buffer
790 contents can also specify how to fontify it.
791 * Faces for Font Lock:: Special faces specifically for Font Lock.
792 * Syntactic Font Lock:: Fontification based on syntax tables.
793 * Setting Syntax Properties:: Defining character syntax based on context
794 using the Font Lock mechanism.
795 * Multiline Font Lock:: How to coerce Font Lock into properly
796 highlighting multiline constructs.
797
798 Multiline Font Lock Constructs
799
800 * Font Lock Multiline:: Marking multiline chunks with a text property
801 * Region to Fontify:: Controlling which region gets refontified
802 after a buffer change.
668 803
669 Documentation 804 Documentation
670 805
671 * Documentation Basics:: Good style for doc strings. 806 * Documentation Basics:: Good style for doc strings.
672 Where to put them. How Emacs stores them. 807 Where to put them. How Emacs stores them.
702 837
703 * Testing Accessibility:: Is a given file readable? Writable? 838 * Testing Accessibility:: Is a given file readable? Writable?
704 * Kinds of Files:: Is it a directory? A symbolic link? 839 * Kinds of Files:: Is it a directory? A symbolic link?
705 * Truenames:: Eliminating symbolic links from a file name. 840 * Truenames:: Eliminating symbolic links from a file name.
706 * File Attributes:: How large is it? Any other names? Etc. 841 * File Attributes:: How large is it? Any other names? Etc.
842 * Locating Files:: How to find a file in standard places.
707 843
708 File Names 844 File Names
709 845
710 * File Name Components:: The directory part of a file name, and the rest. 846 * File Name Components:: The directory part of a file name, and the rest.
711 * Relative File Names:: Some file names are relative to a 847 * Relative File Names:: Some file names are relative to a
743 * Buffer Names:: Accessing and changing buffer names. 879 * Buffer Names:: Accessing and changing buffer names.
744 * Buffer File Name:: The buffer file name indicates which file 880 * Buffer File Name:: The buffer file name indicates which file
745 is visited. 881 is visited.
746 * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved. 882 * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved.
747 * Modification Time:: Determining whether the visited file was changed 883 * Modification Time:: Determining whether the visited file was changed
748 "behind Emacs's back". 884 ``behind Emacs's back''.
749 * Read Only Buffers:: Modifying text is not allowed in a 885 * Read Only Buffers:: Modifying text is not allowed in a
750 read-only buffer. 886 read-only buffer.
751 * The Buffer List:: How to look at all the existing buffers. 887 * The Buffer List:: How to look at all the existing buffers.
752 * Creating Buffers:: Functions that create buffers. 888 * Creating Buffers:: Functions that create buffers.
753 * Killing Buffers:: Buffers exist until explicitly killed. 889 * Killing Buffers:: Buffers exist until explicitly killed.
761 * Splitting Windows:: Splitting one window into two windows. 897 * Splitting Windows:: Splitting one window into two windows.
762 * Deleting Windows:: Deleting a window gives its space to other windows. 898 * Deleting Windows:: Deleting a window gives its space to other windows.
763 * Selecting Windows:: The selected window is the one that you edit in. 899 * Selecting Windows:: The selected window is the one that you edit in.
764 * Cyclic Window Ordering:: Moving around the existing windows. 900 * Cyclic Window Ordering:: Moving around the existing windows.
765 * Buffers and Windows:: Each window displays the contents of a buffer. 901 * Buffers and Windows:: Each window displays the contents of a buffer.
766 * Displaying Buffers:: Higher-lever functions for displaying a buffer 902 * Displaying Buffers:: Higher-level functions for displaying a buffer
767 and choosing a window for it. 903 and choosing a window for it.
768 * Choosing Window:: How to choose a window for displaying a buffer. 904 * Choosing Window:: How to choose a window for displaying a buffer.
769 * Window Point:: Each window has its own location of point. 905 * Window Point:: Each window has its own location of point.
770 * Window Start:: The display-start position controls which text 906 * Window Start:: The display-start position controls which text
771 is on-screen in the window. 907 is on-screen in the window.
773 * Vertical Scrolling:: Moving the contents up and down on the window. 909 * Vertical Scrolling:: Moving the contents up and down on the window.
774 * Horizontal Scrolling:: Moving the contents sideways on the window. 910 * Horizontal Scrolling:: Moving the contents sideways on the window.
775 * Size of Window:: Accessing the size of a window. 911 * Size of Window:: Accessing the size of a window.
776 * Resizing Windows:: Changing the size of a window. 912 * Resizing Windows:: Changing the size of a window.
777 * Coordinates and Windows:: Converting coordinates to windows. 913 * Coordinates and Windows:: Converting coordinates to windows.
914 * Window Tree:: The layout and sizes of all windows in a frame.
778 * Window Configurations:: Saving and restoring the state of the screen. 915 * Window Configurations:: Saving and restoring the state of the screen.
779 * Window Hooks:: Hooks for scrolling, window size changes, 916 * Window Hooks:: Hooks for scrolling, window size changes,
780 redisplay going past a certain point, 917 redisplay going past a certain point,
781 or window configuration changes. 918 or window configuration changes.
782 919
783 Frames 920 Frames
784 921
785 * Creating Frames:: Creating additional frames. 922 * Creating Frames:: Creating additional frames.
786 * Multiple Displays:: Creating frames on other X displays. 923 * Multiple Displays:: Creating frames on other displays.
787 * Frame Parameters:: Controlling frame size, position, font, etc. 924 * Frame Parameters:: Controlling frame size, position, font, etc.
788 * Frame Titles:: Automatic updating of frame titles. 925 * Frame Titles:: Automatic updating of frame titles.
789 * Deleting Frames:: Frames last until explicitly deleted. 926 * Deleting Frames:: Frames last until explicitly deleted.
790 * Finding All Frames:: How to examine all existing frames. 927 * Finding All Frames:: How to examine all existing frames.
791 * Frames and Windows:: A frame contains windows; 928 * Frames and Windows:: A frame contains windows;
792 display of text always works through windows. 929 display of text always works through windows.
793 * Minibuffers and Frames:: How a frame finds the minibuffer to use. 930 * Minibuffers and Frames:: How a frame finds the minibuffer to use.
794 * Input Focus:: Specifying the selected frame. 931 * Input Focus:: Specifying the selected frame.
795 * Visibility of Frames:: Frames may be visible or invisible, or icons. 932 * Visibility of Frames:: Frames may be visible or invisible, or icons.
796 * Raising and Lowering:: Raising a frame makes it hide other X windows; 933 * Raising and Lowering:: Raising a frame makes it hide other windows;
797 lowering it puts it underneath the others. 934 lowering it puts it underneath the others.
798 * Frame Configurations:: Saving the state of all frames. 935 * Frame Configurations:: Saving the state of all frames.
799 * Mouse Tracking:: Getting events that say when the mouse moves. 936 * Mouse Tracking:: Getting events that say when the mouse moves.
800 * Mouse Position:: Asking where the mouse is, or moving it. 937 * Mouse Position:: Asking where the mouse is, or moving it.
801 * Pop-Up Menus:: Displaying a menu for the user to select from. 938 * Pop-Up Menus:: Displaying a menu for the user to select from.
802 * Dialog Boxes:: Displaying a box to ask yes or no. 939 * Dialog Boxes:: Displaying a box to ask yes or no.
803 * Pointer Shape:: Specifying the shape of the mouse pointer. 940 * Pointer Shape:: Specifying the shape of the mouse pointer.
804 * Window System Selections::Transferring text to and from other windows. 941 * Window System Selections::Transferring text to and from other windows.
942 * Drag and Drop:: Internals of Drag-and-Drop implementation.
805 * Color Names:: Getting the definitions of color names. 943 * Color Names:: Getting the definitions of color names.
806 * Text Terminal Colors:: Defining colors for text-only terminals. 944 * Text Terminal Colors:: Defining colors for text-only terminals.
807 * Resources:: Getting resource values from the server. 945 * Resources:: Getting resource values from the server.
808 * Display Feature Testing:: Determining the features of a terminal. 946 * Display Feature Testing:: Determining the features of a terminal.
947
948 Frame Parameters
949
950 * Parameter Access:: How to change a frame's parameters.
951 * Initial Parameters:: Specifying frame parameters when you make a frame.
952 * Window Frame Parameters:: List of frame parameters for window systems.
953 * Size and Position:: Changing the size and position of a frame.
954 * Geometry:: Parsing geometry specifications.
955
956 Window Frame Parameters
957
958 * Basic Parameters:: Parameters that are fundamental.
959 * Position Parameters:: The position of the frame on the screen.
960 * Size Parameters:: Frame's size.
961 * Layout Parameters:: Size of parts of the frame, and
962 enabling or disabling some parts.
963 * Buffer Parameters:: Which buffers have been or should be shown.
964 * Management Parameters:: Communicating with the window manager.
965 * Cursor Parameters:: Controlling the cursor appearance.
966 * Color Parameters:: Colors of various parts of the frame.
809 967
810 Positions 968 Positions
811 969
812 * Point:: The special position where editing takes place. 970 * Point:: The special position where editing takes place.
813 * Motion:: Changing point. 971 * Motion:: Changing point.
914 * Text Representations:: Unibyte and multibyte representations 1072 * Text Representations:: Unibyte and multibyte representations
915 * Converting Representations:: Converting unibyte to multibyte and vice versa. 1073 * Converting Representations:: Converting unibyte to multibyte and vice versa.
916 * Selecting a Representation:: Treating a byte sequence as unibyte or multi. 1074 * Selecting a Representation:: Treating a byte sequence as unibyte or multi.
917 * Character Codes:: How unibyte and multibyte relate to 1075 * Character Codes:: How unibyte and multibyte relate to
918 codes of individual characters. 1076 codes of individual characters.
919 * Character Sets:: The space of possible characters codes 1077 * Character Sets:: The space of possible character codes
920 is divided into various character sets. 1078 is divided into various character sets.
921 * Chars and Bytes:: More information about multibyte encodings. 1079 * Chars and Bytes:: More information about multibyte encodings.
922 * Splitting Characters:: Converting a character to its byte sequence. 1080 * Splitting Characters:: Converting a character to its byte sequence.
923 * Scanning Charsets:: Which character sets are used in a buffer? 1081 * Scanning Charsets:: Which character sets are used in a buffer?
924 * Translation of Characters:: Translation tables are used for conversion. 1082 * Translation of Characters:: Translation tables are used for conversion.
925 * Coding Systems:: Coding systems are conversions for saving files. 1083 * Coding Systems:: Coding systems are conversions for saving files.
926 * Input Methods:: Input methods allow users to enter various 1084 * Input Methods:: Input methods allow users to enter various
927 non-ASCII characters without special keyboards. 1085 non-ASCII characters without special keyboards.
928 * Locales:: Interacting with the POSIX locale. 1086 * Locales:: Interacting with the POSIX locale.
929 1087
1088 Coding Systems
1089
1090 * Coding System Basics:: Basic concepts.
1091 * Encoding and I/O:: How file I/O functions handle coding systems.
1092 * Lisp and Coding Systems:: Functions to operate on coding system names.
1093 * User-Chosen Coding Systems:: Asking the user to choose a coding system.
1094 * Default Coding Systems:: Controlling the default choices.
1095 * Specifying Coding Systems:: Requesting a particular coding system
1096 for a single file operation.
1097 * Explicit Encoding:: Encoding or decoding text without doing I/O.
1098 * Terminal I/O Encoding:: Use of encoding for terminal I/O.
1099 * MS-DOS File Types:: How DOS "text" and "binary" files
1100 relate to coding systems.
1101
930 Searching and Matching 1102 Searching and Matching
931 1103
932 * String Search:: Search for an exact match. 1104 * String Search:: Search for an exact match.
933 * Searching and Case:: Case-independent or case-significant searching. 1105 * Searching and Case:: Case-independent or case-significant searching.
934 * Regular Expressions:: Describing classes of strings. 1106 * Regular Expressions:: Describing classes of strings.
942 Regular Expressions 1114 Regular Expressions
943 1115
944 * Syntax of Regexps:: Rules for writing regular expressions. 1116 * Syntax of Regexps:: Rules for writing regular expressions.
945 * Regexp Example:: Illustrates regular expression syntax. 1117 * Regexp Example:: Illustrates regular expression syntax.
946 * Regexp Functions:: Functions for operating on regular expressions. 1118 * Regexp Functions:: Functions for operating on regular expressions.
1119
1120 Syntax of Regular Expressions
1121
1122 * Regexp Special:: Special characters in regular expressions.
1123 * Char Classes:: Character classes used in regular expressions.
1124 * Regexp Backslash:: Backslash-sequences in regular expressions.
1125
1126 The Match Data
1127
1128 * Replacing Match:: Replacing a substring that was matched.
1129 * Simple Match Data:: Accessing single items of match data,
1130 such as where a particular subexpression started.
1131 * Entire Match Data:: Accessing the entire match data at once, as a list.
1132 * Saving Match Data:: Saving and restoring the match data.
947 1133
948 Syntax Tables 1134 Syntax Tables
949 1135
950 * Syntax Basics:: Basic concepts of syntax tables. 1136 * Syntax Basics:: Basic concepts of syntax tables.
951 * Syntax Descriptors:: How characters are classified. 1137 * Syntax Descriptors:: How characters are classified.
960 1146
961 Syntax Descriptors 1147 Syntax Descriptors
962 1148
963 * Syntax Class Table:: Table of syntax classes. 1149 * Syntax Class Table:: Table of syntax classes.
964 * Syntax Flags:: Additional flags each character can have. 1150 * Syntax Flags:: Additional flags each character can have.
1151
1152 Parsing Expressions
1153
1154 * Motion via Parsing:: Motion functions that work by parsing.
1155 * Position Parse:: Determining the syntactic state of a position.
1156 * Parser State:: How Emacs represents a syntactic state.
1157 * Low-Level Parsing:: Parsing across a specified region.
1158 * Control Parsing:: Parameters that affect parsing.
965 1159
966 Abbrevs And Abbrev Expansion 1160 Abbrevs And Abbrev Expansion
967 1161
968 * Abbrev Mode:: Setting up Emacs for abbreviation. 1162 * Abbrev Mode:: Setting up Emacs for abbreviation.
969 * Abbrev Tables:: Creating and working with abbrev tables. 1163 * Abbrev Tables:: Creating and working with abbrev tables.
999 1193
1000 * Process Buffers:: If no filter, output is put in a buffer. 1194 * Process Buffers:: If no filter, output is put in a buffer.
1001 * Filter Functions:: Filter functions accept output from the process. 1195 * Filter Functions:: Filter functions accept output from the process.
1002 * Decoding Output:: Filters can get unibyte or multibyte strings. 1196 * Decoding Output:: Filters can get unibyte or multibyte strings.
1003 * Accepting Output:: How to wait until process output arrives. 1197 * Accepting Output:: How to wait until process output arrives.
1198
1199 Low-Level Network Access
1200
1201 * Proc: Network Processes. Using @code{make-network-process}.
1202 * Options: Network Options. Further control over network connections.
1203 * Features: Network Feature Testing.
1204 Determining which network features work on
1205 the machine you are using.
1206
1207 Packing and Unpacking Byte Arrays
1208
1209 * Bindat Spec:: Describing data layout.
1210 * Bindat Functions:: Doing the unpacking and packing.
1211 * Bindat Examples:: Samples of what bindat.el can do for you!
1004 1212
1005 Emacs Display 1213 Emacs Display
1006 1214
1007 * Refresh Screen:: Clearing the screen and redrawing everything on it. 1215 * Refresh Screen:: Clearing the screen and redrawing everything on it.
1008 * Forcing Redisplay:: Forcing redisplay. 1216 * Forcing Redisplay:: Forcing redisplay.
1027 * Usual Display:: The usual conventions for displaying nonprinting chars. 1235 * Usual Display:: The usual conventions for displaying nonprinting chars.
1028 * Display Tables:: How to specify other conventions. 1236 * Display Tables:: How to specify other conventions.
1029 * Beeping:: Audible signal to the user. 1237 * Beeping:: Audible signal to the user.
1030 * Window Systems:: Which window system is being used. 1238 * Window Systems:: Which window system is being used.
1031 1239
1240 The Echo Area
1241
1242 * Displaying Messages:: Explicitly displaying text in the echo area.
1243 * Progress:: Informing user about progress of a long operation.
1244 * Logging Messages:: Echo area messages are logged for the user.
1245 * Echo Area Customization:: Controlling the echo area.
1246
1247 Reporting Warnings
1248
1249 * Warning Basics:: Warnings concepts and functions to report them.
1250 * Warning Variables:: Variables programs bind to customize their warnings.
1251 * Warning Options:: Variables users set to control display of warnings.
1252
1253 Overlays
1254
1255 * Managing Overlays:: Creating and moving overlays.
1256 * Overlay Properties:: How to read and set properties.
1257 What properties do to the screen display.
1258 * Finding Overlays:: Searching for overlays.
1259
1260 Faces
1261
1262 * Defining Faces:: How to define a face with @code{defface}.
1263 * Face Attributes:: What is in a face?
1264 * Attribute Functions:: Functions to examine and set face attributes.
1265 * Displaying Faces:: How Emacs combines the faces specified for
1266 a character.
1267 * Font Selection:: Finding the best available font for a face.
1268 * Face Functions:: How to define and examine faces.
1269 * Auto Faces:: Hook for automatic face assignment.
1270 * Font Lookup:: Looking up the names of available fonts
1271 and information about them.
1272 * Fontsets:: A fontset is a collection of fonts
1273 that handle a range of character sets.
1274
1275 Fringes
1276
1277 * Fringe Size/Pos:: Specifying where to put the window fringes.
1278 * Fringe Indicators:: Displaying indicator icons in the window fringes.
1279 * Fringe Cursors:: Displaying cursors in the right fringe.
1280 * Fringe Bitmaps:: Specifying bitmaps for fringe indicators.
1281 * Customizing Bitmaps:: Specifying your own bitmaps to use in the fringes.
1282 * Overlay Arrow:: Display of an arrow to indicate position.
1283
1284 The @code{display} Property
1285
1286 * Specified Space:: Displaying one space with a specified width.
1287 * Pixel Specification:: Specifying space width or height in pixels.
1288 * Other Display Specs:: Displaying an image; magnifying text; moving it
1289 up or down on the page; adjusting the width
1290 of spaces within text.
1291 * Display Margins:: Displaying text or images to the side of
1292 the main text.
1293
1294 Images
1295
1296 * Image Descriptors:: How to specify an image for use in @code{:display}.
1297 * XBM Images:: Special features for XBM format.
1298 * XPM Images:: Special features for XPM format.
1299 * GIF Images:: Special features for GIF format.
1300 * Postscript Images:: Special features for Postscript format.
1301 * Other Image Types:: Various other formats are supported.
1302 * Defining Images:: Convenient ways to define an image for later use.
1303 * Showing Images:: Convenient ways to display an image once
1304 it is defined.
1305 * Image Cache:: Internal mechanisms of image display.
1306
1307 Buttons
1308
1309 * Button Properties:: Button properties with special meanings.
1310 * Button Types:: Defining common properties for classes of buttons.
1311 * Making Buttons:: Adding buttons to Emacs buffers.
1312 * Manipulating Buttons:: Getting and setting properties of buttons.
1313 * Button Buffer Commands:: Buffer-wide commands and bindings for buttons.
1314
1315 Abstract Display
1316
1317 * Abstract Display Functions:: Functions in the Ewoc package.
1318 * Abstract Display Example:: Example of using Ewoc.
1319
1320 Display Tables
1321
1322 * Display Table Format:: What a display table consists of.
1323 * Active Display Table:: How Emacs selects a display table to use.
1324 * Glyphs:: How to define a glyph, and what glyphs mean.
1325
1032 Operating System Interface 1326 Operating System Interface
1033 1327
1034 * Starting Up:: Customizing Emacs start-up processing. 1328 * Starting Up:: Customizing Emacs start-up processing.
1035 * Getting Out:: How exiting works (permanent or temporary). 1329 * Getting Out:: How exiting works (permanent or temporary).
1036 * System Environment:: Distinguish the name and kind of system. 1330 * System Environment:: Distinguish the name and kind of system.
1043 * Processor Run Time:: Getting the run time used by Emacs. 1337 * Processor Run Time:: Getting the run time used by Emacs.
1044 * Time Calculations:: Adding, subtracting, comparing times, etc. 1338 * Time Calculations:: Adding, subtracting, comparing times, etc.
1045 * Timers:: Setting a timer to call a function at a certain time. 1339 * Timers:: Setting a timer to call a function at a certain time.
1046 * Idle Timers:: Setting a timer to call a function when Emacs has 1340 * Idle Timers:: Setting a timer to call a function when Emacs has
1047 been idle for a certain length of time. 1341 been idle for a certain length of time.
1048 * Terminal Input:: Accessing and recordingo terminal input. 1342 * Terminal Input:: Accessing and recording terminal input.
1049 * Terminal Output:: Controlling and recording terminal output. 1343 * Terminal Output:: Controlling and recording terminal output.
1050 * Sound Output:: Playing sounds on the computer's speaker. 1344 * Sound Output:: Playing sounds on the computer's speaker.
1051 * X11 Keysyms:: Operating on key symbols for X Windows 1345 * X11 Keysyms:: Operating on key symbols for X Windows
1052 * Batch Mode:: Running Emacs without terminal interaction. 1346 * Batch Mode:: Running Emacs without terminal interaction.
1053 * Session Management:: Saving and restoring state with X Session Management. 1347 * Session Management:: Saving and restoring state with X Session Management.
1055 Starting Up Emacs 1349 Starting Up Emacs
1056 1350
1057 * Startup Summary:: Sequence of actions Emacs performs at start-up. 1351 * Startup Summary:: Sequence of actions Emacs performs at start-up.
1058 * Init File:: Details on reading the init file (@file{.emacs}). 1352 * Init File:: Details on reading the init file (@file{.emacs}).
1059 * Terminal-Specific:: How the terminal-specific Lisp file is read. 1353 * Terminal-Specific:: How the terminal-specific Lisp file is read.
1060 * Command-Line Arguments:: How command line arguments are processed, 1354 * Command-Line Arguments:: How command-line arguments are processed,
1061 and how you can customize them. 1355 and how you can customize them.
1062 1356
1063 Getting out of Emacs 1357 Getting Out of Emacs
1064 1358
1065 * Killing Emacs:: Exiting Emacs irreversibly. 1359 * Killing Emacs:: Exiting Emacs irreversibly.
1066 * Suspending Emacs:: Exiting Emacs reversibly. 1360 * Suspending Emacs:: Exiting Emacs reversibly.
1067 1361
1362 Terminal Input
1363
1364 * Input Modes:: Options for how input is processed.
1365 * Recording Input:: Saving histories of recent or all input events.
1366
1068 Tips and Conventions 1367 Tips and Conventions
1069 1368
1070 * Coding Conventions:: Conventions for clean and robust programs. 1369 * Coding Conventions:: Conventions for clean and robust programs.
1071 * Key Binding Conventions:: Which keys should be bound by which programs. 1370 * Key Binding Conventions:: Which keys should be bound by which programs.
1072 * Programming Tips:: Making Emacs code fit smoothly in Emacs. 1371 * Programming Tips:: Making Emacs code fit smoothly in Emacs.
1073 * Compilation Tips:: Making compiled code run fast. 1372 * Compilation Tips:: Making compiled code run fast.
1074 * Warning Tips:: Turning off compiler warnings. 1373 * Warning Tips:: Turning off compiler warnings.
1075 * Documentation Tips:: Writing readable documentation strings. 1374 * Documentation Tips:: Writing readable documentation strings.
1076 * Comment Tips:: Conventions for writing comments. 1375 * Comment Tips:: Conventions for writing comments.
1077 * Library Headers:: Standard headers for library packages. 1376 * Library Headers:: Standard headers for library packages.
1078 1377
1079 GNU Emacs Internals 1378 GNU Emacs Internals
1080 1379
1081 * Building Emacs:: How to preload Lisp libraries into Emacs. 1380 * Building Emacs:: How the dumped Emacs is made.
1082 * Pure Storage:: A kludge to make preloaded Lisp functions sharable. 1381 * Pure Storage:: A kludge to make preloaded Lisp functions sharable.
1083 * Garbage Collection:: Reclaiming space for Lisp objects no longer used. 1382 * Garbage Collection:: Reclaiming space for Lisp objects no longer used.
1084 * Memory Usage:: Info about total size of Lisp objects made so far. 1383 * Memory Usage:: Info about total size of Lisp objects made so far.
1085 * Writing Emacs Primitives:: Writing C code for Emacs. 1384 * Writing Emacs Primitives:: Writing C code for Emacs.
1086 * Object Internals:: Data formats of buffers, windows, processes. 1385 * Object Internals:: Data formats of buffers, windows, processes.
1088 Object Internals 1387 Object Internals
1089 1388
1090 * Buffer Internals:: Components of a buffer structure. 1389 * Buffer Internals:: Components of a buffer structure.
1091 * Window Internals:: Components of a window structure. 1390 * Window Internals:: Components of a window structure.
1092 * Process Internals:: Components of a process structure. 1391 * Process Internals:: Components of a process structure.
1392 @end detailmenu
1093 @end menu 1393 @end menu
1094 1394
1095 @include intro.texi 1395 @include intro.texi
1096 @include objects.texi 1396 @include objects.texi
1097 @include numbers.texi 1397 @include numbers.texi