[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
LYNX-DEV <base href> change hurts me badly
From: |
Will Mengarini |
Subject: |
LYNX-DEV <base href> change hurts me badly |
Date: |
Thu, 13 Feb 1997 09:28:16 -0800 (PST) |
I just built the new Lynx 2-7. I have been using the 2-6 release.
One of the things that was working fine with 2-6 was accessing some
Emacs documentation on the web. The complete reference manuals for
the editor & for e-lisp are available, but their tables of contents
are so large that I found it worth the time to code a script that
created a more hierarchical table of contents from the canonical one.
My hierarchical table would have a page of entries showing each of
the major topics, & each of those topics would link to its subtopics.
The subtopics might link directly to the text, which would be
an http:// URL linking to the copy on the remote server, or they might
link to subsubtopics, which would be further down in the local table
of contents. So http:// links were intermixed with file:// links.
This local table of contents was built from a remote copy that used
entirely relative URLs internally, so what I did to intermix the
two types of links was put in <base href> tags to indicate whether
the relative URLs were to refer to the remote copy or to a subtopic
list further down in the document. This worked fine under 2-6.
There were 80 <base href> tags in the 627-line document.
I have several such local tables of contents.
When I tried to load the file under 2-7, I got a display "Alert!: HREF
in BASE tag is not an absolute URL.", & then Lynx appeared to hang;
I had to terminate with ^C. After puzzling over this for a while,
I realized this wasn't really a hang; it was pausing after each of
numerous <base href> tags that it used to accept but no longer accepted,
probably 2 seconds each, & since there are so many, the result appears
to be a hang. I was able to get the file to load with -nopause.
However, that's a new feature in 2-7, & very few users will know
about it. What will actually happen is that as soon as they try the
new Lynx on a file like this that used to work, they'll observe what
appears to be a program failure, conclude that the upgrade is bogus, &
be disinclined in the future to trust upgrades from lynx.browser.org.
Therefore, increasing numbers of users will continue using old versions
of the browser & trying to get support for it, &, when they ask for help
from the mailing lists, will disregard advice to upgrade. It shouldn't
require some special command-line switch, because almost nobody will
know about that switch, & will just assume the upgrade is failing.
Imagine that happening when the user is a patron of a public
library. Not only won't the patron know what's wrong, neither will
the librarian, nor even (realistically) the library's computer
"gurus". The only way they'll be able to get around the Lynx
"hang" is by *rebooting*, & when the trouble report reaches the
library's gurus, they'll immediately downgrade to the previous
version of Lynx, & be strongly disinclined to ever upgrade again.
Imagine the same scenario at ISPs with unsophisticated sysops.
That, however, is only the first problem. It seems to me that the
way I used <base href> is very useful & desirable. I'm not sure
what problem is supposed to be being solved by the new restrictions.
If it's just a matter of conforming to some RFC that Netscrape &
Exploiter do not conform to, then imposing this extra bondage &
discipline on Lynx users merely constitutes an additional disincentive
to use Lynx. This may be a situation analogous to "historical
comments"; doing "the right thing" is a useful capability if HTML
is correct, but causes major lossage in real life, so we needed the
historical comments option in lynx.cfg, & needed to make it the default.
Even if the new <base href> discipline does solve a problem
in real life, it's likely to also create other problems,
so it might be wiser for the old behavior to be the
default, & the "right thing" to be an option in lynx.cfg.
Here's a snippet from the beginning of one of these
HTML files. The comment describes the creation of the
original HTML file; the file below is modified from that.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<!-- This HTML file has been created by texi2html 1.27
from emacs.texi on 3 March 1994 -->
<TITLE>GNU Emacs Manual - Table of Contents</TITLE>
<H1>GNU Emacs Manual</H1>
<P>
<UL>
<base href="http://www.cs.utah.edu/csinfo/texinfo/emacs18/">
<LI><A NAME="SEC1" HREF="emacs_1.html#SEC1">Preface</A>
<LI><A NAME="SEC2" HREF="emacs_2.html#SEC2">Distribution</A>
<base href="/~/emacs_toc.utah.htm">
<LI><A HREF="#SEC3">GNU GENERAL PUBLIC LICENSE</A>
<base href="http://www.cs.utah.edu/csinfo/texinfo/emacs18/">
<LI><A NAME="SEC7" HREF="emacs_4.html#SEC7">Introduction</A>
<base href="/~/emacs_toc.utah.htm">
<LI><A HREF="#SEC8">The Organization of the Screen</A>
<LI><A HREF="#SEC12">Characters, Keys and Commands</A>
<LI><A HREF="#SEC16">Entering and Exiting Emacs</A>
<LI><A HREF="#SEC19">Basic Editing Commands</A>
<base href="http://www.cs.utah.edu/csinfo/texinfo/emacs18/">
<LI><A NAME="SEC29" HREF="emacs_9.html#SEC29">Undoing Changes</A>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The <base href> tags that are being rejected are the ones of the form
<base href="/~/emacs_toc.utah.htm">
which were accepted by 2-6. All of these alternatives
<base href="/u/s/seldon/emacs_toc.utah.htm">
<base href="file://localhost/u/s/seldon/emacs_toc.utah.htm">
<base href="file://localhost/u/u8/s/seldon/emacs_toc.utah.htm">
also fail. More importantly, they all fail the same way, *ALL* of
them refusing to cause subsequent URLs to refer to the file they name;
instead, those URLs all continue to refer to the file being rendered.
I would think a <base href> should just mean what it says, especially
when it's a complete file:// URL with nothing elided. The text of
the alert seems to imply that an absolute URL would be accepted.
(One technical note: the physical address of my Unix $HOME on my
ISP is /u/u8/s/seldon, but the file system accepts /u/s/seldon, so
the physical location can be omitted; this is necessary since that
location is constantly changing. That's why I tried both forms in
the <base href>s above. I think there's been another improvement to
Lynx that is now causing it to use /u/u8/s where it should use /u/s,
& this could be another bug, but I'll address it in a separate post.)
Actually, when I was originally creating these local tables of
contents, what I really wanted for the local <base href>s was a way
of saying "this file", but I wasn't aware of a way. Now, it seems,
any formerly-valid file:// URL is a way of referring to "this file"
(that's what the subsequent links get rendered as regardless of
what local file the file:// URL actually referred to), as long as
you know about -nopause & are willing to put up with the kluge; but
clearly that's not what was intended when <base href> was improved.
So if somebody could show me an HTML alternative that achieves
the same result as I was getting with this HTML under 2-6, I can
probably survive, after a few hours reediting multiple local tables of
contents. That won't help other users who get burned this way, though.
So I'm asking these questions:
* Am I right that for Lynx 2-7 to appear to *HANG* when rendering a file
that was rendered successfully & usefully by 2-6--rendered "correctly"
by 2-6, really, for all but pedantic values of "correctly"--is a
showstopper bug, because it'll make users & administrators conclude
that the latest & greatest Lynx "upgrade" from lynx.browsers.org
is failing catastrophically on files on which 2-6 used to work,
so our upgrades can no longer be trusted? If so, how do we fix
this? Is my suggestion for pausing only on the first alert feasible?
Is it adequate?
* Considering that the old <base href> behavior could be used to do
useful things that no longer work under 2-7, are we sure 2-7 is doing
the Right Thing from the standpoint of making the software survivable
in the real world, even apart from whether it's doing the Right Thing
from an academic standpoint? Wouldn't it be better to use the same
strategy as was used with historical comments? Doesn't the same
argument as in the previous point, about an "upgrade" really *losing*
functionality, apply to this point as well, so that if we don't use
a historical strategy, we're deterring users from upgrading?
* I remember spending many hours searching online HTML documentation
when I first created my local tables of contents, trying to
get <base href> usage right, & I ended up just needing to hack
until I found something that worked. Is there a hack I could
apply to the HTML I showed above that'd make it alert-free under
2-7? Remember that although this would solve my problems, &
I'd be grateful for it, it doesn't help other users who may
be using "historical base hrefs" which no longer work, either
because file:// <base href>s now all seem to refer to the
current file, or because they're getting the apparent hang.
The file snippet I gave above showed both types of <base href>
tags that I was using, but didn't contain the multiple levels of
hierarchy that are the whole point of the local table of contents,
so it might not be clear from that what I'm trying to accomplish.
Therefore, the rest of this post contains one complete such table
of contents. If you copy it to a file named elisp_toc.indiana.htm
in your home directory, you should be able to use it with Lynx
2-6 to access an online copy of the e-lisp reference manual. You
should find it fairly easy to navigate to any topic that interests
you. When you finally access text from the remote server, you'll
find that it contains links back to the table of contents, but
since the remote server doesn't know about the local table, you can
follow one of those links to get the original table of contents
from which the local copy was created by 2 gawk scripts. You'll
find the original table much harder to browse, because it contains
only one level of hierarchy. If you try this with 2-7, you'll get the
apparent hang; if you then try -nopause, you'll be able to render &
use the file, but only after staring for a few seconds at an alert the
meaning of which is unclear. Note that if multiple <base href> tags
referred to *different* local files, 2-7 would fail totally; it "works"
in this case only because there's only *one* local file referred to
by the file:// URL, & it happens to be the one containing the URL.
Here is my elisp_toc.indiana.htm:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<!-- This HTML file has been created by texi2html 1.20
from elisp.texi on 16 Febuary 1994 -->
<TITLE>GNU Emacs Lisp Reference Manual - Table of Contents</TITLE>
<H1>GNU Emacs Lisp Reference Manual</H1>
<H2>GNU Emacs Version 19, for Unix Users, Second Edition, June 1993, Further
Revised, August 1993</H2>
<ADDRESS>and the GNU Manual Group</ADDRESS>
<P>
<UL>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC1">GNU GENERAL PUBLIC LICENSE</A>
<LI><A HREF="#SEC5">Introduction</A>
<LI><A HREF="#SEC19">Lisp Data Types</A>
<LI><A HREF="#SEC53">Numbers</A>
<LI><A HREF="#SEC63">Strings and Characters</A>
<LI><A HREF="#SEC72">Lists</A>
<LI><A HREF="#SEC84">Sequences, Arrays, and Vectors</A>
<LI><A HREF="#SEC89">Symbols</A>
<LI><A HREF="#SEC94">Evaluation</A>
<LI><A HREF="#SEC106">Control Structures</A>
<LI><A HREF="#SEC120">Variables</A>
<LI><A HREF="#SEC137">Functions</A>
<LI><A HREF="#SEC152">Macros</A>
<LI><A HREF="#SEC163">Loading</A>
<LI><A HREF="#SEC170">Byte Compilation</A>
<LI><A HREF="#SEC175">Debugging Lisp Programs</A>
<LI><A HREF="#SEC207">Reading and Printing Lisp Objects</A>
<LI><A HREF="#SEC214">Minibuffers</A>
<LI><A HREF="#SEC230">Command Loop</A>
<LI><A HREF="#SEC263">Keymaps</A>
<LI><A HREF="#SEC282">Major and Minor Modes</A>
<LI><A HREF="#SEC296">Documentation</A>
<LI><A HREF="#SEC302">Files</A>
<LI><A HREF="#SEC326">Backups and Auto-Saving</A>
<LI><A HREF="#SEC334">Buffers</A>
<LI><A HREF="#SEC345">Windows</A>
<LI><A HREF="#SEC362">Frames</A>
<LI><A HREF="#SEC385">Positions</A>
<LI><A HREF="#SEC398">Markers</A>
<LI><A HREF="#SEC406">Text</A>
<LI><A HREF="#SEC445">Searching and Matching</A>
<LI><A HREF="#SEC459">Syntax Tables</A>
<LI><A HREF="#SEC468">Abbrevs And Abbrev Expansion</A>
<LI><A HREF="#SEC475">Processes</A>
<LI><A HREF="#SEC490">Operating System Interface</A>
<LI><A HREF="#SEC510">Emacs Display</A>
<LI><A HREF="#SEC534">Customizing the Calendar and Diary</A>
<LI><A HREF="#SEC546">Tips and Standards</A>
<LI><A HREF="#SEC552">GNU Emacs Internals</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC561" HREF="elisp_40.html#SEC561">Standard Errors</A>
<LI><A NAME="SEC562" HREF="elisp_41.html#SEC562">Buffer-Local Variables</A>
<LI><A NAME="SEC563" HREF="elisp_42.html#SEC563">Standard Keymaps</A>
<LI><A NAME="SEC564" HREF="elisp_43.html#SEC564">Standard Hooks</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC565">Emacs 18 Antinews</A>
</UL>
<UL>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC1" HREF="elisp_1.html#SEC1">GNU GENERAL PUBLIC LICENSE</A>
<UL>
<LI><A NAME="SEC2" HREF="elisp_1.html#SEC2">Preamble</A>
<LI><A NAME="SEC3" HREF="elisp_1.html#SEC3">TERMS AND CONDITIONS FOR COPYING,
DISTRIBUTION AND MODIFICATION</A>
<LI><A NAME="SEC4" HREF="elisp_1.html#SEC4">How to Apply These Terms to Your
New Programs</A>
</UL>
<LI><A NAME="SEC5" HREF="elisp_2.html#SEC5">Introduction</A>
<UL>
<LI><A NAME="SEC6" HREF="elisp_2.html#SEC6">Caveats</A>
<LI><A NAME="SEC7" HREF="elisp_2.html#SEC7">Lisp History</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC8">Conventions</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC18" HREF="elisp_2.html#SEC18">Acknowledgements</A>
</UL>
<LI><A NAME="SEC19" HREF="elisp_3.html#SEC19">Lisp Data Types</A>
<UL>
<LI><A NAME="SEC20" HREF="elisp_3.html#SEC20">Printed Representation and Read
Syntax</A>
<LI><A NAME="SEC21" HREF="elisp_3.html#SEC21">Comments</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC22">Programming Types</A>
<LI><A HREF="#SEC39">Editing Types</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC51" HREF="elisp_3.html#SEC51">Type Predicates</A>
<LI><A NAME="SEC52" HREF="elisp_3.html#SEC52">Equality Predicates</A>
</UL>
<LI><A NAME="SEC53" HREF="elisp_4.html#SEC53">Numbers</A>
<UL>
<LI><A NAME="SEC54" HREF="elisp_4.html#SEC54">Integer Basics</A>
<LI><A NAME="SEC55" HREF="elisp_4.html#SEC55">Floating Point Basics</A>
<LI><A NAME="SEC56" HREF="elisp_4.html#SEC56">Type Predicates for Numbers</A>
<LI><A NAME="SEC57" HREF="elisp_4.html#SEC57">Comparison of Numbers</A>
<LI><A NAME="SEC58" HREF="elisp_4.html#SEC58">Numeric Conversions</A>
<LI><A NAME="SEC59" HREF="elisp_4.html#SEC59">Arithmetic Operations</A>
<LI><A NAME="SEC60" HREF="elisp_4.html#SEC60">Bitwise Operations on Integers</A>
<LI><A NAME="SEC61" HREF="elisp_4.html#SEC61">Transcendental Functions</A>
<LI><A NAME="SEC62" HREF="elisp_4.html#SEC62">Random Numbers</A>
</UL>
<LI><A NAME="SEC63" HREF="elisp_5.html#SEC63">Strings and Characters</A>
<UL>
<LI><A NAME="SEC64" HREF="elisp_5.html#SEC64">Introduction to Strings and
Characters</A>
<LI><A NAME="SEC65" HREF="elisp_5.html#SEC65">The Predicates for Strings</A>
<LI><A NAME="SEC66" HREF="elisp_5.html#SEC66">Creating Strings</A>
<LI><A NAME="SEC67" HREF="elisp_5.html#SEC67">Comparison of Characters and
Strings</A>
<LI><A NAME="SEC68" HREF="elisp_5.html#SEC68">Conversion of Characters and
Strings</A>
<LI><A NAME="SEC69" HREF="elisp_5.html#SEC69">Formatting Strings</A>
<LI><A NAME="SEC70" HREF="elisp_5.html#SEC70">Character Case</A>
<LI><A NAME="SEC71" HREF="elisp_5.html#SEC71">The Case Table</A>
</UL>
<LI><A NAME="SEC72" HREF="elisp_6.html#SEC72">Lists</A>
<UL>
<LI><A NAME="SEC73" HREF="elisp_6.html#SEC73">Lists and Cons Cells</A>
<LI><A NAME="SEC74" HREF="elisp_6.html#SEC74">Lists as Linked Pairs of Boxes</A>
<LI><A NAME="SEC75" HREF="elisp_6.html#SEC75">Predicates on Lists</A>
<LI><A NAME="SEC76" HREF="elisp_6.html#SEC76">Accessing Elements of Lists</A>
<LI><A NAME="SEC77" HREF="elisp_6.html#SEC77">Building Cons Cells and Lists</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC78">Modifying Existing List Structure</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC82" HREF="elisp_6.html#SEC82">Using Lists as Sets</A>
<LI><A NAME="SEC83" HREF="elisp_6.html#SEC83">Association Lists</A>
</UL>
<LI><A NAME="SEC84" HREF="elisp_7.html#SEC84">Sequences, Arrays, and Vectors</A>
<UL>
<LI><A NAME="SEC85" HREF="elisp_7.html#SEC85">Sequences</A>
<LI><A NAME="SEC86" HREF="elisp_7.html#SEC86">Arrays</A>
<LI><A NAME="SEC87" HREF="elisp_7.html#SEC87">Functions that Operate on
Arrays</A>
<LI><A NAME="SEC88" HREF="elisp_7.html#SEC88">Vectors</A>
</UL>
<LI><A NAME="SEC89" HREF="elisp_8.html#SEC89">Symbols</A>
<UL>
<LI><A NAME="SEC90" HREF="elisp_8.html#SEC90">Symbol Components</A>
<LI><A NAME="SEC91" HREF="elisp_8.html#SEC91">Defining Symbols</A>
<LI><A NAME="SEC92" HREF="elisp_8.html#SEC92">Creating and Interning Symbols</A>
<LI><A NAME="SEC93" HREF="elisp_8.html#SEC93">Property Lists</A>
</UL>
<LI><A NAME="SEC94" HREF="elisp_9.html#SEC94">Evaluation</A>
<UL>
<LI><A NAME="SEC95" HREF="elisp_9.html#SEC95">Eval</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC96">Kinds of Forms</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC105" HREF="elisp_9.html#SEC105">Quoting</A>
</UL>
<LI><A NAME="SEC106" HREF="elisp_10.html#SEC106">Control Structures</A>
<UL>
<LI><A NAME="SEC107" HREF="elisp_10.html#SEC107">Sequencing</A>
<LI><A NAME="SEC108" HREF="elisp_10.html#SEC108">Conditionals</A>
<LI><A NAME="SEC109" HREF="elisp_10.html#SEC109">Constructs for Combining
Conditions</A>
<LI><A NAME="SEC110" HREF="elisp_10.html#SEC110">Iteration</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC111">Nonlocal Exits</A>
</UL>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC120" HREF="elisp_11.html#SEC120">Variables</A>
<UL>
<LI><A NAME="SEC121" HREF="elisp_11.html#SEC121">Global Variables</A>
<LI><A NAME="SEC122" HREF="elisp_11.html#SEC122">Variables that Never Change</A>
<LI><A NAME="SEC123" HREF="elisp_11.html#SEC123">Local Variables</A>
<LI><A NAME="SEC124" HREF="elisp_11.html#SEC124">When a Variable is "Void"</A>
<LI><A NAME="SEC125" HREF="elisp_11.html#SEC125">Defining Global Variables</A>
<LI><A NAME="SEC126" HREF="elisp_11.html#SEC126">Accessing Variable Values</A>
<LI><A NAME="SEC127" HREF="elisp_11.html#SEC127">How to Alter a Variable
Value</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC128">Scoping Rules for Variable Bindings</A>
<LI><A HREF="#SEC133">Buffer-Local Variables</A>
</UL>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC137" HREF="elisp_12.html#SEC137">Functions</A>
<UL>
<LI><A NAME="SEC138" HREF="elisp_12.html#SEC138">What Is a Function?</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC139">Lambda Expressions</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC144" HREF="elisp_12.html#SEC144">Naming a Function</A>
<LI><A NAME="SEC145" HREF="elisp_12.html#SEC145">Defining Named Functions</A>
<LI><A NAME="SEC146" HREF="elisp_12.html#SEC146">Calling Functions</A>
<LI><A NAME="SEC147" HREF="elisp_12.html#SEC147">Mapping Functions</A>
<LI><A NAME="SEC148" HREF="elisp_12.html#SEC148">Anonymous Functions</A>
<LI><A NAME="SEC149" HREF="elisp_12.html#SEC149">Accessing Function Cell
Contents</A>
<LI><A NAME="SEC150" HREF="elisp_12.html#SEC150">Inline Functions</A>
<LI><A NAME="SEC151" HREF="elisp_12.html#SEC151">Other Topics Related to
Functions</A>
</UL>
<LI><A NAME="SEC152" HREF="elisp_13.html#SEC152">Macros</A>
<UL>
<LI><A NAME="SEC153" HREF="elisp_13.html#SEC153">A Simple Example of a Macro</A>
<LI><A NAME="SEC154" HREF="elisp_13.html#SEC154">Expansion of a Macro Call</A>
<LI><A NAME="SEC155" HREF="elisp_13.html#SEC155">Macros and Byte Compilation</A>
<LI><A NAME="SEC156" HREF="elisp_13.html#SEC156">Defining Macros</A>
<LI><A NAME="SEC157" HREF="elisp_13.html#SEC157">Backquote</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC158">Common Problems Using Macros</A>
</UL>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC163" HREF="elisp_14.html#SEC163">Loading</A>
<UL>
<LI><A NAME="SEC164" HREF="elisp_14.html#SEC164">How Programs Do Loading</A>
<LI><A NAME="SEC165" HREF="elisp_14.html#SEC165">Autoload</A>
<LI><A NAME="SEC166" HREF="elisp_14.html#SEC166">Repeated Loading</A>
<LI><A NAME="SEC167" HREF="elisp_14.html#SEC167">Features</A>
<LI><A NAME="SEC168" HREF="elisp_14.html#SEC168">Unloading</A>
<LI><A NAME="SEC169" HREF="elisp_14.html#SEC169">Hooks for Loading</A>
</UL>
<LI><A NAME="SEC170" HREF="elisp_15.html#SEC170">Byte Compilation</A>
<UL>
<LI><A NAME="SEC171" HREF="elisp_15.html#SEC171">The Compilation Functions</A>
<LI><A NAME="SEC172" HREF="elisp_15.html#SEC172">Evaluation During
Compilation</A>
<LI><A NAME="SEC173" HREF="elisp_15.html#SEC173">Byte-Code Objects</A>
<LI><A NAME="SEC174" HREF="elisp_15.html#SEC174">Disassembled Byte-Code</A>
</UL>
<LI><A NAME="SEC175" HREF="elisp_16.html#SEC175">Debugging Lisp Programs</A>
<UL>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC176">The Lisp Debugger</A>
<LI><A HREF="#SEC185">Debugging Invalid Lisp Syntax</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC188" HREF="elisp_16.html#SEC188">Debugging Problems in
Compilation</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC189">Edebug</A>
</UL>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC207" HREF="elisp_17.html#SEC207">Reading and Printing Lisp
Objects</A>
<UL>
<LI><A NAME="SEC208" HREF="elisp_17.html#SEC208">Introduction to Reading and
Printing</A>
<LI><A NAME="SEC209" HREF="elisp_17.html#SEC209">Input Streams</A>
<LI><A NAME="SEC210" HREF="elisp_17.html#SEC210">Input Functions</A>
<LI><A NAME="SEC211" HREF="elisp_17.html#SEC211">Output Streams</A>
<LI><A NAME="SEC212" HREF="elisp_17.html#SEC212">Output Functions</A>
<LI><A NAME="SEC213" HREF="elisp_17.html#SEC213">Variables Affecting Output</A>
</UL>
<LI><A NAME="SEC214" HREF="elisp_18.html#SEC214">Minibuffers</A>
<UL>
<LI><A NAME="SEC215" HREF="elisp_18.html#SEC215">Introduction to Minibuffers</A>
<LI><A NAME="SEC216" HREF="elisp_18.html#SEC216">Reading Text Strings with the
Minibuffer</A>
<LI><A NAME="SEC217" HREF="elisp_18.html#SEC217">Reading Lisp Objects with the
Minibuffer</A>
<LI><A NAME="SEC218" HREF="elisp_18.html#SEC218">Minibuffer History</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC219">Completion</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC227" HREF="elisp_18.html#SEC227">Yes-or-No Queries</A>
<LI><A NAME="SEC228" HREF="elisp_18.html#SEC228">Asking Multiple Y-or-N
Queries</A>
<LI><A NAME="SEC229" HREF="elisp_18.html#SEC229">Minibuffer Miscellany</A>
</UL>
<LI><A NAME="SEC230" HREF="elisp_19.html#SEC230">Command Loop</A>
<UL>
<LI><A NAME="SEC231" HREF="elisp_19.html#SEC231">Command Loop Overview</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC232">Defining Commands</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC236" HREF="elisp_19.html#SEC236">Interactive Call</A>
<LI><A NAME="SEC237" HREF="elisp_19.html#SEC237">Information from the Command
Loop</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC238">Input Events</A>
<LI><A HREF="#SEC251">Reading Input</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC256" HREF="elisp_19.html#SEC256">Waiting for Elapsed Time or
Input</A>
<LI><A NAME="SEC257" HREF="elisp_19.html#SEC257">Quitting</A>
<LI><A NAME="SEC258" HREF="elisp_19.html#SEC258">Prefix Command Arguments</A>
<LI><A NAME="SEC259" HREF="elisp_19.html#SEC259">Recursive Editing</A>
<LI><A NAME="SEC260" HREF="elisp_19.html#SEC260">Disabling Commands</A>
<LI><A NAME="SEC261" HREF="elisp_19.html#SEC261">Command History</A>
<LI><A NAME="SEC262" HREF="elisp_19.html#SEC262">Keyboard Macros</A>
</UL>
<LI><A NAME="SEC263" HREF="elisp_20.html#SEC263">Keymaps</A>
<UL>
<LI><A NAME="SEC264" HREF="elisp_20.html#SEC264">Keymap Terminology</A>
<LI><A NAME="SEC265" HREF="elisp_20.html#SEC265">Format of Keymaps</A>
<LI><A NAME="SEC266" HREF="elisp_20.html#SEC266">Creating Keymaps</A>
<LI><A NAME="SEC267" HREF="elisp_20.html#SEC267">Inheritance and Keymaps</A>
<LI><A NAME="SEC268" HREF="elisp_20.html#SEC268">Prefix Keys</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC269">Menu Keymaps</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC276" HREF="elisp_20.html#SEC276">Active Keymaps</A>
<LI><A NAME="SEC277" HREF="elisp_20.html#SEC277">Key Lookup</A>
<LI><A NAME="SEC278" HREF="elisp_20.html#SEC278">Functions for Key Lookup</A>
<LI><A NAME="SEC279" HREF="elisp_20.html#SEC279">Changing Key Bindings</A>
<LI><A NAME="SEC280" HREF="elisp_20.html#SEC280">Commands for Binding Keys</A>
<LI><A NAME="SEC281" HREF="elisp_20.html#SEC281">Scanning Keymaps</A>
</UL>
<LI><A NAME="SEC282" HREF="elisp_21.html#SEC282">Major and Minor Modes</A>
<UL>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC283">Major Modes</A>
<LI><A HREF="#SEC288">Minor Modes</A>
<LI><A HREF="#SEC291">Mode Line Format</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC295" HREF="elisp_21.html#SEC295">Hooks</A>
</UL>
<LI><A NAME="SEC296" HREF="elisp_22.html#SEC296">Documentation</A>
<UL>
<LI><A NAME="SEC297" HREF="elisp_22.html#SEC297">Documentation Basics</A>
<LI><A NAME="SEC298" HREF="elisp_22.html#SEC298">Access to Documentation
Strings</A>
<LI><A NAME="SEC299" HREF="elisp_22.html#SEC299">Substituting Key Bindings in
Documentation</A>
<LI><A NAME="SEC300" HREF="elisp_22.html#SEC300">Describing Characters for Help
Messages</A>
<LI><A NAME="SEC301" HREF="elisp_22.html#SEC301">Help Functions</A>
</UL>
<LI><A NAME="SEC302" HREF="elisp_23.html#SEC302">Files</A>
<UL>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC303">Visiting Files</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC306" HREF="elisp_23.html#SEC306">Saving Buffers</A>
<LI><A NAME="SEC307" HREF="elisp_23.html#SEC307">Reading from Files</A>
<LI><A NAME="SEC308" HREF="elisp_23.html#SEC308">Writing to Files</A>
<LI><A NAME="SEC309" HREF="elisp_23.html#SEC309">File Locks</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC310">Information about Files</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC315" HREF="elisp_23.html#SEC315">Contents of Directories</A>
<LI><A NAME="SEC316" HREF="elisp_23.html#SEC316">Creating and Deleting
Directories</A>
<LI><A NAME="SEC317" HREF="elisp_23.html#SEC317">Changing File Names and
Attributes</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC318">File Names</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC325" HREF="elisp_23.html#SEC325">Making Certain File Names
"Magic"</A>
</UL>
<LI><A NAME="SEC326" HREF="elisp_24.html#SEC326">Backups and Auto-Saving</A>
<UL>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC327">Backup Files</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC332" HREF="elisp_24.html#SEC332">Auto-Saving</A>
<LI><A NAME="SEC333" HREF="elisp_24.html#SEC333">Reverting</A>
</UL>
<LI><A NAME="SEC334" HREF="elisp_25.html#SEC334">Buffers</A>
<UL>
<LI><A NAME="SEC335" HREF="elisp_25.html#SEC335">Buffer Basics</A>
<LI><A NAME="SEC336" HREF="elisp_25.html#SEC336">Buffer Names</A>
<LI><A NAME="SEC337" HREF="elisp_25.html#SEC337">Buffer File Name</A>
<LI><A NAME="SEC338" HREF="elisp_25.html#SEC338">Buffer Modification</A>
<LI><A NAME="SEC339" HREF="elisp_25.html#SEC339">Comparison of Modification
Time</A>
<LI><A NAME="SEC340" HREF="elisp_25.html#SEC340">Read-Only Buffers</A>
<LI><A NAME="SEC341" HREF="elisp_25.html#SEC341">The Buffer List</A>
<LI><A NAME="SEC342" HREF="elisp_25.html#SEC342">Creating Buffers</A>
<LI><A NAME="SEC343" HREF="elisp_25.html#SEC343">Killing Buffers</A>
<LI><A NAME="SEC344" HREF="elisp_25.html#SEC344">The Current Buffer</A>
</UL>
<LI><A NAME="SEC345" HREF="elisp_26.html#SEC345">Windows</A>
<UL>
<LI><A NAME="SEC346" HREF="elisp_26.html#SEC346">Basic Concepts of Emacs
Windows</A>
<LI><A NAME="SEC347" HREF="elisp_26.html#SEC347">Splitting Windows</A>
<LI><A NAME="SEC348" HREF="elisp_26.html#SEC348">Deleting Windows</A>
<LI><A NAME="SEC349" HREF="elisp_26.html#SEC349">Selecting Windows</A>
<LI><A NAME="SEC350" HREF="elisp_26.html#SEC350">Cycling Ordering of Windows</A>
<LI><A NAME="SEC351" HREF="elisp_26.html#SEC351">Buffers and Windows</A>
<LI><A NAME="SEC352" HREF="elisp_26.html#SEC352">Displaying Buffers in
Windows</A>
<LI><A NAME="SEC353" HREF="elisp_26.html#SEC353">Choosing a Window</A>
<LI><A NAME="SEC354" HREF="elisp_26.html#SEC354">Window Point</A>
<LI><A NAME="SEC355" HREF="elisp_26.html#SEC355">The Window Start Position</A>
<LI><A NAME="SEC356" HREF="elisp_26.html#SEC356">Vertical Scrolling</A>
<LI><A NAME="SEC357" HREF="elisp_26.html#SEC357">Horizontal Scrolling</A>
<LI><A NAME="SEC358" HREF="elisp_26.html#SEC358">The Size of a Window</A>
<LI><A NAME="SEC359" HREF="elisp_26.html#SEC359">Changing the Size of a
Window</A>
<LI><A NAME="SEC360" HREF="elisp_26.html#SEC360">Coordinates and Windows</A>
<LI><A NAME="SEC361" HREF="elisp_26.html#SEC361">Window Configurations</A>
</UL>
<LI><A NAME="SEC362" HREF="elisp_27.html#SEC362">Frames</A>
<UL>
<LI><A NAME="SEC363" HREF="elisp_27.html#SEC363">Creating Frames</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC364">Frame Parameters</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC369" HREF="elisp_27.html#SEC369">Deleting Frames</A>
<LI><A NAME="SEC370" HREF="elisp_27.html#SEC370">Finding All Frames</A>
<LI><A NAME="SEC371" HREF="elisp_27.html#SEC371">Frames and Windows</A>
<LI><A NAME="SEC372" HREF="elisp_27.html#SEC372">Minibuffers and Frames</A>
<LI><A NAME="SEC373" HREF="elisp_27.html#SEC373">Input Focus</A>
<LI><A NAME="SEC374" HREF="elisp_27.html#SEC374">Visibility of Frames</A>
<LI><A NAME="SEC375" HREF="elisp_27.html#SEC375">Raising and Lowering Frames</A>
<LI><A NAME="SEC376" HREF="elisp_27.html#SEC376">Frame Configurations</A>
<LI><A NAME="SEC377" HREF="elisp_27.html#SEC377">Mouse Tracking</A>
<LI><A NAME="SEC378" HREF="elisp_27.html#SEC378">Mouse Position</A>
<LI><A NAME="SEC379" HREF="elisp_27.html#SEC379">Pop-Up Menus</A>
<LI><A NAME="SEC380" HREF="elisp_27.html#SEC380">X Selections</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC381">X Server</A>
</UL>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC385" HREF="elisp_28.html#SEC385">Positions</A>
<UL>
<LI><A NAME="SEC386" HREF="elisp_28.html#SEC386">Point</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC387">Motion</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC396" HREF="elisp_28.html#SEC396">Excursions</A>
<LI><A NAME="SEC397" HREF="elisp_28.html#SEC397">Narrowing</A>
</UL>
<LI><A NAME="SEC398" HREF="elisp_29.html#SEC398">Markers</A>
<UL>
<LI><A NAME="SEC399" HREF="elisp_29.html#SEC399">Overview of Markers</A>
<LI><A NAME="SEC400" HREF="elisp_29.html#SEC400">Predicates on Markers</A>
<LI><A NAME="SEC401" HREF="elisp_29.html#SEC401">Functions That Create
Markers</A>
<LI><A NAME="SEC402" HREF="elisp_29.html#SEC402">Information from Markers</A>
<LI><A NAME="SEC403" HREF="elisp_29.html#SEC403">Changing Markers</A>
<LI><A NAME="SEC404" HREF="elisp_29.html#SEC404">The Mark</A>
<LI><A NAME="SEC405" HREF="elisp_29.html#SEC405">The Region</A>
</UL>
<LI><A NAME="SEC406" HREF="elisp_30.html#SEC406">Text</A>
<UL>
<LI><A NAME="SEC407" HREF="elisp_30.html#SEC407">Examining Text Near Point</A>
<LI><A NAME="SEC408" HREF="elisp_30.html#SEC408">Examining Buffer Contents</A>
<LI><A NAME="SEC409" HREF="elisp_30.html#SEC409">Comparing Text</A>
<LI><A NAME="SEC410" HREF="elisp_30.html#SEC410">Insertion</A>
<LI><A NAME="SEC411" HREF="elisp_30.html#SEC411">User-Level Insertion
Commands</A>
<LI><A NAME="SEC412" HREF="elisp_30.html#SEC412">Deletion of Text</A>
<LI><A NAME="SEC413" HREF="elisp_30.html#SEC413">User-Level Deletion
Commands</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC414">The Kill Ring</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC420" HREF="elisp_30.html#SEC420">Undo</A>
<LI><A NAME="SEC421" HREF="elisp_30.html#SEC421">Maintaining Undo Lists</A>
<LI><A NAME="SEC422" HREF="elisp_30.html#SEC422">Filling</A>
<LI><A NAME="SEC423" HREF="elisp_30.html#SEC423">Auto Filling</A>
<LI><A NAME="SEC424" HREF="elisp_30.html#SEC424">Sorting Text</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC425">Indentation</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC432" HREF="elisp_30.html#SEC432">Counting Columns</A>
<LI><A NAME="SEC433" HREF="elisp_30.html#SEC433">Case Changes</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC434">Text Properties</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC441" HREF="elisp_30.html#SEC441">Substituting for a Character
Code</A>
<LI><A NAME="SEC442" HREF="elisp_30.html#SEC442">Underlining</A>
<LI><A NAME="SEC443" HREF="elisp_30.html#SEC443">Registers</A>
<LI><A NAME="SEC444" HREF="elisp_30.html#SEC444">Change Hooks</A>
</UL>
<LI><A NAME="SEC445" HREF="elisp_31.html#SEC445">Searching and Matching</A>
<UL>
<LI><A NAME="SEC446" HREF="elisp_31.html#SEC446">Searching for Strings</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC447">Regular Expressions</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC450" HREF="elisp_31.html#SEC450">Regular Expression
Searching</A>
<LI><A NAME="SEC451" HREF="elisp_31.html#SEC451">Replacement</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC452">The Match Data</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC457" HREF="elisp_31.html#SEC457">Standard Regular Expressions
Used in Editing</A>
<LI><A NAME="SEC458" HREF="elisp_31.html#SEC458">Searching and Case</A>
</UL>
<LI><A NAME="SEC459" HREF="elisp_32.html#SEC459">Syntax Tables</A>
<UL>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC460">Syntax Descriptors</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC463" HREF="elisp_32.html#SEC463">Syntax Table Functions</A>
<LI><A NAME="SEC464" HREF="elisp_32.html#SEC464">Motion and Syntax</A>
<LI><A NAME="SEC465" HREF="elisp_32.html#SEC465">Parsing Balanced
Expressions</A>
<LI><A NAME="SEC466" HREF="elisp_32.html#SEC466">Some Standard Syntax Tables</A>
<LI><A NAME="SEC467" HREF="elisp_32.html#SEC467">Syntax Table Internals</A>
</UL>
<LI><A NAME="SEC468" HREF="elisp_33.html#SEC468">Abbrevs And Abbrev
Expansion</A>
<UL>
<LI><A NAME="SEC469" HREF="elisp_33.html#SEC469">Setting Up Abbrev Mode</A>
<LI><A NAME="SEC470" HREF="elisp_33.html#SEC470">Abbrev Tables</A>
<LI><A NAME="SEC471" HREF="elisp_33.html#SEC471">Defining Abbrevs</A>
<LI><A NAME="SEC472" HREF="elisp_33.html#SEC472">Saving Abbrevs in Files</A>
<LI><A NAME="SEC473" HREF="elisp_33.html#SEC473">Looking Up and Expanding
Abbreviations</A>
<LI><A NAME="SEC474" HREF="elisp_33.html#SEC474">Standard Abbrev Tables</A>
</UL>
<LI><A NAME="SEC475" HREF="elisp_34.html#SEC475">Processes</A>
<UL>
<LI><A NAME="SEC476" HREF="elisp_34.html#SEC476">Functions that Create
Subprocesses</A>
<LI><A NAME="SEC477" HREF="elisp_34.html#SEC477">Creating a Synchronous
Process</A>
<LI><A NAME="SEC478" HREF="elisp_34.html#SEC478">Creating an Asynchronous
Process</A>
<LI><A NAME="SEC479" HREF="elisp_34.html#SEC479">Deleting Processes</A>
<LI><A NAME="SEC480" HREF="elisp_34.html#SEC480">Process Information</A>
<LI><A NAME="SEC481" HREF="elisp_34.html#SEC481">Sending Input to Processes</A>
<LI><A NAME="SEC482" HREF="elisp_34.html#SEC482">Sending Signals to
Processes</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC483">Receiving Output from Processes</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC487" HREF="elisp_34.html#SEC487">Sentinels: Detecting Process
Status Changes</A>
<LI><A NAME="SEC488" HREF="elisp_34.html#SEC488">Transaction Queues</A>
<LI><A NAME="SEC489" HREF="elisp_34.html#SEC489">TCP</A>
</UL>
<LI><A NAME="SEC490" HREF="elisp_35.html#SEC490">Operating System Interface</A>
<UL>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC491">Starting Up Emacs</A>
<LI><A HREF="#SEC496">Getting out of Emacs</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC499" HREF="elisp_35.html#SEC499">Operating System
Environment</A>
<LI><A NAME="SEC500" HREF="elisp_35.html#SEC500">User Identification</A>
<LI><A NAME="SEC501" HREF="elisp_35.html#SEC501">Time of Day</A>
<LI><A NAME="SEC502" HREF="elisp_35.html#SEC502">Timers</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC503">Terminal Input</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC507" HREF="elisp_35.html#SEC507">Terminal Output</A>
<LI><A NAME="SEC508" HREF="elisp_35.html#SEC508">Flow Control</A>
<LI><A NAME="SEC509" HREF="elisp_35.html#SEC509">Batch Mode</A>
</UL>
<LI><A NAME="SEC510" HREF="elisp_36.html#SEC510">Emacs Display</A>
<UL>
<LI><A NAME="SEC511" HREF="elisp_36.html#SEC511">Refreshing the Screen</A>
<LI><A NAME="SEC512" HREF="elisp_36.html#SEC512">Screen Size</A>
<LI><A NAME="SEC513" HREF="elisp_36.html#SEC513">Truncation</A>
<LI><A NAME="SEC514" HREF="elisp_36.html#SEC514">The Echo Area</A>
<LI><A NAME="SEC515" HREF="elisp_36.html#SEC515">Selective Display</A>
<LI><A NAME="SEC516" HREF="elisp_36.html#SEC516">Overlay Arrow</A>
<LI><A NAME="SEC517" HREF="elisp_36.html#SEC517">Temporary Displays</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC518">Overlays</A>
<LI><A HREF="#SEC521">Faces</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC524" HREF="elisp_36.html#SEC524">Blinking</A>
<LI><A NAME="SEC525" HREF="elisp_36.html#SEC525">Inverse Video</A>
<LI><A NAME="SEC526" HREF="elisp_36.html#SEC526">Usual Display Conventions</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC527">Display Tables</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC532" HREF="elisp_36.html#SEC532">Beeping</A>
<LI><A NAME="SEC533" HREF="elisp_36.html#SEC533">Window Systems</A>
</UL>
<LI><A NAME="SEC534" HREF="elisp_37.html#SEC534">Customizing the Calendar and
Diary</A>
<UL>
<LI><A NAME="SEC535" HREF="elisp_37.html#SEC535">Customizing the Calendar</A>
<LI><A NAME="SEC536" HREF="elisp_37.html#SEC536">Customizing the Holidays</A>
<LI><A NAME="SEC537" HREF="elisp_37.html#SEC537">Date Display Format</A>
<LI><A NAME="SEC538" HREF="elisp_37.html#SEC538">Time Display Format</A>
<LI><A NAME="SEC539" HREF="elisp_37.html#SEC539">Daylight Savings Time</A>
<LI><A NAME="SEC540" HREF="elisp_37.html#SEC540">Customizing the Diary</A>
<LI><A NAME="SEC541" HREF="elisp_37.html#SEC541">Hebrew- and Islamic-Date Diary
Entries</A>
<LI><A NAME="SEC542" HREF="elisp_37.html#SEC542">Fancy Diary Display</A>
<LI><A NAME="SEC543" HREF="elisp_37.html#SEC543">Included Diary Files</A>
<LI><A NAME="SEC544" HREF="elisp_37.html#SEC544">Sexp Entries and the Fancy
Diary Display</A>
<LI><A NAME="SEC545" HREF="elisp_37.html#SEC545">Customizing Appointment
Reminders</A>
</UL>
<LI><A NAME="SEC546" HREF="elisp_38.html#SEC546">Tips and Standards</A>
<UL>
<LI><A NAME="SEC547" HREF="elisp_38.html#SEC547">Writing Clean Lisp Programs</A>
<LI><A NAME="SEC548" HREF="elisp_38.html#SEC548">Tips for Making Compiled Code
Fast</A>
<LI><A NAME="SEC549" HREF="elisp_38.html#SEC549">Tips for Documentation
Strings</A>
<LI><A NAME="SEC550" HREF="elisp_38.html#SEC550">Tips on Writing Comments</A>
<LI><A NAME="SEC551" HREF="elisp_38.html#SEC551">Conventional Headers for Emacs
Libraries</A>
</UL>
<LI><A NAME="SEC552" HREF="elisp_39.html#SEC552">GNU Emacs Internals</A>
<UL>
<LI><A NAME="SEC553" HREF="elisp_39.html#SEC553">Building Emacs</A>
<LI><A NAME="SEC554" HREF="elisp_39.html#SEC554">Pure Storage</A>
<LI><A NAME="SEC555" HREF="elisp_39.html#SEC555">Garbage Collection</A>
<LI><A NAME="SEC556" HREF="elisp_39.html#SEC556">Writing Emacs Primitives</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC557">Object Internals</A>
</UL>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC565" HREF="elisp_44.html#SEC565">Emacs 18 Antinews</A>
<UL>
<LI><A NAME="SEC566" HREF="elisp_44.html#SEC566">Old Features in the Lisp
Language</A>
<LI><A NAME="SEC567" HREF="elisp_44.html#SEC567">Compilation Features</A>
<LI><A NAME="SEC568" HREF="elisp_44.html#SEC568">Floating Point Numbers</A>
<LI><A NAME="SEC569" HREF="elisp_44.html#SEC569">Changes in Basic Editing
Functions</A>
<LI><A NAME="SEC570" HREF="elisp_44.html#SEC570">Text Properties</A>
<LI><A NAME="SEC571" HREF="elisp_44.html#SEC571">Features for Files</A>
<LI><A NAME="SEC572" HREF="elisp_44.html#SEC572">Making Certain File Names
"Magic"</A>
<LI><A NAME="SEC573" HREF="elisp_44.html#SEC573">Frames</A>
<LI><A NAME="SEC574" HREF="elisp_44.html#SEC574">X Window System Features</A>
<LI><A NAME="SEC575" HREF="elisp_44.html#SEC575">Window Actions that Were No
Longer Useful</A>
<LI><A NAME="SEC576" HREF="elisp_44.html#SEC576">Display Features</A>
<LI><A NAME="SEC577" HREF="elisp_44.html#SEC577">Working with Input Events</A>
<LI><A NAME="SEC578" HREF="elisp_44.html#SEC578">Menus</A>
<LI><A NAME="SEC579" HREF="elisp_44.html#SEC579">Changes in Minibuffer
Features</A>
<LI><A NAME="SEC580" HREF="elisp_44.html#SEC580">New Features for Defining
Commands</A>
<LI><A NAME="SEC581" HREF="elisp_44.html#SEC581">Removed Features for Reading
Input</A>
<LI><A NAME="SEC582" HREF="elisp_44.html#SEC582">Removed Syntax Table
Features</A>
<LI><A NAME="SEC583" HREF="elisp_44.html#SEC583">The Case Table</A>
<LI><A NAME="SEC584" HREF="elisp_44.html#SEC584">Features for Dealing with
Buffers</A>
<LI><A NAME="SEC585" HREF="elisp_44.html#SEC585">Local Variables Features</A>
<LI><A NAME="SEC586" HREF="elisp_44.html#SEC586">Features for Subprocesses</A>
<LI><A NAME="SEC587" HREF="elisp_44.html#SEC587">Dealing with Times And Time
Delays</A>
<LI><A NAME="SEC588" HREF="elisp_44.html#SEC588">Features not Available for
Lisp Debuggers</A>
<LI><A NAME="SEC589" HREF="elisp_44.html#SEC589">Memory Allocation Changes</A>
<LI><A NAME="SEC590" HREF="elisp_44.html#SEC590">Hook Changes</A>
</UL>
</UL>
<UL>
<LI><A NAME="SEC8" HREF="elisp_2.html#SEC8">Conventions</A>
<UL>
<LI><A NAME="SEC9" HREF="elisp_2.html#SEC9">Some Terms</A>
<LI><A NAME="SEC10" HREF="elisp_2.html#SEC10"><CODE>nil</CODE> and
<CODE>t</CODE></A>
<LI><A NAME="SEC11" HREF="elisp_2.html#SEC11">Evaluation Notation</A>
<LI><A NAME="SEC12" HREF="elisp_2.html#SEC12">Printing Notation</A>
<LI><A NAME="SEC13" HREF="elisp_2.html#SEC13">Error Messages</A>
<LI><A NAME="SEC14" HREF="elisp_2.html#SEC14">Buffer Text Notation</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC15">Format of Descriptions</A>
</UL>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC22" HREF="elisp_3.html#SEC22">Programming Types</A>
<UL>
<LI><A NAME="SEC23" HREF="elisp_3.html#SEC23">Integer Type</A>
<LI><A NAME="SEC24" HREF="elisp_3.html#SEC24">Floating Point Type</A>
<LI><A NAME="SEC25" HREF="elisp_3.html#SEC25">Character Type</A>
<LI><A NAME="SEC26" HREF="elisp_3.html#SEC26">Sequence Types</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC27">List Type</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC30" HREF="elisp_3.html#SEC30">Array Type</A>
<LI><A NAME="SEC31" HREF="elisp_3.html#SEC31">String Type</A>
<LI><A NAME="SEC32" HREF="elisp_3.html#SEC32">Vector Type</A>
<LI><A NAME="SEC33" HREF="elisp_3.html#SEC33">Symbol Type</A>
<LI><A NAME="SEC34" HREF="elisp_3.html#SEC34">Lisp Function Type</A>
<LI><A NAME="SEC35" HREF="elisp_3.html#SEC35">Lisp Macro Type</A>
<LI><A NAME="SEC36" HREF="elisp_3.html#SEC36">Primitive Function Type</A>
<LI><A NAME="SEC37" HREF="elisp_3.html#SEC37">Byte-Code Function Type</A>
<LI><A NAME="SEC38" HREF="elisp_3.html#SEC38">Autoload Type</A>
</UL>
<LI><A NAME="SEC39" HREF="elisp_3.html#SEC39">Editing Types</A>
<UL>
<LI><A NAME="SEC40" HREF="elisp_3.html#SEC40">Buffer Type</A>
<LI><A NAME="SEC41" HREF="elisp_3.html#SEC41">Window Type</A>
<LI><A NAME="SEC42" HREF="elisp_3.html#SEC42">Frame Type</A>
<LI><A NAME="SEC43" HREF="elisp_3.html#SEC43">Window Configuration Type</A>
<LI><A NAME="SEC44" HREF="elisp_3.html#SEC44">Marker Type</A>
<LI><A NAME="SEC45" HREF="elisp_3.html#SEC45">Process Type</A>
<LI><A NAME="SEC46" HREF="elisp_3.html#SEC46">Stream Type</A>
<LI><A NAME="SEC47" HREF="elisp_3.html#SEC47">Keymap Type</A>
<LI><A NAME="SEC48" HREF="elisp_3.html#SEC48">Syntax Table Type</A>
<LI><A NAME="SEC49" HREF="elisp_3.html#SEC49">Display Table Type</A>
<LI><A NAME="SEC50" HREF="elisp_3.html#SEC50">Overlay Type</A>
</UL>
<LI><A NAME="SEC78" HREF="elisp_6.html#SEC78">Modifying Existing List
Structure</A>
<UL>
<LI><A NAME="SEC79" HREF="elisp_6.html#SEC79">Altering List Elements with
<CODE>setcar</CODE></A>
<LI><A NAME="SEC80" HREF="elisp_6.html#SEC80">Altering the CDR of a List</A>
<LI><A NAME="SEC81" HREF="elisp_6.html#SEC81">Functions that Rearrange Lists</A>
</UL>
<LI><A NAME="SEC96" HREF="elisp_9.html#SEC96">Kinds of Forms</A>
<UL>
<LI><A NAME="SEC97" HREF="elisp_9.html#SEC97">Self-Evaluating Forms</A>
<LI><A NAME="SEC98" HREF="elisp_9.html#SEC98">Symbol Forms</A>
<LI><A NAME="SEC99" HREF="elisp_9.html#SEC99">Classification of List Forms</A>
<LI><A NAME="SEC100" HREF="elisp_9.html#SEC100">Symbol Function Indirection</A>
<LI><A NAME="SEC101" HREF="elisp_9.html#SEC101">Evaluation of Function Forms</A>
<LI><A NAME="SEC102" HREF="elisp_9.html#SEC102">Lisp Macro Evaluation</A>
<LI><A NAME="SEC103" HREF="elisp_9.html#SEC103">Special Forms</A>
<LI><A NAME="SEC104" HREF="elisp_9.html#SEC104">Autoloading</A>
</UL>
<LI><A NAME="SEC111" HREF="elisp_10.html#SEC111">Nonlocal Exits</A>
<UL>
<LI><A NAME="SEC112" HREF="elisp_10.html#SEC112">Explicit Nonlocal Exits:
<CODE>catch</CODE> and <CODE>throw</CODE></A>
<LI><A NAME="SEC113" HREF="elisp_10.html#SEC113">Examples of <CODE>catch</CODE>
and <CODE>throw</CODE></A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC114">Errors</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC119" HREF="elisp_10.html#SEC119">Cleaning Up from Nonlocal
Exits</A>
</UL>
<LI><A NAME="SEC128" HREF="elisp_11.html#SEC128">Scoping Rules for Variable
Bindings</A>
<UL>
<LI><A NAME="SEC129" HREF="elisp_11.html#SEC129">Scope</A>
<LI><A NAME="SEC130" HREF="elisp_11.html#SEC130">Extent</A>
<LI><A NAME="SEC131" HREF="elisp_11.html#SEC131">Implementation of Dynamic
Scoping</A>
<LI><A NAME="SEC132" HREF="elisp_11.html#SEC132">Proper Use of Dynamic
Scoping</A>
</UL>
<LI><A NAME="SEC133" HREF="elisp_11.html#SEC133">Buffer-Local Variables</A>
<UL>
<LI><A NAME="SEC134" HREF="elisp_11.html#SEC134">Introduction to Buffer-Local
Variables</A>
<LI><A NAME="SEC135" HREF="elisp_11.html#SEC135">Creating and Destroying
Buffer-local Bindings</A>
<LI><A NAME="SEC136" HREF="elisp_11.html#SEC136">The Default Value of a
Buffer-Local Variable</A>
</UL>
<LI><A NAME="SEC139" HREF="elisp_12.html#SEC139">Lambda Expressions</A>
<UL>
<LI><A NAME="SEC140" HREF="elisp_12.html#SEC140">Components of a Lambda
Expression</A>
<LI><A NAME="SEC141" HREF="elisp_12.html#SEC141">A Simple Lambda-Expression
Example</A>
<LI><A NAME="SEC142" HREF="elisp_12.html#SEC142">Advanced Features of Argument
Lists</A>
<LI><A NAME="SEC143" HREF="elisp_12.html#SEC143">Documentation Strings of
Functions</A>
</UL>
<LI><A NAME="SEC158" HREF="elisp_13.html#SEC158">Common Problems Using
Macros</A>
<UL>
<LI><A NAME="SEC159" HREF="elisp_13.html#SEC159">Evaluating Macro Arguments Too
Many Times</A>
<LI><A NAME="SEC160" HREF="elisp_13.html#SEC160">Local Variables in Macro
Expansions</A>
<LI><A NAME="SEC161" HREF="elisp_13.html#SEC161">Evaluating Macro Arguments in
Expansion</A>
<LI><A NAME="SEC162" HREF="elisp_13.html#SEC162">How Many Times is the Macro
Expanded?</A>
</UL>
<LI><A NAME="SEC176" HREF="elisp_16.html#SEC176">The Lisp Debugger</A>
<UL>
<LI><A NAME="SEC177" HREF="elisp_16.html#SEC177">Entering the Debugger on an
Error</A>
<LI><A NAME="SEC178" HREF="elisp_16.html#SEC178">Debugging Infinite Loops</A>
<LI><A NAME="SEC179" HREF="elisp_16.html#SEC179">Entering the Debugger on a
Function Call</A>
<LI><A NAME="SEC180" HREF="elisp_16.html#SEC180">Explicit Entry to the
Debugger</A>
<LI><A NAME="SEC181" HREF="elisp_16.html#SEC181">Using the Debugger</A>
<LI><A NAME="SEC182" HREF="elisp_16.html#SEC182">Debugger Commands</A>
<LI><A NAME="SEC183" HREF="elisp_16.html#SEC183">Invoking the Debugger</A>
<LI><A NAME="SEC184" HREF="elisp_16.html#SEC184">Internals of the Debugger</A>
</UL>
<LI><A NAME="SEC185" HREF="elisp_16.html#SEC185">Debugging Invalid Lisp
Syntax</A>
<UL>
<LI><A NAME="SEC186" HREF="elisp_16.html#SEC186">Excess Open Parentheses</A>
<LI><A NAME="SEC187" HREF="elisp_16.html#SEC187">Excess Close Parentheses</A>
</UL>
<LI><A NAME="SEC189" HREF="elisp_16.html#SEC189">Edebug</A>
<UL>
<LI><A NAME="SEC190" HREF="elisp_16.html#SEC190">Using Edebug</A>
<LI><A NAME="SEC191" HREF="elisp_16.html#SEC191">Preparing Functions for
Edebug</A>
<LI><A NAME="SEC192" HREF="elisp_16.html#SEC192">Edebug Modes</A>
<LI><A NAME="SEC193" HREF="elisp_16.html#SEC193">Stepping</A>
<LI><A NAME="SEC194" HREF="elisp_16.html#SEC194">Miscellaneous</A>
<LI><A NAME="SEC195" HREF="elisp_16.html#SEC195">Breakpoints</A>
<LI><A NAME="SEC196" HREF="elisp_16.html#SEC196">Views</A>
<LI><A NAME="SEC197" HREF="elisp_16.html#SEC197">Evaluation</A>
<LI><A NAME="SEC198" HREF="elisp_16.html#SEC198">Evaluation List Buffer</A>
<LI><A NAME="SEC199" HREF="elisp_16.html#SEC199">Printing</A>
<base href="/~/elisp_toc.indiana.htm">
<LI><A HREF="#SEC200">The Outside Context</A>
<base href="http://www.cs.indiana.edu/elisp/lispref/">
<LI><A NAME="SEC205" HREF="elisp_16.html#SEC205">Macro Calls</A>
<LI><A NAME="SEC206" HREF="elisp_16.html#SEC206">Edebug Options</A>
</UL>
<LI><A NAME="SEC219" HREF="elisp_18.html#SEC219">Completion</A>
<UL>
<LI><A NAME="SEC220" HREF="elisp_18.html#SEC220">Basic Completion Functions</A>
<LI><A NAME="SEC221" HREF="elisp_18.html#SEC221">Programmed Completion</A>
<LI><A NAME="SEC222" HREF="elisp_18.html#SEC222">Completion and the
Minibuffer</A>
<LI><A NAME="SEC223" HREF="elisp_18.html#SEC223">Minibuffer Commands That Do
Completion</A>
<LI><A NAME="SEC224" HREF="elisp_18.html#SEC224">High-Level Completion
Functions</A>
<LI><A NAME="SEC225" HREF="elisp_18.html#SEC225">Reading File Names</A>
<LI><A NAME="SEC226" HREF="elisp_18.html#SEC226">Lisp Symbol Completion</A>
</UL>
<LI><A NAME="SEC232" HREF="elisp_19.html#SEC232">Defining Commands</A>
<UL>
<LI><A NAME="SEC233" HREF="elisp_19.html#SEC233">Using
<CODE>interactive</CODE></A>
<LI><A NAME="SEC234" HREF="elisp_19.html#SEC234">Code Characters for
<CODE>interactive</CODE></A>
<LI><A NAME="SEC235" HREF="elisp_19.html#SEC235">Examples of Using
<CODE>interactive</CODE></A>
</UL>
<LI><A NAME="SEC238" HREF="elisp_19.html#SEC238">Input Events</A>
<UL>
<LI><A NAME="SEC239" HREF="elisp_19.html#SEC239">Keyboard Events</A>
<LI><A NAME="SEC240" HREF="elisp_19.html#SEC240">Function Keys</A>
<LI><A NAME="SEC241" HREF="elisp_19.html#SEC241">Click Events</A>
<LI><A NAME="SEC242" HREF="elisp_19.html#SEC242">Drag Events</A>
<LI><A NAME="SEC243" HREF="elisp_19.html#SEC243">Button-Down Events</A>
<LI><A NAME="SEC244" HREF="elisp_19.html#SEC244">Repeat Events</A>
<LI><A NAME="SEC245" HREF="elisp_19.html#SEC245">Motion Events</A>
<LI><A NAME="SEC246" HREF="elisp_19.html#SEC246">Focus Events</A>
<LI><A NAME="SEC247" HREF="elisp_19.html#SEC247">Event Examples</A>
<LI><A NAME="SEC248" HREF="elisp_19.html#SEC248">Classifying Events</A>
<LI><A NAME="SEC249" HREF="elisp_19.html#SEC249">Accessing Events</A>
<LI><A NAME="SEC250" HREF="elisp_19.html#SEC250">Putting Keyboard Events in
Strings</A>
</UL>
<LI><A NAME="SEC251" HREF="elisp_19.html#SEC251">Reading Input</A>
<UL>
<LI><A NAME="SEC252" HREF="elisp_19.html#SEC252">Key Sequence Input</A>
<LI><A NAME="SEC253" HREF="elisp_19.html#SEC253">Reading One Event</A>
<LI><A NAME="SEC254" HREF="elisp_19.html#SEC254">Quoted Character Input</A>
<LI><A NAME="SEC255" HREF="elisp_19.html#SEC255">Peeking and Discarding</A>
</UL>
<LI><A NAME="SEC269" HREF="elisp_20.html#SEC269">Menu Keymaps</A>
<UL>
<LI><A NAME="SEC270" HREF="elisp_20.html#SEC270">Defining Menus</A>
<LI><A NAME="SEC271" HREF="elisp_20.html#SEC271">Menus and the Mouse</A>
<LI><A NAME="SEC272" HREF="elisp_20.html#SEC272">Menus and the Keyboard</A>
<LI><A NAME="SEC273" HREF="elisp_20.html#SEC273">Menu Example</A>
<LI><A NAME="SEC274" HREF="elisp_20.html#SEC274">The Menu Bar</A>
<LI><A NAME="SEC275" HREF="elisp_20.html#SEC275">Modifying Menus</A>
</UL>
<LI><A NAME="SEC283" HREF="elisp_21.html#SEC283">Major Modes</A>
<UL>
<LI><A NAME="SEC284" HREF="elisp_21.html#SEC284">Major Mode Conventions</A>
<LI><A NAME="SEC285" HREF="elisp_21.html#SEC285">Major Mode Examples</A>
<LI><A NAME="SEC286" HREF="elisp_21.html#SEC286">How Emacs Chooses a Major
Mode</A>
<LI><A NAME="SEC287" HREF="elisp_21.html#SEC287">Getting Help about a Major
Mode</A>
</UL>
<LI><A NAME="SEC288" HREF="elisp_21.html#SEC288">Minor Modes</A>
<UL>
<LI><A NAME="SEC289" HREF="elisp_21.html#SEC289">Conventions for Writing Minor
Modes</A>
<LI><A NAME="SEC290" HREF="elisp_21.html#SEC290">Keymaps and Minor Modes</A>
</UL>
<LI><A NAME="SEC291" HREF="elisp_21.html#SEC291">Mode Line Format</A>
<UL>
<LI><A NAME="SEC292" HREF="elisp_21.html#SEC292">The Data Structure of the Mode
Line</A>
<LI><A NAME="SEC293" HREF="elisp_21.html#SEC293">Variables Used in the Mode
Line</A>
<LI><A NAME="SEC294" HREF="elisp_21.html#SEC294"><CODE>%</CODE>-Constructs in
the Mode Line</A>
</UL>
<LI><A NAME="SEC303" HREF="elisp_23.html#SEC303">Visiting Files</A>
<UL>
<LI><A NAME="SEC304" HREF="elisp_23.html#SEC304">Functions for Visiting
Files</A>
<LI><A NAME="SEC305" HREF="elisp_23.html#SEC305">Subroutines of Visiting</A>
</UL>
<LI><A NAME="SEC310" HREF="elisp_23.html#SEC310">Information about Files</A>
<UL>
<LI><A NAME="SEC311" HREF="elisp_23.html#SEC311">Testing Accessibility</A>
<LI><A NAME="SEC312" HREF="elisp_23.html#SEC312">Distinguishing Kinds of
Files</A>
<LI><A NAME="SEC313" HREF="elisp_23.html#SEC313">Truenames</A>
<LI><A NAME="SEC314" HREF="elisp_23.html#SEC314">Other Information about
Files</A>
</UL>
<LI><A NAME="SEC318" HREF="elisp_23.html#SEC318">File Names</A>
<UL>
<LI><A NAME="SEC319" HREF="elisp_23.html#SEC319">File Name Components</A>
<LI><A NAME="SEC320" HREF="elisp_23.html#SEC320">Directory Names</A>
<LI><A NAME="SEC321" HREF="elisp_23.html#SEC321">Absolute and Relative File
Names</A>
<LI><A NAME="SEC322" HREF="elisp_23.html#SEC322">Functions that Expand
Filenames</A>
<LI><A NAME="SEC323" HREF="elisp_23.html#SEC323">Generating Unique File
Names</A>
<LI><A NAME="SEC324" HREF="elisp_23.html#SEC324">File Name Completion</A>
</UL>
<LI><A NAME="SEC327" HREF="elisp_24.html#SEC327">Backup Files</A>
<UL>
<LI><A NAME="SEC328" HREF="elisp_24.html#SEC328">Making Backup Files</A>
<LI><A NAME="SEC329" HREF="elisp_24.html#SEC329">Backup by Renaming or by
Copying?</A>
<LI><A NAME="SEC330" HREF="elisp_24.html#SEC330">Making and Deleting Numbered
Backup Files</A>
<LI><A NAME="SEC331" HREF="elisp_24.html#SEC331">Naming Backup Files</A>
</UL>
<LI><A NAME="SEC364" HREF="elisp_27.html#SEC364">Frame Parameters</A>
<UL>
<LI><A NAME="SEC365" HREF="elisp_27.html#SEC365">Access to Frame Parameters</A>
<LI><A NAME="SEC366" HREF="elisp_27.html#SEC366">Initial Frame Parameters</A>
<LI><A NAME="SEC367" HREF="elisp_27.html#SEC367">X Window Frame Parameters</A>
<LI><A NAME="SEC368" HREF="elisp_27.html#SEC368">Frame Size And Position</A>
</UL>
<LI><A NAME="SEC381" HREF="elisp_27.html#SEC381">X Server</A>
<UL>
<LI><A NAME="SEC382" HREF="elisp_27.html#SEC382">X Connections</A>
<LI><A NAME="SEC383" HREF="elisp_27.html#SEC383">Resources</A>
<LI><A NAME="SEC384" HREF="elisp_27.html#SEC384">Data about the X Server</A>
</UL>
<LI><A NAME="SEC387" HREF="elisp_28.html#SEC387">Motion</A>
<UL>
<LI><A NAME="SEC388" HREF="elisp_28.html#SEC388">Motion by Characters</A>
<LI><A NAME="SEC389" HREF="elisp_28.html#SEC389">Motion by Words</A>
<LI><A NAME="SEC390" HREF="elisp_28.html#SEC390">Motion to an End of the
Buffer</A>
<LI><A NAME="SEC391" HREF="elisp_28.html#SEC391">Motion by Text Lines</A>
<LI><A NAME="SEC392" HREF="elisp_28.html#SEC392">Motion by Screen Lines</A>
<LI><A NAME="SEC393" HREF="elisp_28.html#SEC393">The User-Level Vertical Motion
Commands</A>
<LI><A NAME="SEC394" HREF="elisp_28.html#SEC394">Moving over Balanced
Expressions</A>
<LI><A NAME="SEC395" HREF="elisp_28.html#SEC395">Skipping Characters</A>
</UL>
<LI><A NAME="SEC414" HREF="elisp_30.html#SEC414">The Kill Ring</A>
<UL>
<LI><A NAME="SEC415" HREF="elisp_30.html#SEC415">Kill Ring Concepts</A>
<LI><A NAME="SEC416" HREF="elisp_30.html#SEC416">Functions for Killing</A>
<LI><A NAME="SEC417" HREF="elisp_30.html#SEC417">Functions for Yanking</A>
<LI><A NAME="SEC418" HREF="elisp_30.html#SEC418">Low Level Kill Ring</A>
<LI><A NAME="SEC419" HREF="elisp_30.html#SEC419">Internals of the Kill Ring</A>
</UL>
<LI><A NAME="SEC425" HREF="elisp_30.html#SEC425">Indentation</A>
<UL>
<LI><A NAME="SEC426" HREF="elisp_30.html#SEC426">Indentation Primitives</A>
<LI><A NAME="SEC427" HREF="elisp_30.html#SEC427">Indentation Controlled by
Major Mode</A>
<LI><A NAME="SEC428" HREF="elisp_30.html#SEC428">Indenting an Entire Region</A>
<LI><A NAME="SEC429" HREF="elisp_30.html#SEC429">Indentation Relative to
Previous Lines</A>
<LI><A NAME="SEC430" HREF="elisp_30.html#SEC430">Adjustable "Tab Stops"</A>
<LI><A NAME="SEC431" HREF="elisp_30.html#SEC431">Indentation-Based Motion
Commands</A>
</UL>
<LI><A NAME="SEC434" HREF="elisp_30.html#SEC434">Text Properties</A>
<UL>
<LI><A NAME="SEC435" HREF="elisp_30.html#SEC435">Examining Text Properties</A>
<LI><A NAME="SEC436" HREF="elisp_30.html#SEC436">Changing Text Properties</A>
<LI><A NAME="SEC437" HREF="elisp_30.html#SEC437">Property Search Functions</A>
<LI><A NAME="SEC438" HREF="elisp_30.html#SEC438">Special Properties</A>
<LI><A NAME="SEC439" HREF="elisp_30.html#SEC439">Stickiness of Text
Properties</A>
<LI><A NAME="SEC440" HREF="elisp_30.html#SEC440">Why Text Properties are not
Intervals</A>
</UL>
<LI><A NAME="SEC447" HREF="elisp_31.html#SEC447">Regular Expressions</A>
<UL>
<LI><A NAME="SEC448" HREF="elisp_31.html#SEC448">Syntax of Regular
Expressions</A>
<LI><A NAME="SEC449" HREF="elisp_31.html#SEC449">Complex Regexp Example</A>
</UL>
<LI><A NAME="SEC452" HREF="elisp_31.html#SEC452">The Match Data</A>
<UL>
<LI><A NAME="SEC453" HREF="elisp_31.html#SEC453">Simple Match Data Access</A>
<LI><A NAME="SEC454" HREF="elisp_31.html#SEC454">Replacing the Text That
Matched</A>
<LI><A NAME="SEC455" HREF="elisp_31.html#SEC455">Accessing the Entire Match
Data</A>
<LI><A NAME="SEC456" HREF="elisp_31.html#SEC456">Saving and Restoring the Match
Data</A>
</UL>
<LI><A NAME="SEC460" HREF="elisp_32.html#SEC460">Syntax Descriptors</A>
<UL>
<LI><A NAME="SEC461" HREF="elisp_32.html#SEC461">Table of Syntax Classes</A>
<LI><A NAME="SEC462" HREF="elisp_32.html#SEC462">Syntax Flags</A>
</UL>
<LI><A NAME="SEC483" HREF="elisp_34.html#SEC483">Receiving Output from
Processes</A>
<UL>
<LI><A NAME="SEC484" HREF="elisp_34.html#SEC484">Process Buffers</A>
<LI><A NAME="SEC485" HREF="elisp_34.html#SEC485">Process Filter Functions</A>
<LI><A NAME="SEC486" HREF="elisp_34.html#SEC486">Accepting Output from
Processes</A>
</UL>
<LI><A NAME="SEC491" HREF="elisp_35.html#SEC491">Starting Up Emacs</A>
<UL>
<LI><A NAME="SEC492" HREF="elisp_35.html#SEC492">Summary: Sequence of Actions
at Start Up</A>
<LI><A NAME="SEC493" HREF="elisp_35.html#SEC493">The Init File:
<TT>`.emacs'</TT></A>
<LI><A NAME="SEC494" HREF="elisp_35.html#SEC494">Terminal-Specific
Initialization</A>
<LI><A NAME="SEC495" HREF="elisp_35.html#SEC495">Command Line Arguments</A>
</UL>
<LI><A NAME="SEC496" HREF="elisp_35.html#SEC496">Getting out of Emacs</A>
<UL>
<LI><A NAME="SEC497" HREF="elisp_35.html#SEC497">Killing Emacs</A>
<LI><A NAME="SEC498" HREF="elisp_35.html#SEC498">Suspending Emacs</A>
</UL>
<LI><A NAME="SEC503" HREF="elisp_35.html#SEC503">Terminal Input</A>
<UL>
<LI><A NAME="SEC504" HREF="elisp_35.html#SEC504">Input Modes</A>
<LI><A NAME="SEC505" HREF="elisp_35.html#SEC505">Translating Input Events</A>
<LI><A NAME="SEC506" HREF="elisp_35.html#SEC506">Recording Input</A>
</UL>
<LI><A NAME="SEC518" HREF="elisp_36.html#SEC518">Overlays</A>
<UL>
<LI><A NAME="SEC519" HREF="elisp_36.html#SEC519">Overlay Properties</A>
<LI><A NAME="SEC520" HREF="elisp_36.html#SEC520">Managing Overlays</A>
</UL>
<LI><A NAME="SEC521" HREF="elisp_36.html#SEC521">Faces</A>
<UL>
<LI><A NAME="SEC522" HREF="elisp_36.html#SEC522">Merging Faces for Display</A>
<LI><A NAME="SEC523" HREF="elisp_36.html#SEC523">Functions for Working with
Faces</A>
</UL>
<LI><A NAME="SEC527" HREF="elisp_36.html#SEC527">Display Tables</A>
<UL>
<LI><A NAME="SEC528" HREF="elisp_36.html#SEC528">Display Table Format</A>
<LI><A NAME="SEC529" HREF="elisp_36.html#SEC529">Active Display Table</A>
<LI><A NAME="SEC530" HREF="elisp_36.html#SEC530">Glyphs</A>
<LI><A NAME="SEC531" HREF="elisp_36.html#SEC531">ISO Latin 1</A>
</UL>
<LI><A NAME="SEC557" HREF="elisp_39.html#SEC557">Object Internals</A>
<UL>
<LI><A NAME="SEC558" HREF="elisp_39.html#SEC558">Buffer Internals</A>
<LI><A NAME="SEC559" HREF="elisp_39.html#SEC559">Window Internals</A>
<LI><A NAME="SEC560" HREF="elisp_39.html#SEC560">Process Internals</A>
</UL>
</UL>
<UL>
<LI><A NAME="SEC15" HREF="elisp_2.html#SEC15">Format of Descriptions</A>
<UL>
<LI><A NAME="SEC16" HREF="elisp_2.html#SEC16">A Sample Function Description</A>
<LI><A NAME="SEC17" HREF="elisp_2.html#SEC17">A Sample Variable Description</A>
</UL>
<LI><A NAME="SEC27" HREF="elisp_3.html#SEC27">List Type</A>
<UL>
<LI><A NAME="SEC28" HREF="elisp_3.html#SEC28">Dotted Pair Notation</A>
<LI><A NAME="SEC29" HREF="elisp_3.html#SEC29">Association List Type</A>
</UL>
<LI><A NAME="SEC114" HREF="elisp_10.html#SEC114">Errors</A>
<UL>
<LI><A NAME="SEC115" HREF="elisp_10.html#SEC115">How to Signal an Error</A>
<LI><A NAME="SEC116" HREF="elisp_10.html#SEC116">How Emacs Processes Errors</A>
<LI><A NAME="SEC117" HREF="elisp_10.html#SEC117">Writing Code to Handle
Errors</A>
<LI><A NAME="SEC118" HREF="elisp_10.html#SEC118">Error Symbols and Condition
Names</A>
</UL>
<LI><A NAME="SEC200" HREF="elisp_16.html#SEC200">The Outside Context</A>
<UL>
<LI><A NAME="SEC201" HREF="elisp_16.html#SEC201">Just Checking</A>
<LI><A NAME="SEC202" HREF="elisp_16.html#SEC202">Outside Window
Configuration</A>
<LI><A NAME="SEC203" HREF="elisp_16.html#SEC203">Recursive Edit</A>
<LI><A NAME="SEC204" HREF="elisp_16.html#SEC204">Side Effects</A>
</UL>
</UL>
;
; To UNSUBSCRIBE: Send a mail message to address@hidden
; with "unsubscribe lynx-dev" (without the
; quotation marks) on a line by itself.
;
- LYNX-DEV <base href> change hurts me badly,
Will Mengarini <=