| [Top] | [Contents] | [Index] | [ ? ] |
This Info file contains the third edition of the XEmacs Lisp Reference Manual, corresponding to XEmacs version 21.0.
| GNU GENERAL PUBLIC LICENSE | Conditions for copying and changing XEmacs. | |
| 1. Introduction | Introduction and conventions used. | |
| 2. The XEmacs Packaging System | Lisp library administrative infrastructure. | |
| 8. Lisp Data Types | Data types of objects in XEmacs Lisp. | |
| 9. Numbers | Numbers and arithmetic functions. | |
| 10. Strings and Characters | Strings, and functions that work on them. | |
| 11. Lists | Lists, cons cells, and related functions. | |
| 12. Sequences, Arrays, and Vectors | Lists, strings and vectors are called sequences. Certain functions act on any kind of sequence. The description of vectors is here as well. | |
| 13. Symbols | Symbols represent names, uniquely. | |
| 14. Evaluation | How Lisp expressions are evaluated. | |
| 15. Control Structures | Conditionals, loops, nonlocal exits. | |
| 16. Variables | Using symbols in programs to stand for values. | |
| 17. Functions and Commands | A function is a Lisp program that can be invoked from other functions. | |
| 18. Macros | Macros are a way to extend the Lisp language. | |
| 19. Writing Customization Definitions | Writing customization declarations. | |
| 20. Loading | Reading files of Lisp code into Lisp. | |
| 21. Byte Compilation | Compilation makes programs run faster. | |
| 22. Debugging Lisp Programs | Tools and tips for debugging Lisp programs. | |
| 23. Reading and Printing Lisp Objects | Converting Lisp objects to text and back. | |
| 24. Minibuffers | Using the minibuffer to read input. | |
| 25. Command Loop | How the editor command loop works, and how you can call its subroutines. | |
| 26. Keymaps | Defining the bindings from keys to commands. | |
| 27. Menus | Defining pull-down and pop-up menus. | |
| 28. Dialog Boxes | Creating dialog boxes. | |
| 29. Toolbar | Controlling the toolbar. | |
| 30. Gutter | Controlling the gutter. | |
| 31. Scrollbars | Controlling the scrollbars. | |
| 32. Drag and Drop | Generic API to inter-application communication via specific protocols. | |
| 33. Major and Minor Modes | Defining major and minor modes. | |
| 34. Documentation | Writing and using documentation strings. | |
| 35. Files | Accessing files. | |
| 36. Backups and Auto-Saving | Controlling how backups and auto-save files are made. | |
| 37. Buffers | Creating and using buffer objects. | |
| 38. Windows | Manipulating windows and displaying buffers. | |
| 39. Frames | Making multiple X windows. | |
| 40. Consoles and Devices | Opening frames on multiple TTY's or X displays. | |
| 41. Positions | Buffer positions and motion functions. | |
| 42. Markers | Markers represent positions and update automatically when the text is changed. | |
| 43. Text | Examining and changing text in buffers. | |
| 44. Searching and Matching | Searching buffers for strings or regexps. | |
| 45. Syntax Tables | The syntax table controls word and list parsing. | |
| 46. Abbrevs And Abbrev Expansion | How Abbrev mode works, and its data structures. | |
| 47. Extents | Extents are regions of text with particular display characteristics. | |
| 48. Specifiers | How faces and glyphs are specified. | |
| 49. Faces and Window-System Objects | A face is a set of display characteristics specifying how text is to be displayed. | |
| 50. Glyphs | General interface to pixmaps displayed in a buffer or frame. | |
| 51. Annotations | Higher-level interface to glyphs in a buffer. | |
| 52. Emacs Display | Parameters controlling screen usage. The bell. Waiting for input. | |
| 53. Hash Tables | Fast data structures for mappings. | |
| 54. Range Tables | Keeping track of ranges of numbers. | |
| 55. Databases | An interface to standard DBM and DB databases. | |
| 56. Processes | Running and communicating with subprocesses. | |
| 57. Operating System Interface | Getting the user id, system type, environment variables, and other such things. | |
| 58. Functions Specific to the X Window System | Functions specific to the X Window System. | |
| 59. ToolTalk Support | Interfacing with the ToolTalk message service. | |
| 60. LDAP Support | Interfacing with the Lightweight Directory Access Protocol. | |
| 61. PostgreSQL Support | Interfacing to the PostgreSQL libpq library. | |
| 62. Internationalization | How Emacs supports different languages and cultural conventions. | |
| 63. MULE | Specifics of the Asian-language support. | |
| Appendices | ||
| A. Tips and Standards | Advice for writing Lisp programs. | |
| B. Building XEmacs; Allocation of Objects | Behind-the-scenes information about XEmacs. | |
| C. Standard Errors | List of all error symbols. | |
| D. Buffer-Local Variables | List of variables local in all buffers. | |
| E. Standard Keymaps | List of standard keymaps. | |
| F. Standard Hooks | List of standard hook variables. | |
| Index | Index including concepts, functions, variables, and other terms. | |
| -- The Detailed Node Listing --- | ||
| Here are other nodes that are inferiors of those already listed, | ||
| mentioned here so you can get to them in one step: | ||
| Introduction | ||
| 1.1 Caveats | Flaws and a request for help. | |
| 1.2 Lisp History | XEmacs Lisp is descended from Maclisp. | |
| 1.3 Conventions | How the manual is formatted. | |
| 1.4 Acknowledgements | The authors, editors, and sponsors of this manual. | |
| Conventions | ||
| 1.3.1 Some Terms | Explanation of terms we use in this manual. | |
1.3.2 nil and t | How the symbols nil and t are used. | |
| 1.3.3 Evaluation Notation | The format we use for examples of evaluation. | |
| 1.3.4 Printing Notation | The format we use for examples that print output. | |
| 1.3.5 Error Messages | The format we use for examples of errors. | |
| 1.3.6 Buffer Text Notation | The format we use for buffer contents in examples. | |
| 1.3.7 Format of Descriptions | Notation for describing functions, variables, etc. | |
| Format of Descriptions | ||
| 1.3.7.1 A Sample Function Description | ||
| 1.3.7.2 A Sample Variable Description | ||
| Packaging | ||
| 3. An overview of the XEmacs Packaging System | Lisp Libraries and Packages. | |
| Package Terminology: | Basic stuff. | |
| Building Packages: | Turn packaged source into a tarball. | |
| The Local.rules File: | Tell the XEmacs Packaging System about your host. | |
| 5. Creating Packages: | Tell the XEmacs Packaging System about your package. | |
| 7.2 Issues | ||
| Package Overview | ||
| 3.1 The User View | ||
| 3.2 The Library Maintainer View | ||
| 3.2.4 The Package Release Engineer View | ||
| The Library Maintainer's View | ||
| 3.2.1 Infrastructure | Global Makefiles and common rules. | |
| 3.2.2 Control Files | Package-specific Makefiles and administrative files. | |
| 3.2.3 Obtaining the XEmacs Packaging System and Required Utilities | Obtaining the XEmacs Packaging System and utilities. | |
| Creating Packages | ||
| 6. package-info.in | ||
| 7. `Makefile' | ||
| 4. `Makefile' targets | ||
| Lisp Data Types | ||
| 8.1 Printed Representation and Read Syntax | How Lisp objects are represented as text. | |
| 8.2 Comments | Comments and their formatting conventions. | |
| 8.4 Programming Types | Types found in all Lisp systems. | |
| 8.5 Editing Types | Types specific to XEmacs. | |
| 8.7 Type Predicates | Tests related to types. | |
| 8.8 Equality Predicates | Tests of equality between any two objects. | |
| Programming Types | ||
| 8.4.1 Integer Type | Numbers without fractional parts. | |
| 8.4.2 Floating Point Type | Numbers with fractional parts and with a large range. | |
| 8.4.3 Character Type | The representation of letters, numbers and control characters. | |
| 8.4.5 Sequence Types | Both lists and arrays are classified as sequences. | |
| 8.4.6 Cons Cell and List Types | Cons cells, and lists (which are made from cons cells). | |
| 8.4.7 Array Type | Arrays include strings and vectors. | |
| 8.4.8 String Type | An (efficient) array of characters. | |
| 8.4.9 Vector Type | One-dimensional arrays. | |
| 8.4.4 Symbol Type | A multi-use object that refers to a function, variable, property list, or itself. | |
| 8.4.11 Function Type | A piece of executable code you can call from elsewhere. | |
| 8.4.12 Macro Type | A method of expanding an expression into another expression, more fundamental but less pretty. | |
| 8.4.13 Primitive Function Type | A function written in C, callable from Lisp. | |
| 8.4.14 Compiled-Function Type | A function written in Lisp, then compiled. | |
| 8.4.15 Autoload Type | A type used for automatically loading seldom-used functions. | |
| Cons Cell Type | ||
| 8.4.6.1 Dotted Pair Notation | An alternative syntax for lists. | |
| 8.4.6.2 Association List Type | A specially constructed list. | |
| Editing Types | ||
| 8.5.1 Buffer Type | The basic object of editing. | |
| 8.5.4 Window Type | What makes buffers visible. | |
| 8.5.8 Window Configuration Type | Save what the screen looks like. | |
| 8.5.2 Marker Type | A position in a buffer. | |
| 8.5.10 Process Type | A process running on the underlying OS. | |
| 8.5.11 Stream Type | Receive or send characters. | |
| 8.5.12 Keymap Type | What function a keystroke invokes. | |
| 8.5.13 Syntax Table Type | What a character means. | |
| Numbers | ||
| 9.1 Integer Basics | Representation and range of integers. | |
| 9.4.2 Ratio Basics | Representation and range of rational numbers. | |
| 9.3 Floating Point Basics | Representation and range of floating point. | |
| 9.4 The Bignum Extension | Arbitrary precision integers, ratios, and floats. | |
| 9.5 Type Predicates for Numbers | Testing for numbers. | |
| 9.6 Comparison of Numbers | Equality and inequality predicates. | |
| 9.8 Arithmetic Operations | How to add, subtract, multiply and divide. | |
| 9.10 Bitwise Operations on Integers | Logical and, or, not, shifting. | |
| 9.7 Numeric Conversions | Converting float to integer and vice versa. | |
| 9.11 Standard Mathematical Functions | Trig, exponential and logarithmic functions. | |
| 9.12 Random Numbers | Obtaining random integers, predictable or not. | |
| Strings and Characters | ||
| 10.1 String and Character Basics | Basic properties of strings and characters. | |
| 10.2 The Predicates for Strings | Testing whether an object is a string or char. | |
| 10.3 Creating Strings | Functions to allocate new strings. | |
| 10.4 The Predicates for Characters | Testing whether an object is a character. | |
| 10.5 Character Codes | Each character has an equivalent integer. | |
| 10.6 Comparison of Characters and Strings | Comparing characters or strings. | |
| 10.7 Conversion of Characters and Strings | Converting characters or strings and vice versa. | |
| 10.8 Modifying Strings | Changing characters in a string. | |
| 10.9 String Properties | Additional information attached to strings. | |
| 10.10 Formatting Strings | format: XEmacs's analog of printf. | |
| 10.11 Character Case | Case conversion functions. | |
| 10.13 The Char Table | Mapping from characters to Lisp objects. | |
| 10.12 The Case Table | Customizing case conversion. | |
| Lists | ||
| 11.1 Lists and Cons Cells | How lists are made out of cons cells. | |
| 11.2 Lists as Linked Pairs of Boxes | Graphical notation to explain lists. | |
| 11.3 Predicates on Lists | Is this object a list? Comparing two lists. | |
| 11.4 Accessing Elements of Lists | Extracting the pieces of a list. | |
| 11.5 Building Cons Cells and Lists | Creating list structure. | |
| 11.6 Modifying Existing List Structure | Storing new pieces into an existing list. | |
| 11.7 Using Lists as Sets | A list can represent a finite mathematical set. | |
| 11.8 Association Lists | A list can represent a finite relation or mapping. | |
| 11.9 Property Lists | A different way to represent a finite mapping. | |
| 11.10 Weak Lists | A list with special garbage-collection behavior. | |
| Modifying Existing List Structure | ||
11.6.1 Altering List Elements with setcar | Replacing an element in a list. | |
| 11.6.2 Altering the CDR of a List | Replacing part of the list backbone. This can be used to remove or add elements. | |
| 11.6.3 Functions that Rearrange Lists | Reordering the elements in a list; combining lists. | |
| Sequences, Arrays, and Vectors | ||
| 12.1 Sequences | Functions that accept any kind of sequence. | |
| 12.2 Arrays | Characteristics of arrays in XEmacs Lisp. | |
| 12.3 Functions that Operate on Arrays | Functions specifically for arrays. | |
| 12.4 Vectors | Functions specifically for vectors. | |
| Symbols | ||
| 13.1 Symbol Components | Symbols have names, values, function definitions and property lists. | |
| 13.2 Defining Symbols | A definition says how a symbol will be used. | |
| 13.3 Creating and Interning Symbols | How symbols are kept unique. | |
| 13.4 Symbol Properties | Each symbol has a property list for recording miscellaneous information. | |
| Evaluation | ||
| 14.1 Introduction to Evaluation | Evaluation in the scheme of things. | |
| 14.2 Eval | How to invoke the Lisp interpreter explicitly. | |
| 14.3 Kinds of Forms | How various sorts of objects are evaluated. | |
| 14.4 Quoting | Avoiding evaluation (to put constants in the program). | |
| Kinds of Forms | ||
| 14.3.1 Self-Evaluating Forms | Forms that evaluate to themselves. | |
| 14.3.2 Symbol Forms | Symbols evaluate as variables. | |
| 14.3.3 Classification of List Forms | How to distinguish various sorts of list forms. | |
| 14.3.5 Evaluation of Function Forms | Forms that call functions. | |
| 14.3.6 Lisp Macro Evaluation | Forms that call macros. | |
| 14.3.7 Special Operators | "Special operators" are idiosyncratic primitives, most of them extremely important. | |
| 14.3.8 Autoloading | Functions set up to load files containing their real definitions. | |
| Control Structures | ||
| 15.1 Sequencing | Evaluation in textual order. | |
| 15.2 Conditionals | if, cond. | |
| 15.3 Constructs for Combining Conditions | and, or, not. | |
| 15.4 Iteration | while loops. | |
| 15.5 Nonlocal Exits | Jumping out of a sequence. | |
| Nonlocal Exits | ||
15.5.1 Explicit Nonlocal Exits: catch and throw | Nonlocal exits for the program's own purposes. | |
15.5.2 Examples of catch and throw | Showing how such nonlocal exits can be written. | |
| 15.5.3 Errors | How errors are signaled and handled. | |
| 15.5.4 Cleaning Up from Nonlocal Exits | Arranging to run a cleanup form if an error happens. | |
| Errors | ||
| 15.5.3.1 How to Signal an Error | How to report an error. | |
| 15.5.3.2 How XEmacs Processes Errors | What XEmacs does when you report an error. | |
| 15.5.3.3 Writing Code to Handle Errors | How you can trap errors and continue execution. | |
| 15.5.3.4 Error Symbols and Condition Names | How errors are classified for trapping them. | |
| Variables | ||
| 16.1 Global Variables | Variable values that exist permanently, everywhere. | |
| 16.2 Variables That Never Change | Certain "variables" have values that never change. | |
| 16.3 Local Variables | Variable values that exist only temporarily. | |
| 16.4 When a Variable is "Void" | Symbols that lack values. | |
| 16.5 Defining Global Variables | A definition says a symbol is used as a variable. | |
| 16.6 Accessing Variable Values | Examining values of variables whose names are known only at run time. | |
| 16.7 How to Alter a Variable Value | Storing new values in variables. | |
| 16.8 Scoping Rules for Variable Bindings | How Lisp chooses among local and global values. | |
| 16.9 Buffer-Local Variables | Variable values in effect only in one buffer. | |
| Scoping Rules for Variable Bindings | ||
| 16.8.1 Scope | Scope means where in the program a value is visible. Comparison with other languages. | |
| 16.8.2 Extent | Extent means how long in time a value exists. | |
| 16.8.3 Implementation of Dynamic Scoping | Two ways to implement dynamic scoping. | |
| 16.8.4 Proper Use of Dynamic Scoping | How to use dynamic scoping carefully and avoid problems. | |
| Buffer-Local Variables | ||
| 16.9.1 Introduction to Buffer-Local Variables | Introduction and concepts. | |
| 16.9.2 Creating and Deleting Buffer-Local Bindings | Creating and destroying buffer-local bindings. | |
| 16.9.3 The Default Value of a Buffer-Local Variable | The default value is seen in buffers that don't have their own local values. | |
| Functions | ||
| 17.1 What Is a Function? | Lisp functions vs primitives; terminology. | |
| 17.2 Lambda Expressions | How functions are expressed as Lisp objects. | |
| 17.3 Naming a Function | A symbol can serve as the name of a function. | |
| 17.4 Defining Functions | Lisp expressions for defining functions. | |
| 17.5 Calling Functions | How to use an existing function. | |
| 17.6 Mapping Functions | Applying a function to each element of a list, etc. | |
| 17.7 Anonymous Functions | Lambda-expressions are functions with no names. | |
| 17.8 Accessing Function Cell Contents | Accessing or setting the function definition of a symbol. | |
| 17.10 Other Topics Related to Functions | Cross-references to specific Lisp primitives that have a special bearing on how functions work. | |
| Lambda Expressions | ||
| 17.2.1 Components of a Lambda Expression | The parts of a lambda expression. | |
| 17.2.2 A Simple Lambda-Expression Example | A simple example. | |
| 17.2.3 Advanced Features of Argument Lists | Details and special features of argument lists. | |
| 17.2.4 Documentation Strings of Functions | How to put documentation in a function. | |
| Macros | ||
| 18.1 A Simple Example of a Macro | A basic example. | |
| 18.2 Expansion of a Macro Call | How, when and why macros are expanded. | |
| 18.3 Macros and Byte Compilation | How macros are expanded by the compiler. | |
| 18.4 Defining Macros | How to write a macro definition. | |
| 18.5 Backquote | Easier construction of list structure. | |
| 18.6 Common Problems Using Macros | Don't evaluate the macro arguments too many times. Don't hide the user's variables. | |
| Loading | ||
| 20.1 How Programs Do Loading | The load function and others. | |
| 20.2 Autoload | Setting up a function to autoload. | |
| 20.4 Features | Loading a library if it isn't already loaded. | |
| 20.3 Repeated Loading | Precautions about loading a file twice. | |
| Byte Compilation | ||
| 21.1 Performance of Byte-Compiled Code | An example of speedup from byte compilation. | |
| 21.2 The Compilation Functions | Byte compilation functions. | |
| 21.4 Documentation Strings and Compilation | Dynamic loading of documentation strings. | |
| 21.5 Dynamic Loading of Individual Functions | Dynamic loading of individual functions. | |
| 21.6 Evaluation During Compilation | Code to be evaluated when you compile. | |
| 21.7 Compiled-Function Objects | The data type used for byte-compiled functions. | |
| 21.8 Disassembled Byte-Code | Disassembling byte-code; how to read byte-code. | |
| 21.9 Different Behavior | When compiled code gives different results. | |
| Debugging Lisp Programs | ||
| 22.1 The Lisp Debugger | How the XEmacs Lisp debugger is implemented. | |
| 22.2 Debugging Invalid Lisp Syntax | How to find syntax errors. | |
| 22.3 Debugging Problems in Compilation | How to find errors that show up in byte compilation. | |
| 22.4 Edebug | A source-level XEmacs Lisp debugger. | |
| The Lisp Debugger | ||
| 22.1.1 Entering the Debugger on an Error | Entering the debugger when an error happens. | |
| 22.1.3 Entering the Debugger on a Function Call | Entering it when a certain function is called. | |
| 22.1.4 Explicit Entry to the Debugger | Entering it at a certain point in the program. | |
| 22.1.5 Using the Debugger | What the debugger does; what you see while in it. | |
| 22.1.6 Debugger Commands | Commands used while in the debugger. | |
| 22.1.7 Invoking the Debugger | How to call the function debug. | |
| 22.1.8 Internals of the Debugger | Subroutines of the debugger, and global variables. | |
| Debugging Invalid Lisp Syntax | ||
| 22.2.1 Excess Open Parentheses | How to find a spurious open paren or missing close. | |
| 22.2.2 Excess Close Parentheses | How to find a spurious close paren or missing open. | |
| Reading and Printing Lisp Objects | ||
| 23.1 Introduction to Reading and Printing | Overview of streams, reading and printing. | |
| 23.2 Input Streams | Various data types that can be used as input streams. | |
| 23.3 Input Functions | Functions to read Lisp objects from text. | |
| 23.4 Output Streams | Various data types that can be used as output streams. | |
| 23.5 Output Functions | Functions to print Lisp objects as text. | |
| Minibuffers | ||
| 24.1 Introduction to Minibuffers | Basic information about minibuffers. | |
| 24.2 Reading Text Strings with the Minibuffer | How to read a straight text string. | |
| 24.3 Reading Lisp Objects with the Minibuffer | How to read a Lisp object or expression. | |
| 24.5 Completion | How to invoke and customize completion. | |
| 24.6 Yes-or-No Queries | Asking a question with a simple answer. | |
| 24.9 Minibuffer Miscellany | Various customization hooks and variables. | |
| Completion | ||
| 24.5.1 Basic Completion Functions | Low-level functions for completing strings. | |
| (These are too low level to use the minibuffer.) | ||
| 24.5.2 Completion and the Minibuffer | Invoking the minibuffer with completion. | |
| 24.5.3 Minibuffer Commands That Do Completion | Minibuffer commands that do completion. | |
| 24.5.4 High-Level Completion Functions | Convenient special cases of completion | |
| (reading buffer name, file name, etc.) | ||
| 24.5.5 Reading File Names | Using completion to read file names. | |
| 24.5.6 Programmed Completion | Finding the completions for a given file name. | |
| Command Loop | ||
| 25.1 Command Loop Overview | How the command loop reads commands. | |
| 25.2 Defining Commands | Specifying how a function should read arguments. | |
| 25.3 Interactive Call | Calling a command, so that it will read arguments. | |
| 25.4 Information from the Command Loop | Variables set by the command loop for you to examine. | |
| 25.5 Events | What input looks like when you read it. | |
| 25.6 Reading Input | How to read input events from the keyboard or mouse. | |
| 25.7 Waiting for Elapsed Time or Input | Waiting for user input or elapsed time. | |
| 25.8 Quitting | How C-g works. How to catch or defer quitting. | |
| 25.9 Prefix Command Arguments | How the commands to set prefix args work. | |
| 25.10 Recursive Editing | Entering a recursive edit, and why you usually shouldn't. | |
| 25.11 Disabling Commands | How the command loop handles disabled commands. | |
| 25.12 Command History | How the command history is set up, and how accessed. | |
| 25.13 Keyboard Macros | How keyboard macros are implemented. | |
| Defining Commands | ||
25.2.1 Using interactive | General rules for interactive. | |
25.2.2 Code Characters for interactive | The standard letter-codes for reading arguments in various ways. | |
25.2.3 Examples of Using interactive | Examples of how to read interactive arguments. | |
| Events | ||
| 25.5.1 Event Types | Events come in different types. | |
| 25.5.2 Contents of the Different Types of Events | What the contents of each event type are. | |
| 25.5.3 Event Predicates | Querying whether an event is of a particular type. | |
| 25.5.4 Accessing the Position of a Mouse Event | Determining where a mouse event occurred, and over what. | |
| 25.5.5 Accessing the Other Contents of Events | Accessing non-positional event info. | |
| 25.5.6 Working With Events | Creating, copying, and destroying events. | |
| 25.5.7 Converting Events | Converting between events, keys, and characters. | |
| Accessing Mouse Event Positions | ||
| 25.5.4.1 Frame-Level Event Position Info | ||
| 25.5.4.2 Window-Level Event Position Info | ||
| 25.5.4.3 Event Text Position Info | ||
| 25.5.4.4 Event Glyph Position Info | ||
| 25.5.4.5 Event Toolbar Position Info | ||
| 25.5.4.6 Other Event Position Info | ||
| Reading Input | ||
| 25.6.1 Key Sequence Input | How to read one key sequence. | |
| 25.6.2 Reading One Event | How to read just one event. | |
| 25.6.3 Dispatching an Event | What to do with an event once it has been read. | |
| 25.6.4 Quoted Character Input | Asking the user to specify a character. | |
| 25.6.5 Miscellaneous Event Input Features | How to reread or throw away input events. | |
| Keymaps | ||
| 26.1 Keymap Terminology | Definitions of terms pertaining to keymaps. | |
| 26.2 Format of Keymaps | What a keymap looks like as a Lisp object. | |
| 26.3 Creating Keymaps | Functions to create and copy keymaps. | |
| 26.4 Inheritance and Keymaps | How one keymap can inherit the bindings of another keymap. | |
| 26.5 Key Sequences | How to specify key sequences. | |
| 26.6 Prefix Keys | Defining a key with a keymap as its definition. | |
| 26.7 Active Keymaps | Each buffer has a local keymap to override the standard (global) bindings. Each minor mode can also override them. | |
| 26.8 Key Lookup | How extracting elements from keymaps works. | |
| 26.9 Functions for Key Lookup | How to request key lookup. | |
| 26.10 Changing Key Bindings | Redefining a key in a keymap. | |
| 26.11 Commands for Binding Keys | Interactive interfaces for redefining keys. | |
| 26.12 Scanning Keymaps | Looking through all keymaps, for printing help. | |
| 26.13 Other Keymap Functions | Miscellaneous keymap functions. | |
| Menus | ||
| 27.1 Format of Menus | Format of a menu description. | |
| 27.2 Format of the Menubar | How to specify a menubar. | |
| 27.3 Menubar | Functions for controlling the menubar. | |
| 27.4 Modifying Menus | Modifying a menu description. | |
| 27.6 Pop-Up Menus | Functions for specifying pop-up menus. | |
| 27.5 Menu Filters | Filter functions for the default menubar. | |
| 27.8 Buffers Menu | The menu that displays the list of buffers. | |
| Dialog Boxes | ||
| 28.1 Dialog Box Format | ||
| 28.2 Dialog Box Functions | ||
| Toolbar | ||
| 29.1 Toolbar Intro | An introduction. | |
| 29.3 Toolbar Descriptor Format | How to create a toolbar. | |
| 29.4 Specifying the Toolbar | Setting a toolbar. | |
| 29.5 Other Toolbar Variables | Controlling the size of toolbars. | |
| Gutter | ||
| Scrollbars | ||
| Major and Minor Modes | ||
| 33.1 Major Modes | Defining major modes. | |
| 33.2 Minor Modes | Defining minor modes. | |
| 33.3 Modeline Format | Customizing the text that appears in the modeline. | |
| 33.4 Hooks | How to use hooks; how to write code that provides hooks. | |
| Major Modes | ||
| 33.1.1 Major Mode Conventions | Coding conventions for keymaps, etc. | |
| 33.1.2 Major Mode Examples | Text mode and Lisp modes. | |
| 33.1.3 How XEmacs Chooses a Major Mode | How XEmacs chooses the major mode automatically. | |
| 33.1.4 Getting Help about a Major Mode | Finding out how to use a mode. | |
| Minor Modes | ||
| 33.2.1 Conventions for Writing Minor Modes | Tips for writing a minor mode. | |
| 33.2.2 Keymaps and Minor Modes | How a minor mode can have its own keymap. | |
| Modeline Format | ||
| 33.3.1 The Data Structure of the Modeline | The data structure that controls the modeline. | |
| 33.3.2 Variables Used in the Modeline | Variables used in that data structure. | |
33.3.3 %-Constructs in the ModeLine | Putting information into a modeline. | |
| Documentation | ||
| 34.1 Documentation Basics | Good style for doc strings. Where to put them. How XEmacs stores them. | |
| 34.2 Access to Documentation Strings | How Lisp programs can access doc strings. | |
| 34.3 Substituting Key Bindings in Documentation | Substituting current key bindings. | |
| 34.4 Describing Characters for Help Messages | Making printable descriptions of non-printing characters and key sequences. | |
| 34.5 Help Functions | Subroutines used by XEmacs help facilities. | |
| Files | ||
| 35.1 Visiting Files | Reading files into Emacs buffers for editing. | |
| 35.2 Saving Buffers | Writing changed buffers back into files. | |
| 35.3 Reading from Files | Reading files into other buffers. | |
| 35.4 Writing to Files | Writing new files from parts of buffers. | |
| 35.5 File Locks | Locking and unlocking files, to prevent simultaneous editing by two people. | |
| 35.6 Information about Files | Testing existence, accessibility, size of files. | |
| 35.9 Contents of Directories | Getting a list of the files in a directory. | |
| 35.7 Changing File Names and Attributes | Renaming files, changing protection, etc. | |
| 35.8 File Names | Decomposing and expanding file names. | |
| Visiting Files | ||
| 35.1.1 Functions for Visiting Files | The usual interface functions for visiting. | |
| 35.1.2 Subroutines of Visiting | Lower-level subroutines that they use. | |
| Information about Files | ||
| 35.6.1 Testing Accessibility | Is a given file readable? Writable? | |
| 35.6.2 Distinguishing Kinds of Files | Is it a directory? A link? | |
| 35.6.4 Other Information about Files | How large is it? Any other names? Etc. | |
| File Names | ||
| 35.8.1 File Name Components | The directory part of a file name, and the rest. | |
| 35.8.2 Directory Names | A directory's name as a directory is different from its name as a file. | |
| 35.8.3 Absolute and Relative File Names | Some file names are relative to a current directory. | |
| 35.8.4 Functions that Expand Filenames | Converting relative file names to absolute ones. | |
| 35.8.5 Generating Unique File Names | Generating names for temporary files. | |
| 35.8.6 File Name Completion | Finding the completions for a given file name. | |
| Backups and Auto-Saving | ||
| 36.1 Backup Files | How backup files are made; how their names are chosen. | |
| 36.2 Auto-Saving | How auto-save files are made; how their names are chosen. | |
| 36.3 Reverting | revert-buffer, and how to customize
what it does. | |
| Backup Files | ||
| 36.1.1 Making Backup Files | How XEmacs makes backup files, and when. | |
| 36.1.2 Backup by Renaming or by Copying? | Two alternatives: renaming the old file or copying it. | |
| 36.1.3 Making and Deleting Numbered Backup Files | Keeping multiple backups for each source file. | |
| 36.1.4 Naming Backup Files | How backup file names are computed; customization. | |
| Buffers | ||
| 37.1 Buffer Basics | What is a buffer? | |
| 37.3 Buffer Names | Accessing and changing buffer names. | |
| 37.4 Buffer File Name | The buffer file name indicates which file is visited. | |
| 37.5 Buffer Modification | A buffer is modified if it needs to be saved. | |
| 37.6 Comparison of Modification Time | Determining whether the visited file was changed | |
| "behind XEmacs's back". | ||
| 37.7 Read-Only Buffers | Modifying text is not allowed in a read-only buffer. | |
| 37.8 The Buffer List | How to look at all the existing buffers. | |
| 37.9 Creating Buffers | Functions that create buffers. | |
| 37.10 Killing Buffers | Buffers exist until explicitly killed. | |
| 37.2 The Current Buffer | Designating a buffer as current so primitives will access its contents. | |
| Windows | ||
| 38.1 Basic Concepts of Emacs Windows | Basic information on using windows. | |
| 38.2 Splitting Windows | Splitting one window into two windows. | |
| 38.3 Deleting Windows | Deleting a window gives its space to other windows. | |
| 38.4 Selecting Windows | The selected window is the one that you edit in. | |
| 38.5 Cyclic Ordering of Windows | Moving around the existing windows. | |
| 38.6 Buffers and Windows | Each window displays the contents of a buffer. | |
| 38.7 Displaying Buffers in Windows | Higher-lever functions for displaying a buffer and choosing a window for it. | |
| 38.9 Windows and Point | Each window has its own location of point. | |
| 38.10 The Window Start Position | The display-start position controls which text is on-screen in the window. | |
| 38.11 Vertical Scrolling | Moving text up and down in the window. | |
| 38.12 Horizontal Scrolling | Moving text sideways on the window. | |
| 38.13 The Size of a Window | Accessing the size of a window. | |
| 38.15 Changing the Size of a Window | Changing the size of a window. | |
| 38.16 Window Configurations | Saving and restoring the state of the screen. | |
| Frames | ||
| 39.1 Creating Frames | Creating additional frames. | |
| 39.2 Frame Properties | Controlling frame size, position, font, etc. | |
| 39.3 Frame Titles | Automatic updating of frame titles. | |
| 39.4 Deleting Frames | Frames last until explicitly deleted. | |
| 39.5 Finding All Frames | How to examine all existing frames. | |
| 39.6 Frames and Windows | A frame contains windows; display of text always works through windows. | |
| 39.7 Minibuffers and Frames | How a frame finds the minibuffer to use. | |
| 39.8 Input Focus | Specifying the selected frame. | |
| 39.9 Visibility of Frames | Frames may be visible or invisible, or icons. | |
| 39.10 Raising and Lowering Frames | Raising a frame makes it hide other X windows; lowering it makes the others hide them. | |
| 39.12 Hooks for Customizing Frame Behavior | Hooks for customizing frame behavior. | |
| Positions | ||
| 41.1 Point | The special position where editing takes place. | |
| 41.2 Motion | Changing point. | |
| 41.3 Excursions | Temporary motion and buffer changes. | |
| 41.4 Narrowing | Restricting editing to a portion of the buffer. | |
| Motion | ||
| 41.2.1 Motion by Characters | Moving in terms of characters. | |
| 41.2.2 Motion by Words | Moving in terms of words. | |
| 41.2.3 Motion to an End of the Buffer | Moving to the beginning or end of the buffer. | |
| 41.2.4 Motion by Text Lines | Moving in terms of lines of text. | |
| 41.2.5 Motion by Screen Lines | Moving in terms of lines as displayed. | |
| 41.2.6 Moving over Balanced Expressions | Moving by parsing lists and sexps. | |
| 41.2.7 Skipping Characters | Skipping characters belonging to a certain set. | |
| Markers | ||
| 42.1 Overview of Markers | The components of a marker, and how it relocates. | |
| 42.2 Predicates on Markers | Testing whether an object is a marker. | |
| 42.3 Functions That Create Markers | Making empty markers or markers at certain places. | |
| 42.4 Information from Markers | Finding the marker's buffer or character position. | |
| 42.5 Changing Marker Positions | Moving the marker to a new buffer or position. | |
| 42.6 The Mark | How "the mark" is implemented with a marker. | |
| 42.7 The Region | How to access "the region". | |
| Text | ||
| 43.1 Examining Text Near Point | Examining text in the vicinity of point. | |
| 43.2 Examining Buffer Contents | Examining text in a general fashion. | |
| 43.3 Comparing Text | Comparing substrings of buffers. | |
| 43.4 Inserting Text | Adding new text to a buffer. | |
| 43.5 User-Level Insertion Commands | User-level commands to insert text. | |
| 43.6 Deleting Text | Removing text from a buffer. | |
| 43.7 User-Level Deletion Commands | User-level commands to delete text. | |
| 43.8 The Kill Ring | Where removed text sometimes is saved for later use. | |
| 43.9 Undo | Undoing changes to the text of a buffer. | |
| 43.10 Maintaining Undo Lists | How to enable and disable undo information. How to control how much information is kept. | |
| 43.11 Filling | Functions for explicit filling. | |
| 43.12 Margins for Filling | How to specify margins for filling commands. | |
| 43.13 Auto Filling | How auto-fill mode is implemented to break lines. | |
| 43.14 Sorting Text | Functions for sorting parts of the buffer. | |
| 43.15 Counting Columns | Computing horizontal positions, and using them. | |
| 43.16 Indentation | Functions to insert or adjust indentation. | |
| 43.17 Case Changes | Case conversion of parts of the buffer. | |
| 43.18 Text Properties | Assigning Lisp property lists to text characters. | |
| 43.19 Substituting for a Character Code | Replacing a given character wherever it appears. | |
| 43.20 Registers | How registers are implemented. Accessing the text or position stored in a register. | |
| 43.21 Transposition of Text | Swapping two portions of a buffer. | |
| 43.22 Change Hooks | Supplying functions to be run when text is changed. | |
| The Kill Ring | ||
| 43.8.1 Kill Ring Concepts | What text looks like in the kill ring. | |
| 43.8.2 Functions for Killing | Functions that kill text. | |
| 43.8.3 Functions for Yanking | Commands that access the kill ring. | |
| 43.8.4 Low-Level Kill Ring | Functions and variables for kill ring access. | |
| 43.8.5 Internals of the Kill Ring | Variables that hold kill-ring data. | |
| Indentation | ||
| 43.16.1 Indentation Primitives | Functions used to count and insert indentation. | |
| 43.16.2 Indentation Controlled by Major Mode | Customize indentation for different modes. | |
| 43.16.3 Indenting an Entire Region | Indent all the lines in a region. | |
| 43.16.4 Indentation Relative to Previous Lines | Indent the current line based on previous lines. | |
| 43.16.5 Adjustable "Tab Stops" | Adjustable, typewriter-like tab stops. | |
| 43.16.6 Indentation-Based Motion Commands | Move to first non-blank character. | |
| Searching and Matching | ||
| 44.1 Searching for Strings | Search for an exact match. | |
| 44.2 Regular Expressions | Describing classes of strings. | |
| 44.3 Regular Expression Searching | Searching for a match for a regexp. | |
| 44.6 The Match Data | Finding out which part of the text matched various parts of a regexp, after regexp search. | |
| 44.6.4 Saving and Restoring the Match Data | Saving and restoring this information. | |
| 44.8 Standard Regular Expressions Used in Editing | Useful regexps for finding sentences, pages,... | |
| 44.7 Searching and Case | Case-independent or case-significant searching. | |
| Regular Expressions | ||
| 44.2.1 Syntax of Regular Expressions | Rules for writing regular expressions. | |
| 44.2.2 Complex Regexp Example | Illustrates regular expression syntax. | |
| Syntax Tables | ||
| 45.2 Syntax Descriptors | How characters are classified. | |
| 45.3 Syntax Table Functions | How to create, examine and alter syntax tables. | |
| 45.5 Parsing Balanced Expressions | Parsing balanced expressions using the syntax table. | |
| 45.6 Some Standard Syntax Tables | Syntax tables used by various major modes. | |
| 45.7 Syntax Table Internals | How syntax table information is stored. | |
| Syntax Descriptors | ||
| 45.2.1 Table of Syntax Classes | Table of syntax classes. | |
| 45.2.2 Syntax Flags | Additional flags each character can have. | |
| Abbrevs And Abbrev Expansion | ||
| 46.1 Setting Up Abbrev Mode | Setting up XEmacs for abbreviation. | |
| 46.2 Abbrev Tables | Creating and working with abbrev tables. | |
| 46.3 Defining Abbrevs | Specifying abbreviations and their expansions. | |
| 46.4 Saving Abbrevs in Files | Saving abbrevs in files. | |
| 46.5 Looking Up and Expanding Abbreviations | Controlling expansion; expansion subroutines. | |
| 46.6 Standard Abbrev Tables | Abbrev tables used by various major modes. | |
| Extents | ||
| 47.1 Introduction to Extents | Extents are regions over a buffer or string. | |
| 47.2 Creating and Modifying Extents | Basic extent functions. | |
| 47.3 Extent Endpoints | Accessing and setting the bounds of an extent. | |
| 47.4 Finding Extents | Determining which extents are in an object. | |
| 47.5 Mapping Over Extents | More sophisticated functions for extent scanning. | |
| 47.6 Properties of Extents | Extents have built-in and user-definable properties. | |
| 47.7 Detached Extents | Extents that are not in a buffer. | |
| 47.8 Extent Parents | Inheriting properties from another extent. | |
| 47.9 Duplicable Extents | Extents can be marked to be copied into strings. | |
| 47.10 Interaction of Extents with Keyboard and Mouse Events | Extents can interact with the keyboard and mouse. | |
| 47.11 Atomic Extents | Treating a block of text as a single entity. | |
| Specifiers | ||
| 48.1 Introduction to Specifiers | Specifiers provide a clean way for display and other properties to vary | |
| (under user control) in a wide variety | ||
| of contexts. | ||
| 48.3 In-Depth Overview of a Specifier | Gory details about specifier innards. | |
| 48.4 How a Specifier Is Instantiated | Instantiation means obtaining the "value" of a specifier in a particular context. | |
| 48.5 Specifier Types | Specifiers come in different flavors. | |
| 48.6 Adding specifications to a Specifier | Specifications control a specifier's "value" by giving conditions under which a particular value is valid. | |
| 48.7 Retrieving the Specifications from a Specifier | Querying a specifier's specifications. | |
| 48.9 Functions for Instantiating a Specifier | Functions to instantiate a specifier. | |
| 48.10 Examples of Specifier Usage | Making all this stuff clearer. | |
| 48.11 Creating New Specifier Objects | Creating specifiers for your own use. | |
| 48.12 Functions for Checking the Validity of Specifier Components | Validating the components of a specifier. | |
| 48.13 Other Functions for Working with Specifications in a Specifier | Other ways of working with specifications. | |
| Faces and Window-System Objects | ||
| 49.1 Faces | Controlling the way text looks. | |
| 49.2 Fonts | Controlling the typeface of text. | |
| 49.3 Colors | Controlling the color of text and pixmaps. | |
| Faces | ||
| 49.1.1 Merging Faces for Display | How XEmacs decides which face to use for a character. | |
| 49.1.2 Basic Functions for Working with Faces | How to define and examine faces. | |
| 49.1.3 Face Properties | How to access and modify a face's properties. | |
| 49.1.4 Face Convenience Functions | Convenience functions for accessing particular properties of a face. | |
| 49.1.5 Other Face Display Functions | Other functions pertaining to how a a face appears. | |
| Fonts | ||
| 49.2.1 Font Specifiers | Specifying how a font will appear. | |
| 49.2.2 Font Instances | What a font specifier gets instantiated as. | |
| 49.2.3 Font Instance Names | The name of a font instance. | |
| 49.2.4 Font Instance Size | The size of a font instance. | |
| 49.2.5 Font Instance Characteristics | Display characteristics of font instances. | |
| 49.2.6 Font Convenience Functions | Convenience functions that automatically instantiate and retrieve the properties of a font specifier. | |
| Colors | ||
| 49.3.1 Color Specifiers | Specifying how a color will appear. | |
| 49.3.2 Color Instances | What a color specifier gets instantiated as. | |
| 49.3.3 Color Instance Properties | Properties of color instances. | |
| 49.3.4 Color Convenience Functions | Convenience functions that automatically instantiate and retrieve the properties of a color specifier. | |
| Glyphs | ||
| 50.1 Glyph Introduction | Glyphs are abstract image specifications. | |
| 50.2 Images | Specifying the appearance of glyphs. | |
| 50.3 Using Glyphs | Creating and displaying glyphs. | |
| 50.4 Manipulating Glyphs | Getting and setting glyph properties. | |
| 50.5 Glyph Examples | Examples of how to work with glyphs. | |
| Images | ||
| 50.2.1 Image Instantiators | Specifying an image's appearance. | |
| 50.2.2 Image Instantiator Conversion | Lazy realization of graphics. | |
| 50.2.3 Image Instantiator Formats | A catalog of image descriptors. | |
| 50.2.4 Image Instances | Classes of graphical objects. | |
| Image Instances | ||
| 50.2.4.1 Image Instance Types | Each image instance has a particular type. | |
| 50.2.4.2 Image Instance Functions | Functions for working with image instances. | |
| Using Glyphs | ||
| 50.3.1 Creating Glyphs | Creating new glyphs. | |
| 50.3.2 Buffer Glyphs | Annotations are glyphs that appear in a buffer. | |
| 50.3.3 Redisplay Glyphs | Glyphs controlling various redisplay functions. | |
| 50.3.4 Frame Glyphs | Displaying glyphs in GUI components of the frame. | |
| 50.3.5 External Glyphs | Icons and mouse pointers for the window system. | |
| 50.3.6 Native GUI Widgets | Complex active elements treated as a single glyph. | |
| 50.3.7 Subwindows | Externally-controlled subwindows in buffers. | |
| Native GUI Widgets | ||
| 50.3.6.1 Introduction to Native Widgets and Subwindow Glyphs | Native widgets provide tight integration of GUI features with the platform GUI. | |
| 50.3.6.2 Lisp API to Native Widgets | Native widgets are glyphs. | |
| 50.3.6.3 Layouts | Specifying composite widgets from Lisp. | |
| 50.3.6.4 Primitive Widgets | Catalogue of available native widgets. | |
| Manipulating Glyphs | ||
| 50.4.1 Glyph Properties | Accessing and modifying a glyph's properties. | |
| 50.4.2 Glyph Convenience Functions | Accessing particular properties of a glyph. | |
| 50.4.3 Glyph Dimensions | Determining the height, width, etc. of a glyph. | |
| 50.4.4 Glyph Types | Each glyph has a particular type. | |
| Annotations | ||
| 51.1 Annotation Basics | Introduction to annotations. | |
| 51.2 Annotation Primitives | Creating and deleting annotations. | |
| 51.3 Annotation Properties | Retrieving and changing the characteristics of an annotation. | |
| 51.5 Margin Primitives | Controlling the size of the margins. | |
| 51.4 Locating Annotations | Looking for annotations in a buffer. | |
| 51.6 Annotation Hooks | Hooks called at certain times during an annotation's lifetime. | |
| Hash Tables | ||
| 53.1 Introduction to Hash Tables | Hash tables are fast data structures for implementing simple tables (i.e. finite mappings from keys to values). | |
| 53.2 Working With Hash Tables | Hash table functions. | |
| 53.3 Weak Hash Tables | Hash tables with special garbage-collection behavior. | |
| Range Tables | ||
| 54.1 Introduction to Range Tables | Range tables efficiently map ranges of integers to values. | |
| 54.2 Working With Range Tables | Range table functions. | |
| XEmacs Display | ||
| 52.1 Refreshing the Screen | Clearing the screen and redrawing everything on it. | |
| 52.2 Truncation | Folding or wrapping long text lines. | |
| 52.3 The Echo Area | Where messages are displayed. | |
| 52.6 Selective Display | Hiding part of the buffer text. | |
| 52.7 The Overlay Arrow | Display of an arrow to indicate position. | |
| 52.8 Temporary Displays | Displays that go away automatically. | |
| 52.9 Blinking Parentheses | How XEmacs shows the matching open parenthesis. | |
| 52.10 Usual Display Conventions | The usual conventions for displaying nonprinting chars. | |
| 52.11 Display Tables | How to specify other conventions. | |
| 52.12 Beeping | Audible signal to the user. | |
| Processes | ||
| 56.1 Functions that Create Subprocesses | Functions that start subprocesses. | |
| 56.2 Creating a Synchronous Process | Details of using synchronous subprocesses. | |
| 56.4 Creating an Asynchronous Process | Starting up an asynchronous subprocess. | |
| 56.5 Deleting Processes | Eliminating an asynchronous subprocess. | |
| 56.6 Process Information | Accessing run-status and other attributes. | |
| 56.7 Sending Input to Processes | Sending input to an asynchronous subprocess. | |
| 56.8 Sending Signals to Processes | Stopping, continuing or interrupting an asynchronous subprocess. | |
| 56.9 Receiving Output from Processes | Collecting output from an asynchronous subprocess. | |
| 56.10 Sentinels: Detecting Process Status Changes | Sentinels run when process run-status changes. | |
| 56.13 Network Connections | Opening network connections. | |
| Receiving Output from Processes | ||
| 56.9.1 Process Buffers | If no filter, output is put in a buffer. | |
| 56.9.2 Process Filter Functions | Filter functions accept output from the process. | |
| 56.9.3 Accepting Output from Processes | How to wait until process output arrives. | |
| Operating System Interface | ||
| 57.1 Starting Up XEmacs | Customizing XEmacs start-up processing. | |
| 57.2 Getting out of XEmacs | How exiting works (permanent or temporary). | |
| 57.3 Operating System Environment | Distinguish the name and kind of system. | |
| 57.8 Terminal Input | Recording terminal input for debugging. | |
| 57.9 Terminal Output | Recording terminal output for debugging. | |
| 57.10 Flow Control | How to turn output flow control on or off. | |
| 57.11 Batch Mode | Running XEmacs without terminal interaction. | |
| Starting Up XEmacs | ||
| 57.1.1 Summary: Sequence of Actions at Start Up | Sequence of actions XEmacs performs at start-up. | |
| 57.1.2 The Init File: `.emacs' | Details on reading the init file (`.emacs'). | |
| 57.1.3 Terminal-Specific Initialization | How the terminal-specific Lisp file is read. | |
| 57.1.4 Command Line Arguments | How command line arguments are processed, and how you can customize them. | |
| Getting out of XEmacs | ||
| 57.2.1 Killing XEmacs | Exiting XEmacs irreversibly. | |
| 57.2.2 Suspending XEmacs | Exiting XEmacs reversibly. | |
| X-Windows | ||
| 58.1 X Selections | Transferring text to and from other X clients. | |
| 58.2 X Server | Information about the X server connected to a particular device. | |
| 58.2.1 Resources | Getting resource values from the server. | |
| 58.2.2 Data about the X Server | Getting info about the X server. | |
| 58.2.3 Restricting Access to the Server by Other Apps | Restricting access to the server by other apps. | |
| 58.3 Miscellaneous X Functions and Variables | Other X-specific functions and variables. | |
| ToolTalk Support | ||
| 59.1 XEmacs ToolTalk API Summary | ||
| 59.2 Sending Messages | ||
| 59.3 Receiving Messages | ||
| LDAP Support | ||
| 60.1 Building XEmacs with LDAP support | How to add LDAP support to XEmacs | |
| 60.2 XEmacs LDAP API | Lisp access to LDAP functions | |
| 60.3 Syntax of Search Filters | A brief summary of RFC 1558 | |
| XEmacs LDAP API | ||
| 60.2.1 LDAP Variables | Lisp variables related to LDAP | |
| 60.2.2 The High-Level LDAP API | High-level LDAP lisp functions | |
| 60.2.3 The Low-Level LDAP API | Low-level LDAP lisp primitives | |
| 60.2.4 LDAP Internationalization | I18n variables and functions | |
| The Low-Level LDAP API | ||
| 60.2.3.1 The LDAP Lisp Object | ||
| 60.2.3.2 Opening and Closing a LDAP Connection | ||
| 60.2.3.3 Low-level Operations on a LDAP Server | ||
| LDAP Internationalization | ||
| 60.2.4.1 LDAP Internationalization Variables | ||
| 60.2.4.2 Encoder/Decoder Functions | ||
| Internationalization | ||
| 62.1 I18N Levels 1 and 2 | Support for different time, date, and currency formats. | |
| 62.2 I18N Level 3 | Support for localized messages. | |
| 62.3 I18N Level 4 | Support for Asian languages. | |
| MULE | ||
| 63.1 Internationalization Terminology | Definition of various internationalization terms. | |
| 63.2 Charsets | Sets of related characters. | |
| 63.3 MULE Characters | Working with characters in XEmacs/MULE. | |
| 63.4 Composite Characters | Making new characters by overstriking other ones. | |
| 63.6 ISO 2022 | An international standard for charsets and encodings. | |
| 63.5 Coding Systems | Ways of representing a string of chars using integers. | |
| 63.7 CCL | A special language for writing fast converters. | |
| 63.8 Category Tables | Subdividing charsets into groups. | |
| Tips | ||
| A.1 Writing Clean Lisp Programs | Writing clean and robust programs. | |
| A.2 Tips for Making Compiled Code Fast | Making compiled code run fast. | |
| A.3 Tips for Documentation Strings | Writing readable documentation strings. | |
| A.4 Tips on Writing Comments | Conventions for writing comments. | |
| A.5 Conventional Headers for XEmacs Libraries | Standard headers for library packages. | |
| Building XEmacs and Object Allocation | ||
| B.1 Building XEmacs | How to preload Lisp libraries into XEmacs. | |
| B.2 Garbage Collection | Reclaiming space for Lisp objects no longer used. | |