[Openmcl-cvs-notifications] r14799 - /trunk/source/doc/ccl-documentation.html

gb at clozure.com gb at clozure.com
Sat May 14 11:00:25 CDT 2011


Author: gb
Date: Sat May 14 11:00:25 2011
New Revision: 14799

Log:
updated

Modified:
    trunk/source/doc/ccl-documentation.html

Modified: trunk/source/doc/ccl-documentation.html
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/doc/ccl-documentation.html (original)
+++ trunk/source/doc/ccl-documentation.html Sat May 14 11:00:25 2011
@@ -5,7 +5,7 @@
     <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DUTF-=
8" />
     <title>Clozure CL Documentation</title>
     <meta name=3D"generator" content=3D"DocBook XSL Stylesheets V1.75.2" />
-    <link rel=3D"home" href=3D"#id435872" title=3D"Clozure CL Documentatio=
n" />
+    <link rel=3D"home" href=3D"#id590940" title=3D"Clozure CL Documentatio=
n" />
     <link rel=3D"next" href=3D"#about-ccl" title=3D"Chapter=C3=82=C2=A01.=
=C3=82=C2=A0About Clozure CL" />
   </head>
   <body>
@@ -13,7 +13,7 @@
       <div class=3D"titlepage">
         <div>
           <div>
-            <h1 class=3D"title"><a id=3D"id435872"></a>Clozure CL Document=
ation</h1>
+            <h1 class=3D"title"><a id=3D"id590940"></a>Clozure CL Document=
ation</h1>
           </div>
         </div>
         <hr />
@@ -232,458 +232,552 @@
           </dd>
           <dt>
             <span class=3D"chapter">
-              <a href=3D"#Programming-with-Threads">6. Programming with Th=
reads</a>
+              <a href=3D"#HemlockProgramming">6. Hemlock Programming</a>
             </span>
           </dt>
           <dd>
             <dl>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Threads-overview">6.1. Threads Overview</a>
+                  <a href=3D"#HemlockProgrammingIntroduction">6.1. Introdu=
ction</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Intentionally--Missing-Functionality">6.2. (=
Intentionally) Missing Functionality</a>
+                  <a href=3D"#HemlockProgrammingRepresentationOfText">6.2.=
 Representation of Text</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Implementation-Decisions-and-Open-Questions"=
>6.3. Implementation Decisions and Open Questions</a>
+                  <a href=3D"#HemlockProgrammingBuffers">6.3. Buffers</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Porting-Code-from-the-Old-Thread-Model">6.4.=
 Porting Code from the Old Thread Model</a>
+                  <a href=3D"#HemlockProgrammingAlteringAndSearchingText">=
6.4. Altering and Searching Text</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Background-Terminal-Input">6.5. Background T=
erminal Input</a>
+                  <a href=3D"#HemlockProgrammingTheCurrentEnvironment">6.5=
. The Current Environment</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#The-Threads-which-CCL-Uses-for-Its-Own-Purpo=
ses">6.6. The Threads which Clozure CL Uses for Its Own Purposes</a>
+                  <a href=3D"#HemlockProgrammingHemlockVariables">6.6. Hem=
lock Variables</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Threads-Dictionary">6.7. Threads Dictionary<=
/a>
+                  <a href=3D"#HemlockProgrammingCommands">6.7. Commands</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#HemlockProgrammingModes">6.8. Modes</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#HemlockProgrammingCharacterAttributes">6.9. =
Character Attributes</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#HemlockProgrammingControllingTheDisplay">6.1=
0. Controlling the Display</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#HemlockProgrammingLogicalKeyEvents">6.11. Lo=
gical Key-Events</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#EchoArea">6.12. The Echo Area</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Files">6.13. Files</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#HemlockProgrammingHemlockSLispEnvironment">6=
.14. Hemlock's Lisp Environment</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#HemlockProgrammingHighLevelTextPrimitives">6=
.15. High-Level Text Primitives</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#HemlockProgrammingUtilities">6.16. Utilities=
</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#HemlockProgrammingMiscellaneous">6.17. Misce=
llaneous</a>
                 </span>
               </dt>
             </dl>
           </dd>
           <dt>
             <span class=3D"chapter">
-              <a href=3D"#Programming-with-Sockets">7. Programming with So=
ckets</a>
+              <a href=3D"#Programming-with-Threads">7. Programming with Th=
reads</a>
             </span>
           </dt>
           <dd>
             <dl>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Sockets-Overview">7.1. Overview</a>
+                  <a href=3D"#Threads-overview">7.1. Threads Overview</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Sockets-Dictionary">7.2. Sockets Dictionary<=
/a>
+                  <a href=3D"#Intentionally--Missing-Functionality">7.2. (=
Intentionally) Missing Functionality</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Implementation-Decisions-and-Open-Questions"=
>7.3. Implementation Decisions and Open Questions</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Porting-Code-from-the-Old-Thread-Model">7.4.=
 Porting Code from the Old Thread Model</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Background-Terminal-Input">7.5. Background T=
erminal Input</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#The-Threads-which-CCL-Uses-for-Its-Own-Purpo=
ses">7.6. The Threads which Clozure CL Uses for Its Own Purposes</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Threads-Dictionary">7.7. Threads Dictionary<=
/a>
                 </span>
               </dt>
             </dl>
           </dd>
           <dt>
             <span class=3D"chapter">
-              <a href=3D"#Running-Other-Programs-as-Subprocesses">8. Runni=
ng Other Programs as Subprocesses</a>
+              <a href=3D"#Programming-with-Sockets">8. Programming with So=
ckets</a>
             </span>
           </dt>
           <dd>
             <dl>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Subprocess-Overview">8.1. Overview</a>
+                  <a href=3D"#Sockets-Overview">8.1. Overview</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Subprocess-Examples">8.2. Examples</a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#Limitations-and-known-bugs">8.3. Limitations=
 and known bugs</a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#External-Program-Dictionary">8.4. External-P=
rogram Dictionary</a>
+                  <a href=3D"#Sockets-Dictionary">8.2. Sockets Dictionary<=
/a>
                 </span>
               </dt>
             </dl>
           </dd>
           <dt>
             <span class=3D"chapter">
-              <a href=3D"#Streams">9. Streams</a>
+              <a href=3D"#Running-Other-Programs-as-Subprocesses">9. Runni=
ng Other Programs as Subprocesses</a>
             </span>
           </dt>
           <dd>
             <dl>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#CCL-Stream-Extensions">9.1. Stream Extension=
s</a>
+                  <a href=3D"#Subprocess-Overview">9.1. Overview</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Creating-Your-Own-Stream-Classes-with-Gray-S=
treams">9.2. Creating Your Own Stream Classes with Gray Streams</a>
+                  <a href=3D"#Subprocess-Examples">9.2. Examples</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Limitations-and-known-bugs">9.3. Limitations=
 and known bugs</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#External-Program-Dictionary">9.4. External-P=
rogram Dictionary</a>
                 </span>
               </dt>
             </dl>
           </dd>
           <dt>
             <span class=3D"chapter">
-              <a href=3D"#Writing-Portable-Extensions-to-the-Object-System=
-using-the-MetaObject-Protocol">10. Writing Portable Extensions to the Obje=
ct System  using the MetaObject Protocol</a>
+              <a href=3D"#Streams">10. Streams</a>
             </span>
           </dt>
           <dd>
             <dl>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#MOP-Overview">10.1. Overview</a>
+                  <a href=3D"#CCL-Stream-Extensions">10.1. Stream Extensio=
ns</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#MOP-Implementation-status">10.2. Implementat=
ion status</a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#Concurrency-issues">10.3. Concurrency issues=
</a>
+                  <a href=3D"#Creating-Your-Own-Stream-Classes-with-Gray-S=
treams">10.2. Creating Your Own Stream Classes with Gray Streams</a>
                 </span>
               </dt>
             </dl>
           </dd>
           <dt>
             <span class=3D"chapter">
-              <a href=3D"#Profiling">11. Profiling</a>
+              <a href=3D"#Writing-Portable-Extensions-to-the-Object-System=
-using-the-MetaObject-Protocol">11. Writing Portable Extensions to the Obje=
ct System  using the MetaObject Protocol</a>
             </span>
           </dt>
           <dd>
             <dl>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Profiling-Using-the-Linux-oprofile-system-le=
vel-profiler">11.1. Using the Linux oprofile system-level profiler</a>
+                  <a href=3D"#MOP-Overview">11.1. Overview</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Profiling-Using-Apples-CHUD-metering-tools">=
11.2. Using Apple's CHUD metering tools</a>
+                  <a href=3D"#MOP-Implementation-status">11.2. Implementat=
ion status</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Concurrency-issues">11.3. Concurrency issues=
</a>
                 </span>
               </dt>
             </dl>
           </dd>
           <dt>
             <span class=3D"chapter">
-              <a href=3D"#The-Foreign-Function-Interface">12. The Foreign-=
Function Interface</a>
+              <a href=3D"#Profiling">12. Profiling</a>
             </span>
           </dt>
           <dd>
             <dl>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Specifying-And-Using-Foreign-Types">12.1. Sp=
ecifying And Using Foreign Types</a>
+                  <a href=3D"#Profiling-Using-the-Linux-oprofile-system-le=
vel-profiler">12.1. Using the Linux oprofile system-level profiler</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Foreign-Function-Calls">12.2. Foreign Functi=
on Calls</a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#Referencing-and-Using-Foreign-Memory-Address=
es">12.3. Referencing and Using Foreign Memory Addresses</a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#The-Interface-Database">12.4. The Interface =
Database</a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#Using-Interface-Directories">12.5. Using Int=
erface Directories</a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#Using-Shared-Libraries">12.6. Using Shared L=
ibraries</a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#The-Interface-Translator">12.7. The Interfac=
e Translator</a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#Case-sensitivity-of-foreign-names-in-CCL">12=
.8. Case-sensitivity of foreign names in <code class=3D"literal">CCL</code>=
</a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#Reading-Foreign-Names">12.9. Reading Foreign=
 Names</a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#Tutorial--Using-Basic-Calls-and-Types">12.10=
. Tutorial: Using Basic Calls and Types</a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#Tutorial--Allocating-Foreign-Data-on-the-Lis=
p-Heap">12.11. Tutorial: Allocating Foreign Data on the Lisp Heap </a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#Foreign-Function-Interface-Dictionary">12.12=
. The Foreign-Function-Interface Dictionary</a>
+                  <a href=3D"#Profiling-Using-Apples-CHUD-metering-tools">=
12.2. Using Apple's CHUD metering tools</a>
                 </span>
               </dt>
             </dl>
           </dd>
           <dt>
             <span class=3D"chapter">
-              <a href=3D"#The-Objective-C-Bridge">13. The Objective-C Brid=
ge</a>
+              <a href=3D"#The-Foreign-Function-Interface">13. The Foreign-=
Function Interface</a>
             </span>
           </dt>
           <dd>
             <dl>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Objective-C-Changes-1.2">13.1. Changes in 1.=
2</a>
+                  <a href=3D"#Specifying-And-Using-Foreign-Types">13.1. Sp=
ecifying And Using Foreign Types</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Using-Objective-C-Classes">13.2. Using Objec=
tive-C Classes</a>
+                  <a href=3D"#Foreign-Function-Calls">13.2. Foreign Functi=
on Calls</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Instantiating-Objective-C-Objects">13.3. Ins=
tantiating Objective-C Objects</a>
+                  <a href=3D"#Referencing-and-Using-Foreign-Memory-Address=
es">13.3. Referencing and Using Foreign Memory Addresses</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Calling-Objective-C-Methods">13.4. Calling O=
bjective-C Methods</a>
+                  <a href=3D"#The-Interface-Database">13.4. The Interface =
Database</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Defining-Objective-C-Classes">13.5. Defining=
 Objective-C Classes</a>
+                  <a href=3D"#Using-Interface-Directories">13.5. Using Int=
erface Directories</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Defining-Objective-C-Methods">13.6. Defining=
 Objective-C Methods</a>
+                  <a href=3D"#Using-Shared-Libraries">13.6. Using Shared L=
ibraries</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Loading-Objc-Frameworks">13.7. Loading Frame=
works</a>
+                  <a href=3D"#The-Interface-Translator">13.7. The Interfac=
e Translator</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#How-Objective-C-Names-are-Mapped-to-Lisp-Sym=
bols">13.8. How Objective-C Names are Mapped to Lisp Symbols</a>
+                  <a href=3D"#Case-sensitivity-of-foreign-names-in-CCL">13=
.8. Case-sensitivity of foreign names in <code class=3D"literal">CCL</code>=
</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Reading-Foreign-Names">13.9. Reading Foreign=
 Names</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Tutorial--Using-Basic-Calls-and-Types">13.10=
. Tutorial: Using Basic Calls and Types</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Tutorial--Allocating-Foreign-Data-on-the-Lis=
p-Heap">13.11. Tutorial: Allocating Foreign Data on the Lisp Heap </a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Foreign-Function-Interface-Dictionary">13.12=
. The Foreign-Function-Interface Dictionary</a>
                 </span>
               </dt>
             </dl>
           </dd>
           <dt>
             <span class=3D"chapter">
-              <a href=3D"#Platform-specific-notes">14. Platform-specific n=
otes</a>
+              <a href=3D"#The-Objective-C-Bridge">14. The Objective-C Brid=
ge</a>
             </span>
           </dt>
           <dd>
             <dl>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Platform-specific-overview">14.1. Overview</=
a>
+                  <a href=3D"#Objective-C-Changes-1.2">14.1. Changes in 1.=
2</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Unix-Posix-Darwin-Features">14.2. Unix/Posix=
/Darwin Features</a>
+                  <a href=3D"#Using-Objective-C-Classes">14.2. Using Objec=
tive-C Classes</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Cocoa-Programming-in-CCL">14.3. Cocoa Progra=
mming in Clozure CL</a>
+                  <a href=3D"#Instantiating-Objective-C-Objects">14.3. Ins=
tantiating Objective-C Objects</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Building-an-Application-Bundle">14.4. Buildi=
ng an Application Bundle</a>
+                  <a href=3D"#Calling-Objective-C-Methods">14.4. Calling O=
bjective-C Methods</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Recommended-Reading">14.5. Recommended Readi=
ng</a>
+                  <a href=3D"#Defining-Objective-C-Classes">14.5. Defining=
 Objective-C Classes</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Operating-System-Dictionary">14.6. Operating=
-System Dictionary</a>
+                  <a href=3D"#Defining-Objective-C-Methods">14.6. Defining=
 Objective-C Methods</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Loading-Objc-Frameworks">14.7. Loading Frame=
works</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#How-Objective-C-Names-are-Mapped-to-Lisp-Sym=
bols">14.8. How Objective-C Names are Mapped to Lisp Symbols</a>
                 </span>
               </dt>
             </dl>
           </dd>
           <dt>
             <span class=3D"chapter">
-              <a href=3D"#Understanding-and-Configuring-the-Garbage-Collec=
tor">15. Understanding and Configuring the Garbage Collector</a>
+              <a href=3D"#Platform-specific-notes">15. Platform-specific n=
otes</a>
             </span>
           </dt>
           <dd>
             <dl>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Heap-space-allocation">15.1. Heap space allo=
cation</a>
+                  <a href=3D"#Platform-specific-overview">15.1. Overview</=
a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#The-Ephemeral-GC">15.2. The Ephemeral GC</a>
+                  <a href=3D"#Unix-Posix-Darwin-Features">15.2. Unix/Posix=
/Darwin Features</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#GC-Page-reclamation-policy">15.3. GC Page re=
clamation policy</a>
+                  <a href=3D"#Cocoa-Programming-in-CCL">15.3. Cocoa Progra=
mming in Clozure CL</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#iPure--areas-are-read-only--paged-from-image=
-file">15.4. "Pure" areas are read-only, paged from image file</a>
+                  <a href=3D"#Building-an-Application-Bundle">15.4. Buildi=
ng an Application Bundle</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Weak-References">15.5. Weak References</a>
+                  <a href=3D"#Recommended-Reading">15.5. Recommended Readi=
ng</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Weak-References-Dictionary">15.6. Weak Refer=
ences Dictionary</a>
-                </span>
-              </dt>
-              <dt>
-                <span class=3D"sect1">
-                  <a href=3D"#Garbage-Collection-Dictionary">15.7. Garbage=
-Collection Dictionary</a>
+                  <a href=3D"#Operating-System-Dictionary">15.6. Operating=
-System Dictionary</a>
                 </span>
               </dt>
             </dl>
           </dd>
           <dt>
             <span class=3D"chapter">
-              <a href=3D"#Implementation-Details-of-CCL">16. Implementatio=
n Details of Clozure CL</a>
+              <a href=3D"#Understanding-and-Configuring-the-Garbage-Collec=
tor">16. Understanding and Configuring the Garbage Collector</a>
             </span>
           </dt>
           <dd>
             <dl>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Threads-and-exceptions">16.1. Threads and ex=
ceptions</a>
+                  <a href=3D"#Heap-space-allocation">16.1. Heap space allo=
cation</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Register-usage-and-tagging">16.2. Register u=
sage and tagging</a>
+                  <a href=3D"#The-Ephemeral-GC">16.2. The Ephemeral GC</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Heap-Allocation">16.3. Heap Allocation</a>
+                  <a href=3D"#GC-Page-reclamation-policy">16.3. GC Page re=
clamation policy</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#GC-details">16.4. GC details</a>
+                  <a href=3D"#iPure--areas-are-read-only--paged-from-image=
-file">16.4. "Pure" areas are read-only, paged from image file</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#The-ephemeral-GC">16.5. The ephemeral GC</a>
+                  <a href=3D"#Weak-References">16.5. Weak References</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Fasl-files">16.6. Fasl files</a>
+                  <a href=3D"#Weak-References-Dictionary">16.6. Weak Refer=
ences Dictionary</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#The-Objective-C-Bridge--1-">16.7. The Object=
ive-C Bridge</a>
+                  <a href=3D"#Garbage-Collection-Dictionary">16.7. Garbage=
-Collection Dictionary</a>
                 </span>
               </dt>
             </dl>
           </dd>
           <dt>
             <span class=3D"chapter">
-              <a href=3D"#Modifying-CCL">17. Modifying Clozure CL</a>
+              <a href=3D"#Implementation-Details-of-CCL">17. Implementatio=
n Details of Clozure CL</a>
             </span>
           </dt>
           <dd>
             <dl>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Contributing-Code-Back-to-the-CCL-Project">1=
7.1. Contributing Code Back to the Clozure CL Project</a>
+                  <a href=3D"#Threads-and-exceptions">17.1. Threads and ex=
ceptions</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Using-CCL-in--development--and-in--user--mod=
e">17.2. Using Clozure CL in "development" and in  "user" mode</a>
+                  <a href=3D"#Register-usage-and-tagging">17.2. Register u=
sage and tagging</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#kernel-debugger">17.3. The Kernel Debugger</=
a>
+                  <a href=3D"#Heap-Allocation">17.3. Heap Allocation</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Using-AltiVec-in-CCL-LAP-functions">17.4. Us=
ing AltiVec in Clozure CL LAP functions</a>
+                  <a href=3D"#GC-details">17.4. GC details</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#Development-Mode-Dictionary">17.5. Developme=
nt-Mode Dictionary</a>
+                  <a href=3D"#The-ephemeral-GC">17.5. The ephemeral GC</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Fasl-files">17.6. Fasl files</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#The-Objective-C-Bridge--1-">17.7. The Object=
ive-C Bridge</a>
                 </span>
               </dt>
             </dl>
           </dd>
           <dt>
             <span class=3D"chapter">
-              <a href=3D"#Questions-and-Answers">18. Questions and Answers=
</a>
+              <a href=3D"#Modifying-CCL">18. Modifying Clozure CL</a>
             </span>
           </dt>
           <dd>
             <dl>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#How-can-I-do-nonblocking--aka--unbuffered--a=
nd--raw---IO-">18.1. How can I do nonblocking (aka "unbuffered" and "raw") =
IO?</a>
+                  <a href=3D"#Contributing-Code-Back-to-the-CCL-Project">1=
8.1. Contributing Code Back to the Clozure CL Project</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#I-m-using-the-graphics-demos--Why-doesn-t-th=
e-menubar-change-">18.2. I'm using the graphics demos. Why doesn't the menu=
bar
+                  <a href=3D"#Using-CCL-in--development--and-in--user--mod=
e">18.2. Using Clozure CL in "development" and in  "user" mode</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#kernel-debugger">18.3. The Kernel Debugger</=
a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Using-AltiVec-in-CCL-LAP-functions">18.4. Us=
ing AltiVec in Clozure CL LAP functions</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#Development-Mode-Dictionary">18.5. Developme=
nt-Mode Dictionary</a>
+                </span>
+              </dt>
+            </dl>
+          </dd>
+          <dt>
+            <span class=3D"chapter">
+              <a href=3D"#Questions-and-Answers">19. Questions and Answers=
</a>
+            </span>
+          </dt>
+          <dd>
+            <dl>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#How-can-I-do-nonblocking--aka--unbuffered--a=
nd--raw---IO-">19.1. How can I do nonblocking (aka "unbuffered" and "raw") =
IO?</a>
+                </span>
+              </dt>
+              <dt>
+                <span class=3D"sect1">
+                  <a href=3D"#I-m-using-the-graphics-demos--Why-doesn-t-th=
e-menubar-change-">19.2. I'm using the graphics demos. Why doesn't the menu=
bar
       change?</a>
                 </span>
               </dt>
               <dt>
                 <span class=3D"sect1">
-                  <a href=3D"#I-m-using-Slime-and-Cocoa--Why-doesn-t--stan=
dard-output--seem-to-work-">18.3. I'm using Slime and Cocoa. Why doesn't *s=
tandard-output*
+                  <a href=3D"#I-m-using-Slime-and-Cocoa--Why-doesn-t--stan=
dard-output--seem-to-work-">19.3. I'm using Slime and Cocoa. Why doesn't *s=
tandard-output*
       seem to work? </a>
                 </span>
               </dt>
@@ -1292,7 +1386,7 @@
         <code class=3D"literal">ccl</code> directory in order to support f=
eatures
         such as <code class=3D"literal">require</code> and
         <code class=3D"literal">provide</code>, access to foreign interface
-        information (see <a class=3D"link" href=3D"#The-Interface-Database=
" title=3D"12.4.=C3=82=C2=A0The Interface Database">The
+        information (see <a class=3D"link" href=3D"#The-Interface-Database=
" title=3D"13.4.=C3=82=C2=A0The Interface Database">The
         Interface Database</a>) and the Lisp build process (see
         <a class=3D"link" href=3D"#Building-CCL">Building Clozure CL from =
its Source
         Code</a>). Specifically, it needs to set up logical
@@ -1530,7 +1624,7 @@
                 <p><code class=3D"literal">-T</code> <em class=3D"paramete=
r"><code>n</code></em> (or
 	      <code class=3D"literal">--set-lisp-heap-gc-threshold</code>
 	      <em class=3D"parameter"><code>n</code></em>).  Sets the Lisp gc thr=
eshold to
-	      <em class=3D"parameter"><code>n</code></em>. (see <a class=3D"xref"=
 href=3D"#GC-Page-reclamation-policy" title=3D"15.3.=C3=82=C2=A0GC Page rec=
lamation policy">Section=C3=82=C2=A015.3, =C3=A2=C2=80=C2=9CGC Page reclama=
tion policy=C3=A2=C2=80=C2=9D</a></p>
+	      <em class=3D"parameter"><code>n</code></em>. (see <a class=3D"xref"=
 href=3D"#GC-Page-reclamation-policy" title=3D"16.3.=C3=82=C2=A0GC Page rec=
lamation policy">Section=C3=82=C2=A016.3, =C3=A2=C2=80=C2=9CGC Page reclama=
tion policy=C3=A2=C2=80=C2=9D</a></p>
               </li>
               <li class=3D"listitem">
                 <p><code class=3D"literal">-Q</code> (or
@@ -1542,18 +1636,18 @@
                 <p><code class=3D"literal">-R</code> <em class=3D"paramete=
r"><code>n</code></em> (or
 	      <code class=3D"literal">--heap-reserve</code>). Reserves
 	      <em class=3D"parameter"><code>n</code></em> bytes for heap expansio=
n.  The
-	      default is <code class=3D"literal"> 549755813888</code>.  (see <a c=
lass=3D"xref" href=3D"#Heap-space-allocation" title=3D"15.1.=C3=82=C2=A0Hea=
p space allocation">Section=C3=82=C2=A015.1, =C3=A2=C2=80=C2=9CHeap space a=
llocation=C3=A2=C2=80=C2=9D</a>)</p>
+	      default is <code class=3D"literal"> 549755813888</code>.  (see <a c=
lass=3D"xref" href=3D"#Heap-space-allocation" title=3D"16.1.=C3=82=C2=A0Hea=
p space allocation">Section=C3=82=C2=A016.1, =C3=A2=C2=80=C2=9CHeap space a=
llocation=C3=A2=C2=80=C2=9D</a>)</p>
               </li>
               <li class=3D"listitem">
                 <p><code class=3D"literal">-S</code> <em class=3D"paramete=
r"><code>n</code></em> (or
 	      <code class=3D"literal">--stack-size</code> <em class=3D"parameter"=
><code>n</code></em>). Sets the size of the
-	      initial control stack to <em class=3D"parameter"><code>n</code></em=
>. (see <a class=3D"xref" href=3D"#Thread-Stack-Sizes" title=3D"6.3.1.=C3=
=82=C2=A0Thread Stack Sizes">Section=C3=82=C2=A06.3.1, =C3=A2=C2=80=C2=9CTh=
read Stack Sizes=C3=A2=C2=80=C2=9D</a>)</p>
+	      initial control stack to <em class=3D"parameter"><code>n</code></em=
>. (see <a class=3D"xref" href=3D"#Thread-Stack-Sizes" title=3D"7.3.1.=C3=
=82=C2=A0Thread Stack Sizes">Section=C3=82=C2=A07.3.1, =C3=A2=C2=80=C2=9CTh=
read Stack Sizes=C3=A2=C2=80=C2=9D</a>)</p>
               </li>
               <li class=3D"listitem">
                 <p><code class=3D"literal">-Z</code> <em class=3D"paramete=
r"><code>n</code></em> (or
 	      <code class=3D"literal">--thread-stack-size</code>
 	      <em class=3D"parameter"><code>n</code></em>). Sets the size of the =
first
-	      thread's stack to <em class=3D"parameter"><code>n</code></em>. (see=
 <a class=3D"xref" href=3D"#Thread-Stack-Sizes" title=3D"6.3.1.=C3=82=C2=A0=
Thread Stack Sizes">Section=C3=82=C2=A06.3.1, =C3=A2=C2=80=C2=9CThread Stac=
k Sizes=C3=A2=C2=80=C2=9D</a>)</p>
+	      thread's stack to <em class=3D"parameter"><code>n</code></em>. (see=
 <a class=3D"xref" href=3D"#Thread-Stack-Sizes" title=3D"7.3.1.=C3=82=C2=A0=
Thread Stack Sizes">Section=C3=82=C2=A07.3.1, =C3=A2=C2=80=C2=9CThread Stac=
k Sizes=C3=A2=C2=80=C2=9D</a>)</p>
               </li>
               <li class=3D"listitem">
                 <p><code class=3D"literal">-b</code> (or <code class=3D"li=
teral">--batch</code>). Execute in "batch mode". End-of-file
@@ -1750,7 +1844,7 @@
           </div>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">The following terms ar=
e used in subsequent sections; it
       may be helpful to refer to these definitions.</p>
-          <p xmlns=3D"http://www.w3.org/1999/xhtml"><a id=3D"id445357" cla=
ss=3D"indexterm"></a><a class=3D"glossterm" href=3D"#fasl-file"><em class=
=3D"glossterm">fasl
+          <p xmlns=3D"http://www.w3.org/1999/xhtml"><a id=3D"id617613" cla=
ss=3D"indexterm"></a><a class=3D"glossterm" href=3D"#fasl-file"><em class=
=3D"glossterm">fasl
         files</em></a> are the object files produced
       by <code class=3D"literal">compile-file</code>.  fasl files store the
       machine code associated with function definitions and the
@@ -1761,7 +1855,7 @@
       types (extensions) to name fasl files on different platforms;
       see
       <a class=3D"xref" href=3D"#Platform-specific-filename-conventions" t=
itle=3D"Table=C3=82=C2=A03.1.=C3=82=C2=A0Platform-specific filename convent=
ions">Table=C3=82=C2=A03.1, =C3=A2=C2=80=C2=9CPlatform-specific filename co=
nventions=C3=A2=C2=80=C2=9D</a> </p>
-          <p xmlns=3D"http://www.w3.org/1999/xhtml">The <a id=3D"id454540"=
 class=3D"indexterm"></a> <a class=3D"glossterm" href=3D"#lisp_kernel"><em =
class=3D"glossterm">Lisp
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">The <a id=3D"id617682"=
 class=3D"indexterm"></a> <a class=3D"glossterm" href=3D"#lisp_kernel"><em =
class=3D"glossterm">Lisp
         kernel</em></a> is a C program with a fair amount of
       platform-specific assembly language code. Its basic job is to
       map a lisp heap image into memory, transfer control to some
@@ -1771,7 +1865,7 @@
       code. Clozure CL uses different filenames to name the lisp kernel
       files on different platforms; see
       <a class=3D"xref" href=3D"#Platform-specific-filename-conventions" t=
itle=3D"Table=C3=82=C2=A03.1.=C3=82=C2=A0Platform-specific filename convent=
ions">Table=C3=82=C2=A03.1, =C3=A2=C2=80=C2=9CPlatform-specific filename co=
nventions=C3=A2=C2=80=C2=9D</a>.</p>
-          <p xmlns=3D"http://www.w3.org/1999/xhtml">A <a id=3D"id487863" c=
lass=3D"indexterm"></a> <a class=3D"glossterm" href=3D"#lisp_image"><em cla=
ss=3D"glossterm">heap
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">A <a id=3D"id632967" c=
lass=3D"indexterm"></a> <a class=3D"glossterm" href=3D"#lisp_image"><em cla=
ss=3D"glossterm">heap
         image</em></a> is a file that can be quickly mapped into a
       process's address space. Conceptually, it's not too different
       from an executable file or shared library in the OS's native
@@ -1782,7 +1876,7 @@
       comprise Clozure CL. Clozure CL uses different filenames to name the
       standard full heap image files on different platforms; see
       <a class=3D"xref" href=3D"#Platform-specific-filename-conventions" t=
itle=3D"Table=C3=82=C2=A03.1.=C3=82=C2=A0Platform-specific filename convent=
ions">Table=C3=82=C2=A03.1, =C3=A2=C2=80=C2=9CPlatform-specific filename co=
nventions=C3=A2=C2=80=C2=9D</a>.</p>
-          <p xmlns=3D"http://www.w3.org/1999/xhtml">A <a id=3D"id489213" c=
lass=3D"indexterm"></a> bootstrapping image is a minimal
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">A <a id=3D"id615294" c=
lass=3D"indexterm"></a> bootstrapping image is a minimal
       heap image used in the process of building Clozure CL itself.  The
       bootstrapping image contains just enough code to load the rest
       of Clozure CL from fasl files.  It may help to think of the
@@ -1794,7 +1888,7 @@
           <p xmlns=3D"http://www.w3.org/1999/xhtml">Each supported platfor=
m (and possibly a few
       as-yet-unsupported ones) has a uniquely named subdirectory of
       <code class=3D"literal">ccl/lisp-kernel/</code>; each such
-      <a id=3D"id461162" class=3D"indexterm"></a>
+      <a id=3D"id635477" class=3D"indexterm"></a>
       contains a Makefile and may contain some auxiliary files (linker
       scripts, etc.) that are used to build the lisp kernel on a
       particular platform.The platform-specific name of the kernel
@@ -2579,7 +2673,12 @@
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#code-coverage-interpreting-code-coloring">=
4.13.4. Interpreting Code Coloring</a>
+                    <a href=3D"#code-coverage-functions-and-variables">4.1=
3.4. Functions and Variables</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#code-coverage-interpreting-code-coloring">=
4.13.5. Interpreting Code Coloring</a>
                   </span>
                 </dt>
               </dl>
@@ -2623,7 +2722,7 @@
       over tracing actions.
     </p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id477453" class=3D"indexterm"></a>
+      <a id=3D"id626964" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"trace=
"></a>TRACE</em> {<em class=3D"replaceable"><code>keyword</code></em>
         <em class=3D"replaceable"><code>global-value</code></em>}* {<em cl=
ass=3D"replaceable"><code>spec</code></em> |
         (<em class=3D"replaceable"><code>spec</code></em> {<em class=3D"re=
placeable"><code>keyword</code></em>
@@ -3067,17 +3166,17 @@
             </dl>
           </div>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id490618" class=3D"indexterm"></a>
+      <a id=3D"id645738" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"trace=
-level"></a>CCL:*TRACE-LEVEL*</em>    [Variable]</strong></span>
     </p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">Variable bound to the =
current nesting level during execution of before and after trace actions.  =
The default printing actions use it to determine the amount of indentation.=
</p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id490644" class=3D"indexterm"></a>
+      <a id=3D"id645765" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"trace=
-max-indent"></a>CCL:*TRACE-MAX-INDENT*</em>    [Variable]</strong></span>
     </p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">The default before and=
 after print actions will not indent by more than the value of <em class=3D=
"varname">ccl:*trace-max-indent*</em> regardless of the current trace level=
.</p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id490673" class=3D"indexterm"></a>
+      <a id=3D"id645794" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"trace=
-function"></a>CCL:TRACE-FUNCTION</em> <em class=3D"replaceable"><code>spec=
</code></em> <em class=3D"varname">&key</em> {<em class=3D"replaceable"=
><code>keyword</code></em> <em class=3D"replaceable"><code>value</code></em=
>}*    [Function]</strong></span>
     </p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
@@ -3085,7 +3184,7 @@
       <em class=3D"replaceable"><code>keyword</code></em>s are as for TRAC=
E, except that all arguments are evaluated.
     </p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id490722" class=3D"indexterm"></a>
+      <a id=3D"id645842" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"trace=
-print-level"></a>CCL:*TRACE-PRINT-LEVEL*</em>   [Variable]</strong></span>
     </p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">The default print acti=
ons bind <em class=3D"varname">CL:*PRINT-LEVEL*</em> to this value while
@@ -3093,7 +3192,7 @@
       It does not apply to printing of <em class=3D"varname">:print-before=
/:print-after</em> forms or any
       explicit printing done by user code.</p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id490757" class=3D"indexterm"></a>
+      <a id=3D"id645877" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"trace=
-print-length"></a>CCL:*TRACE-PRINT-LENGTH*</em>    [Variable]</strong></sp=
an>
     </p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">The default print acti=
ons bind <em class=3D"varname">CL:*PRINT-LENGTH*</em> to this value while
@@ -3101,7 +3200,7 @@
       It does not apply to printing of <em class=3D"varname">:print-before=
/:print-after</em> forms or any
       explicit printing done by user code.</p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id490791" class=3D"indexterm"></a>
+      <a id=3D"id645912" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"trace=
-bar-frequency"></a>CCL:*TRACE-BAR-FREQUENCY*</em>    [Variable]</strong></=
span>
     </p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">By default, this is ni=
l. If non-nil it should be a integer,
@@ -3150,7 +3249,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id490954">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id646075">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">spec</span></i>---
 	      A specification of the function on which to put the
@@ -3185,7 +3284,7 @@
 	    </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id491060">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id646182">=
</a>
                 <div class=3D"header">Examples:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	The function <code class=3D"literal">foo</code>, already defined, does
@@ -3230,7 +3329,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id491159">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id646281">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	The unadvise macro removes the piece or pieces of advice
@@ -3245,7 +3344,7 @@
       </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id491226">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id646348">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	The arguments have the same meaning as in
@@ -3269,7 +3368,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id491304">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id646426">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	The advisedp macro returns a list of existing pieces of advice
@@ -3281,7 +3380,7 @@
       </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id491352">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id646474">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	The arguments have the same meaning as in
@@ -3441,7 +3540,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id491886=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id647008=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">The value of t=
his variable is used when :EXTERNAL-FORMAT is
 	        unspecified or specified as :DEFAULT. It can
@@ -3467,7 +3566,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id491948=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id647070=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">The value of t=
his variable is used when an external-format
                 doesn't specify a line-termination convention (or specifies
@@ -3499,7 +3598,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id492030=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id647152=
"></a>
                   <div class=3D"header">Arguments and Values:</div>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">domain</span></i>---This is used to indicate where the external
 	      format is to be used.  Its value can be almost
@@ -3533,7 +3632,7 @@
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">external-format</span></i>---An external-format object as describ=
ed above.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id507273=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id662900=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">Despite the fu=
nction's name, it doesn't necessarily create a
 	new, unique EXTERNAL-FORMAT object: two calls to
@@ -3706,7 +3805,7 @@
               <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
                 <div>
                   <div>
-                    <h4 class=3D"title"><a id=3D"id507607"></a>4.5.4.1.=C3=
=82=C2=A0Encoding Problems</h4>
+                    <h4 class=3D"title"><a id=3D"id663234"></a>4.5.4.1.=C3=
=82=C2=A0Encoding Problems</h4>
                   </div>
                 </div>
               </div>
@@ -3722,7 +3821,7 @@
               <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
                 <div>
                   <div>
-                    <h4 class=3D"title"><a id=3D"id507620"></a>4.5.4.2.=C3=
=82=C2=A0Byte Order Marks</h4>
+                    <h4 class=3D"title"><a id=3D"id663246"></a>4.5.4.2.=C3=
=82=C2=A0Byte Order Marks</h4>
                   </div>
                 </div>
               </div>
@@ -3750,7 +3849,7 @@
               <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
                 <div>
                   <div>
-                    <h4 class=3D"title"><a id=3D"id507654"></a>4.5.4.3.=C3=
=82=C2=A0<span class=3D"function"><strong>DESCRIBE-CHARACTER-ENCODINGS</str=
ong></span></h4>
+                    <h4 class=3D"title"><a id=3D"id663281"></a>4.5.4.3.=C3=
=82=C2=A0<span class=3D"function"><strong>DESCRIBE-CHARACTER-ENCODINGS</str=
ong></span></h4>
                   </div>
                 </div>
               </div>
@@ -3772,7 +3871,7 @@
               <p>
                 <div>
                   <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id5077=
16"></a>
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6633=
42"></a>
                     <div class=3D"header">Description:</div>
                     <p xmlns=3D"http://www.w3.org/1999/xhtml">Writes descr=
iptions of all defined character encodings
 	  to <em class=3D"varname">*terminal-io*</em>.  These descriptions
@@ -3781,7 +3880,7 @@
 	  intended use.</p>
                   </div>
                   <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id5077=
31"></a>
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6633=
57"></a>
                     <div class=3D"header">See Also:</div>
                     <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"=
simplelist"><a class=3D"xref" href=3D"#Character-Encodings" title=3D"4.5.4.=
=C3=82=C2=A0Character Encodings">Section=C3=82=C2=A04.5.4, =C3=A2=C2=80=C2=
=9CCharacter Encodings=C3=A2=C2=80=C2=9D</a>, <a class=3D"xref" href=3D"#Ex=
ternal-Formats" title=3D"4.5.2.=C3=82=C2=A0External Formats">Section=C3=82=
=C2=A04.5.2, =C3=A2=C2=80=C2=9CExternal Formats=C3=A2=C2=80=C2=9D</a>, <a c=
lass=3D"xref" href=3D"#Supported-Character-Encodings" title=3D"4.5.4.4.=C3=
=82=C2=A0Supported Character Encodings">Section=C3=82=C2=A04.5.4.4, =C3=A2=
=C2=80=C2=9CSupported Character Encodings=C3=A2=C2=80=C2=9D</a></span>
                   </div>
@@ -4212,7 +4311,7 @@
               <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
                 <div>
                   <div>
-                    <h4 class=3D"title"><a id=3D"id508410"></a>4.5.4.5.=C3=
=82=C2=A0Encoding and Decoding Strings</h4>
+                    <h4 class=3D"title"><a id=3D"id664036"></a>4.5.4.5.=C3=
=82=C2=A0Encoding and Decoding Strings</h4>
                   </div>
                 </div>
               </div>
@@ -4237,7 +4336,7 @@
               <p>
                 <div>
                   <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id5084=
85"></a>
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6641=
12"></a>
                     <div class=3D"header">Description:</div>
                     <p xmlns=3D"http://www.w3.org/1999/xhtml">
     Returns the number of characters that would be produced by
@@ -4268,7 +4367,7 @@
               <p>
                 <div>
                   <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id5085=
80"></a>
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6642=
07"></a>
                     <div class=3D"header">Description:</div>
                     <p xmlns=3D"http://www.w3.org/1999/xhtml">
     Decodes the octets in <em class=3D"varname">vector</em> (or the subseq=
uence
@@ -4317,7 +4416,7 @@
               <p>
                 <div>
                   <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id5087=
14"></a>
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6643=
41"></a>
                     <div class=3D"header">Description:</div>
                     <p xmlns=3D"http://www.w3.org/1999/xhtml">
     Encodes <em class=3D"varname">string</em> (or the substring delimited =
by
@@ -4370,7 +4469,7 @@
               <p>
                 <div>
                   <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id5088=
45"></a>
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6644=
71"></a>
                     <div class=3D"header">Description:</div>
                     <p xmlns=3D"http://www.w3.org/1999/xhtml">
     Returns the number of octets required to encode
@@ -4420,7 +4519,7 @@
               </div>
             </div>
             <p xmlns=3D"http://www.w3.org/1999/xhtml">Clozure CL sets up l=
ogical pathname translations for logical hosts:  <code class=3D"literal">cc=
l</code> and <code class=3D"literal">home</code></p>
-            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id508933" clas=
s=3D"indexterm"></a>
+            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id664560" clas=
s=3D"indexterm"></a>
             <p xmlns=3D"http://www.w3.org/1999/xhtml">The <code class=3D"l=
iteral">CCL</code> logical host should point to the
         <code class=3D"literal">ccl</code> directory.  It is used for a va=
riety of
         purposes by Clozure CL including: locating Clozure CL source code,
@@ -4479,7 +4578,7 @@
               <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
                 <div>
                   <div>
-                    <h4 class=3D"title"><a id=3D"id509036"></a>4.6.3.1.=C3=
=82=C2=A0Working with native namestrings</h4>
+                    <h4 class=3D"title"><a id=3D"id664662"></a>4.6.3.1.=C3=
=82=C2=A0Working with native namestrings</h4>
                   </div>
                 </div>
               </div>
@@ -4498,7 +4597,7 @@
               <p>
                 <div>
                   <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id5090=
82"></a>
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6647=
09"></a>
                     <div class=3D"header">Description:</div>
                     <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	  This function returns a namestring that represents a pathname
@@ -4529,7 +4628,7 @@
               <p>
                 <div>
                   <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id5091=
56"></a>
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6647=
83"></a>
                     <div class=3D"header">Description:</div>
                     <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	  Executes <em class=3D"varname">forms</em> in an environemt in which each
@@ -4652,7 +4751,7 @@
       on 32-but platforms; and <em class=3D"varname">(EXPT 2 56)</em> on 6=
4-bit
       platforms.</p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id509330" class=3D"indexterm"></a>
+      <a id=3D"id664957" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"map-f=
ile-to-ivector"></a>CCL:MAP-FILE-TO-IVECTOR</em>
         <em class=3D"parameter"><code>pathname</code></em>
         <em class=3D"parameter"><code>element-type</code></em>
@@ -4712,7 +4811,7 @@
       returned by <em class=3D"varname">map-file-to-ivector</em>, Clozure =
CL signals
       a memory error.</p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id509463" class=3D"indexterm"></a>
+      <a id=3D"id665090" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"unmap=
-ivector"></a>CCL:UNMAP-IVECTOR</em>
         <em class=3D"parameter"><code>displaced-array</code></em>
         [Function]</strong></span>
@@ -4724,7 +4823,7 @@
       closes the mapped file, and changes the displaced-array so that its
       target is an empty vector (of length zero).</p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id509499" class=3D"indexterm"></a>
+      <a id=3D"id665125" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"map-f=
ile-to-octet-vector"></a>CCL:MAP-FILE-TO-OCTET-VECTOR</em>
         <em class=3D"parameter"><code>pathname</code></em>
         [Function]</strong></span>
@@ -4734,7 +4833,7 @@
       for the common case of memory-mapping a file as a vector of
       bytes.</p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id509531" class=3D"indexterm"></a>
+      <a id=3D"id665157" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"unmap=
-octet-vector"></a>CCL:UNMAP-OCTET-VECTOR</em>
         <em class=3D"parameter"><code>displaced-array</code></em>
         [Function]</strong></span>
@@ -4773,7 +4872,7 @@
       access to a special variable that has not been declared
       static.</p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id509605" class=3D"indexterm"></a>
+      <a id=3D"id665232" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"defst=
atic"></a>DEFSTATIC</em>
         <em class=3D"parameter"><code>var</code></em>
         <em class=3D"parameter"><code>value</code></em>
@@ -4827,7 +4926,7 @@
               </div>
             </div>
           </div>
-          <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id509717" class=
=3D"indexterm"></a>
+          <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id665344" class=
=3D"indexterm"></a>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">Clozure CL provides the
       function <code class=3D"literal">CCL:SAVE-APPLICATION</code>, which =
creates a file
       containing an archived Lisp memory image.</p>
@@ -4907,7 +5006,7 @@
       a <code class=3D"literal">MACPTR</code> object that points to the ad=
dress 0 is not
       converted, because address 0 can always be relied upon to refer to
       the same thing.</p>
-          <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id509939" class=
=3D"indexterm"></a>
+          <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id665565" class=
=3D"indexterm"></a>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">As of Clozure CL 1.2, =
the constant <code class=3D"literal">CCL:+NULL-PTR+</code>
       refers to a <code class=3D"literal">MACPTR</code> object that points=
 to address 0.</p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">On all supported platf=
orms, you can
@@ -4918,7 +5017,7 @@
       command-line parameter to the <code class=3D"literal">ccl</code>
       or <code class=3D"literal">ccl64</code> script.</p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id509986" class=3D"indexterm"></a>
+      <a id=3D"id665613" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"save-=
application"></a>SAVE-APPLICATION</em>
         <em class=3D"parameter"><code>filename</code></em>
         <em class=3D"varname">&key</em>
@@ -5119,7 +5218,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id510389">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id666016">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">out-file</span></i>---
 	      Name of the file in which to store the concatenation.
@@ -5133,7 +5232,7 @@
 	    </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id510449">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id666075">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	Creates a fasl file which, when loaded, will have the same
@@ -5193,7 +5292,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id510540">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id666166">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">mode</span></i>---
 	      One of the keywords :rounding-mode, :overflow,
@@ -5201,7 +5300,7 @@
 	    </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id510563">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id666190">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	If <em class=3D"varname">mode</em> is supplied, returns the value of
@@ -5240,7 +5339,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id510658">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id666285">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">rounding-mode</span></i>---
 	      If supplied, must be one of :nearest, :zero, :positive, or
@@ -5249,7 +5348,7 @@
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">overflow, underflow, division-by-zero, invalid, inexact</span></i=
>---NIL to mask the exception, T to signal it.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id510695">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id666321">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	Sets the current thread's exception-enable and rounding-mode
@@ -5298,14 +5397,14 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id510770=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id666396=
"></a>
                   <div class=3D"header">Arguments and Values:</div>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">object</span></i>---
 	      Any memory-allocated lisp object.
 	    </p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id510792=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id666418=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	The WATCH function arranges for the specified object to be
@@ -5472,7 +5571,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id510966=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id666593=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
     The UNWATCH function ensures that the specified object is in
@@ -5506,7 +5605,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511015=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id666641=
"></a>
                   <div class=3D"header">Discussion:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       This condition is signaled when a watched object is written
@@ -5524,7 +5623,7 @@
 	  </p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511068=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id666695=
"></a>
                   <div class=3D"header">Restarts:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       A few restarts are provided: one will skip over the faulting
@@ -5592,7 +5691,7 @@
               <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
                 <div>
                   <div>
-                    <h4 class=3D"title"><a id=3D"id511126"></a>4.12.5.1.=
=C3=82=C2=A0Fancy arrays</h4>
+                    <h4 class=3D"title"><a id=3D"id666752"></a>4.12.5.1.=
=C3=82=C2=A0Fancy arrays</h4>
                   </div>
                 </div>
               </div>
@@ -5619,7 +5718,7 @@
               <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
                 <div>
                   <div>
-                    <h4 class=3D"title"><a id=3D"id511145"></a>4.12.5.2.=
=C3=82=C2=A0Hash tables</h4>
+                    <h4 class=3D"title"><a id=3D"id666771"></a>4.12.5.2.=
=C3=82=C2=A0Hash tables</h4>
                   </div>
                 </div>
               </div>
@@ -5667,7 +5766,7 @@
               <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
                 <div>
                   <div>
-                    <h4 class=3D"title"><a id=3D"id511175"></a>4.12.5.3.=
=C3=82=C2=A0Lists</h4>
+                    <h4 class=3D"title"><a id=3D"id666802"></a>4.12.5.3.=
=C3=82=C2=A0Lists</h4>
                   </div>
                 </div>
               </div>
@@ -5773,8 +5872,7 @@
             <pre xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"programli=
sting">
 (progn
   (do-this)
-  (setq that ...) ...))
-  </pre>
+  (setq that ...) ...))</pre>
             <p xmlns=3D"http://www.w3.org/1999/xhtml">
   do:
   </p>
@@ -5782,9 +5880,9 @@
 (defun init-this-and-that ()
   (do-this)
   (setq that ...)  ...)
-(init-this-and-that)
-  </pre>
+(init-this-and-that)</pre>
             <p xmlns=3D"http://www.w3.org/1999/xhtml">
+
 Then you can see the coverage information in the definition of
 <code class=3D"literal">init-this-and-that</code>.
 </p>
@@ -5806,8 +5904,7 @@
   </p>
             <pre xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"programli=
sting">
 (setq ccl:*compile-code-coverage* t) =

-(recompile-all-your-files) =

-  </pre>
+(recompile-all-your-files)</pre>
             <p xmlns=3D"http://www.w3.org/1999/xhtml">
 </p>
             <p xmlns=3D"http://www.w3.org/1999/xhtml">
@@ -5815,10 +5912,36 @@
   the fasl files will be many times bigger.
 </p>
             <p xmlns=3D"http://www.w3.org/1999/xhtml">
-  When you execute function loaded from instrumented fasl files, they
-  will record coverage information every time they are executed. The
-  system keeps track of which instrumented files have been loaded.
+  When you execute functions loaded from instrumented fasl files, they
+  will record coverage information every time they are executed. =

+  You can examine that information by calling <code class=3D"literal">ccl:=
report-coverage</code>
+  or <code class=3D"literal">ccl:coverage-statistics</code>.
 </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+   While recording coverage, you can collect incremental coverage deltas b=
etween any two points
+   in time.  You might do this while running a test suite, to record the c=
overage for
+   each test, for example:
+  </p>
+            <pre xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"programli=
sting">
+(ccl:reset-incremental-coverage)
+(loop with coverage =3D (make-hash-table)
+      for test in (tests-to-run)
+      do (run-test test)
+      do (setf (gethash test coverage) (ccl:get-incremental-coverage))
+      finally (return coverage))</pre>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">creates a hash table=
 mapping a test to a representation of all coverage recorded while running =
the
+   test.  This hash table can then be passed to <code class=3D"literal">cc=
l:incremental-coverage-svn-matches</code>
+   or <code class=3D"literal">ccl:incremental-coverage-source-matches</cod=
e>.
+</p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"code-coverage-functions-and=
-variables"></a>4.13.4.=C3=82=C2=A0Functions and Variables</h3>
+                </div>
+              </div>
+            </div>
             <p xmlns=3D"http://www.w3.org/1999/xhtml">
   The following functions can be used to manage the coverage data:
 </p>
@@ -5836,7 +5959,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511363=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id667031=
"></a>
                   <div class=3D"header">Arguments and Values:</div>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">output-file</span></i>---
           Pathname for the output index file.
@@ -5860,7 +5983,7 @@
 	</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511434=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id667102=
"></a>
                   <div class=3D"header">Example:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       If you've loaded <code class=3D"filename">foo.lx64fsl</code> and
@@ -5894,7 +6017,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511513=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id667181=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       Resets all coverage data back to the "Not Executed" state
@@ -5916,12 +6039,12 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511552=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id667220=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       Gets rid of the information about which instrumented files have
-      been loaded, so ccl:report-coverage will not report any files,
-      and ccl:save-coverage-in-file will not save any info, until more
+      been loaded, so <code class=3D"literal">ccl:report-coverage</code> w=
ill not report any files,
+      and <code class=3D"literal">ccl:save-coverage-in-file</code> will no=
t save any info, until more
       instrumented files are loaded.
     </p>
                 </div>
@@ -5942,13 +6065,13 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511604=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id667282=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       Saves all coverage info in a file, so you can restore the
       coverage state later. This allows you to combine multiple runs
       or continue in a later session. Equivalent to
-      (ccl:write-coverage-to-file (ccl:save-coverage) pathname).
+      <code class=3D"literal">(ccl:write-coverage-to-file (ccl:get-coverag=
e) pathname)</code>.
     </p>
                 </div>
               </div>
@@ -5968,7 +6091,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511656=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id667339=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       Restores the coverage data previously saved with
@@ -5976,21 +6099,21 @@
       that were loaded both at save and restore time. I.e. coverage
       info is only restored for files that have been loaded in this
       session. For example if in a previous session you had loaded
-      "foo.lx86fsl" and then saved the coverage info, in this session
-      you must load the same "foo.lx86fsl" before calling
-      restore-coverage-from-file in order to retrieve the stored
-      coverage info for "foo".  Equivalent to (ccl:restore-coverage
-      (ccl:read-coverage-from-file pathname)).
+      <code class=3D"filename">"foo.lx86fsl"</code> and then saved the cov=
erage info, in this session
+      you must load the same <code class=3D"filename">"foo.lx86fsl"</code>=
 before calling
+      <code class=3D"literal">restore-coverage-from-file</code> in order t=
o retrieve the stored
+      coverage info for "foo".  Equivalent to <code class=3D"literal">(ccl=
:restore-coverage
+      (ccl:read-coverage-from-file pathname))</code>.
     </p>
                 </div>
               </div>
             </p>
             <p>
               <div class=3D"refentrytitle">
-                <a id=3D"f_save-coverage"></a>
+                <a id=3D"f_get-coverage"></a>
                 <strong>[Function]</strong>
                 <br></br>
-                <code>SAVE-COVERAGE</code>
+                <code>GET-COVERAGE</code>
               </div>
               <div class=3D"refentrytitle">
       Returns a snapshot of the current coverage data.
@@ -5999,14 +6122,14 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511699=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id667403=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       Returns a snapshot of the current coverage data. A snapshot is a
       copy of the current coverage state. It can be saved in a file
-      with ccl:write-coverage-to-file, reinstated back as the current
-      state with ccl:restore-coverage, or combined with other
-      snapshots with ccl:combine-coverage.
+      with <code class=3D"literal">ccl:write-coverage-to-file</code>, rein=
stated back as the current
+      state with <code class=3D"literal">ccl:restore-coverage</code>, or c=
ombined with other
+      snapshots with <code class=3D"literal">ccl:combine-coverage</code>.
     </p>
                 </div>
               </div>
@@ -6026,7 +6149,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511752=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id667470=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       Reinstalls a coverage snapshot as the current coverage state.
@@ -6049,7 +6172,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511803=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id667521=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       Takes a list of coverage snapshots and returns a new coverage snapsh=
ot
@@ -6073,12 +6196,12 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511854=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id667571=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       Saves the coverage snapshot in a file. The snapshot can be
-      loaded back with ccl:read-coverage-from-file or loaded and
-      restored with ccl:restore-coverage-from-file. Note that the file
+      loaded back with <code class=3D"literal">ccl:read-coverage-from-file=
</code> or loaded and
+      restored with <code class=3D"literal">ccl:restore-coverage-from-file=
</code>. Note that the file
       created is actually a lisp source file and can be compiled for
       faster loading.
     </p>
@@ -6100,13 +6223,13 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511906=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id667634=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       Returns the snapshot saved in pathname. Doesn't affect the
       current coverage state. pathname can be the file previously
-      created with ccl:write-coverage-to-file or
-      ccl:save-coverage-in-file, or it can be the name of the fasl
+      created with <code class=3D"literal">ccl:write-coverage-to-file</cod=
e> or
+      <code class=3D"literal">ccl:save-coverage-in-file</code>, or it can =
be the name of the fasl
       created from compiling such a file.
     </p>
                 </div>
@@ -6127,13 +6250,13 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id511959=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id667701=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      Returns a sequence ccl:coverage-statistics objects, one for each
+      Returns a sequence of <code class=3D"literal">ccl:coverage-statistic=
s</code> objects, one for each
       source file, containing the same information as that written to
-      the statistics file by ccl:report-coverage. The following
-      accessors are defined for ccl:coverage-statistics objects:
+      the statistics file by <code class=3D"literal">ccl:report-coverage</=
code>. The following
+      accessors are defined for <code class=3D"literal">ccl:coverage-stati=
stics</code> objects:
       </p>
                   <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"var=
iablelist">
                     <dl>
@@ -6281,6 +6404,162 @@
             </p>
             <p>
               <div class=3D"refentrytitle">
+                <a id=3D"f_reset-incremental-coverage"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"function"><strong>reset-incremental-coverage</strong></span>
+    </code>
+              </div>
+              <div class=3D"refentrytitle">
+      Reset incremental coverage.
+    </div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id667952=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+      Marks a starting point for recording incremental coverage.
+      Note that calling
+      this function does not affect regular coverage data (whereas calling
+      <code class=3D"literal">ccl:reset-coverage</code> resets incremental=
 coverage as well).
+    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_get-incremental-coverage"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"function"><strong>get-incremental-coverage</strong></span> <em xmlns=3D=
"http://www.w3.org/1999/xhtml" class=3D"varname">&key</em> (reset t)
+    </code>
+              </div>
+              <div class=3D"refentrytitle">
+      Returns the delta of coverage since the last incremental reset.
+    </div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668012=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+      Returns the delta of coverage since the last reset of incremental co=
verage.
+     If <code class=3D"literal">reset</code> is true (the default), it als=
o resets incremental coverage
+     now, so that the next call to <code class=3D"literal">get-incremental=
-coverage</code> will return
+     the delta from this point.
+     </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+      Incremental coverage deltas are represented differently than the ful=
l coverage snapshots
+      returned by functions such as <code class=3D"literal">ccl:get-covera=
ge</code>.  Incremental
+      coverage uses an abbreviated format
+      and is missing some of the information in a full snapshot, and there=
fore cannot be passed to
+      functions documented to accept a <span style=3D"color: red"><vari=
able>snapshot</variable></span>, only to functions
+      specifically documented to accept incremental coverage deltas.
+     </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_incremental-coverage-source-matches"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"function"><strong>incremental-coverage-source-matches</strong></span> c=
ollection sources
+    </code>
+              </div>
+              <div class=3D"refentrytitle">
+      Find incremental coverage deltas intersecting source regions.
+    </div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668090=
"></a>
+                  <div class=3D"header">Arguments and Values:</div>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">collection</span></i>---
+          A hash table mapping arbitrary keys to incremental coverage delt=
as, or a sequence of
+          incremental coverage deltas.
+         </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">sources</span></i>---
+          A list of pathnames and/or source-notes, the latter representing=
 a range within a file.
+         </p>
+                </div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668127=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+     Given a hash table <code class=3D"literal">collection</code> whose va=
lues are incremental coverage
+     deltas, return a list of all keys corresponding to those deltas that =
intersect any region
+     in <code class=3D"literal">sources</code>.
+     </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+     For example if the deltas represent tests, then the returned value is=
 a list of all tests
+     that cover some part of the source regions.
+     </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+     <code class=3D"literal">collection</code> can also be a sequence of d=
eltas, in which case a subsequence
+      of matching deltas is returned.  In particular you can test whether =
any particular delta
+      intersects the sources by passing it in as a single-element list.
+     </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_incremental-coverage-svn-matches"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"function"><strong>incremental-coverage-svn-matches</strong></span> coll=
ection <em xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"varname">&ke=
y</em> (directory (current-directory)) (revision :base)
+    </code>
+              </div>
+              <div class=3D"refentrytitle">
+      Find incremental coverage deltas matching changes from a particular =
subversion revision.
+    </div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668207=
"></a>
+                  <div class=3D"header">Arguments and Values:</div>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">collection</span></i>---
+          A hash table mapping arbitrary keys to incremental coverage delt=
as, or a sequence of
+          incremental coverage deltas.
+         </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">directory</span></i>---
+          The pathname of a subversion working directory.
+         </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">revision</span></i>---
+          The revision to compare to the working directory, an integer or =
another
+          value whose printed representation is suitable for passing as the
+          <code xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"literal">-=
-revision</code> argument
+          to <code xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"filenam=
e">svn</code>.
+         </p>
+                </div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668268=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+     Given a hash table <code class=3D"literal">collection</code> whose va=
lues are incremental coverage
+     deltas, return a list of all keys corresponding to those deltas that =
intersect any changed
+     source in <code class=3D"literal">directory</code> since revision <co=
de class=3D"literal">revision</code> in subversion.
+     </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+     For example if the deltas represent tests, then the returned value is=
 a list of all tests
+     that might be affected by the changes.
+     </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+     <code class=3D"literal">collection</code> can also be a sequence of d=
eltas, in which case a subsequence
+      of matching deltas is returned.  In particular you can test whether =
any particular delta
+      is affected by the changes by passing it in as a single-element list.
+     </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
                 <a id=3D"v_compile-code-coverage"></a>
                 <strong>[Variable]</strong>
                 <br></br>
@@ -6294,7 +6573,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id512194=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668348=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       This variable controls whether functions are instrumented for
@@ -6319,12 +6598,12 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id512246=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668400=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">
       This macro arranges so that body doesn't record internal details
       of code coverage. It will be considered totally covered if it's
-      entered at all. The Common Lisp macros ASSERT and CHECK-TYPE use
+      entered at all. The Common Lisp macros <code class=3D"literal">ASSER=
T</code> and <code class=3D"literal">CHECK-TYPE</code> use
       this macro.
     </p>
                 </div>
@@ -6335,7 +6614,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"code-coverage-interpreting-=
code-coloring"></a>4.13.4.=C3=82=C2=A0Interpreting Code Coloring</h3>
+                  <h3 class=3D"title"><a id=3D"code-coverage-interpreting-=
code-coloring"></a>4.13.5.=C3=82=C2=A0Interpreting Code Coloring</h3>
                 </div>
               </div>
             </div>
@@ -6362,7 +6641,7 @@
  this approach is that every part of the outer form that is not specifical=
ly inside some executable inner
  form will have the outer form's coverage color. If the syntax of outer fo=
rm involves some non-executable
  forms, or forms that do not have coverage info of their own for whatever =
reason, then they will just
- inherit the color of the outer form, because it doesn't get replaced with=
 a color of its own.
+ inherit the color of the outer form, because they don't get repainted wit=
h a color of their own.
 </p>
             <p xmlns=3D"http://www.w3.org/1999/xhtml">
  One case in which this approach can be confusing is in the case of symbol=
s.  As noted in the Limitations
@@ -6395,7 +6674,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id512348">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668512">=
</a>
                 <div class=3D"header">Summary:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
       Cleanly exit from lisp.  If the exit argument is a value of type
@@ -6430,7 +6709,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id512410">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668574">=
</a>
                 <div class=3D"header">Summary:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
       Wait for the signal with signal number s to be received, or until
@@ -6461,7 +6740,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id512467">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668631">=
</a>
                 <div class=3D"header">Summary:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
       In Clozure CL, the cleanup forms are always executed as if they were
@@ -6691,7 +6970,7 @@
               <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
                 <div>
                   <div>
-                    <h4 class=3D"title"><a id=3D"id464004"></a>5.4.2.1.=C3=
=82=C2=A0Checking for Updates</h4>
+                    <h4 class=3D"title"><a id=3D"id651919"></a>5.4.2.1.=C3=
=82=C2=A0Checking for Updates</h4>
                   </div>
                 </div>
               </div>
@@ -6823,7 +7102,7 @@
       expression <code class=3D"code">(require :build-application)</code>.=
 Clozure CL loads
       the required subsystems, if necessary.</p>
           <p xmlns=3D"http://www.w3.org/1999/xhtml">
-      <a id=3D"id468313" class=3D"indexterm"></a>
+      <a id=3D"id600388" class=3D"indexterm"></a>
       <span class=3D"command"><strong><em class=3D"varname"><a id=3D"build=
-application"></a>BUILD-APPLICATION</em> <em class=3D"varname">&key</em>
         (<em class=3D"parameter"><code>name</code></em> <em class=3D"repla=
ceable"><code>"MyApplication"</code></em>)
         (<em class=3D"parameter"><code>type-string</code></em> <em class=
=3D"replaceable"><code>"APPL"</code></em>)
@@ -7093,7 +7372,7 @@
         <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
           <div>
             <div>
-              <h2 class=3D"title"><a id=3D"Programming-with-Threads"></a>C=
hapter=C3=82=C2=A06.=C3=82=C2=A0Programming with Threads</h2>
+              <h2 class=3D"title"><a id=3D"HemlockProgramming"></a>Chapter=
=C3=82=C2=A06.=C3=82=C2=A0Hemlock Programming</h2>
             </div>
           </div>
         </div>
@@ -7101,75 +7380,10610 @@
           <dl>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#Threads-overview">6.1. Threads Overview</a>
+                <a href=3D"#HemlockProgrammingIntroduction">6.1. Introduct=
ion</a>
               </span>
             </dt>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#Intentionally--Missing-Functionality">6.2. (In=
tentionally) Missing Functionality</a>
-              </span>
-            </dt>
-            <dt>
-              <span class=3D"sect1">
-                <a href=3D"#Implementation-Decisions-and-Open-Questions">6=
.3. Implementation Decisions and Open Questions</a>
+                <a href=3D"#HemlockProgrammingRepresentationOfText">6.2. R=
epresentation of Text</a>
               </span>
             </dt>
             <dd>
               <dl>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Thread-Stack-Sizes">6.3.1. Thread Stack Si=
zes</a>
+                    <a href=3D"#Lines">6.2.1. Lines</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#id480092">6.3.2.  As of August 2003:</a>
+                    <a href=3D"#Marks">6.2.2. Marks</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#Regions">6.2.3. Regions</a>
                   </span>
                 </dt>
               </dl>
             </dd>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#Porting-Code-from-the-Old-Thread-Model">6.4. P=
orting Code from the Old Thread Model</a>
-              </span>
-            </dt>
-            <dt>
-              <span class=3D"sect1">
-                <a href=3D"#Background-Terminal-Input">6.5. Background Ter=
minal Input</a>
+                <a href=3D"#HemlockProgrammingBuffers">6.3. Buffers</a>
               </span>
             </dt>
             <dd>
               <dl>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#backgrount-ti-overview">6.5.1. Overview</a>
+                    <a href=3D"#CurrentBuffer">6.3.1. The Current Buffer</=
a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#background-terminal-example">6.5.2. An exa=
mple</a>
+                    <a href=3D"#BufferFunctions">6.3.2. Buffer  Functions<=
/a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#A-more-elaborate-example-">6.5.3. A more e=
laborate example.</a>
-                  </span>
-                </dt>
-                <dt>
-                  <span class=3D"sect2">
-                    <a href=3D"#Summary">6.5.4. Summary</a>
+                    <a href=3D"#Modelines">6.3.3. Modelines</a>
                   </span>
                 </dt>
               </dl>
             </dd>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#The-Threads-which-CCL-Uses-for-Its-Own-Purpose=
s">6.6. The Threads which Clozure CL Uses for Its Own Purposes</a>
+                <a href=3D"#HemlockProgrammingAlteringAndSearchingText">6.=
4. Altering and Searching Text</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#AlteringText">6.4.1. Altering Text</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#TextPredicates">6.4.2. Text Predicates</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#KillRing">6.4.3. Kill Ring</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#ActiveRegions">6.4.4. Active Regions</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#SearchingAndReplacing">6.4.5. Searching an=
d Replacing</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#HemlockProgrammingTheCurrentEnvironment">6.5. =
The Current Environment</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#DifferentScopes">6.5.1. Different Scopes</=
a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#Shadowing">6.5.2. Shadowing</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#HemlockProgrammingHemlockVariables">6.6. Hemlo=
ck Variables</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#VariableNames">6.6.1. Variable Names</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#VariableFunctions">6.6.2. Variable Functio=
ns</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#Hooks">6.6.3. Hooks</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#HemlockProgrammingCommands">6.7. Commands</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#HemlockProgrammingCommandsIntroduction">6.=
7.1. Introduction</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#CommandInterpreter">6.7.2. The Command Int=
erpreter</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#CommandTypes">6.7.3. Command Types</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#CommandArguments">6.7.4. Command Arguments=
</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#HemlockProgrammingModes">6.8. Modes</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#ModeHooks">6.8.1. Mode Hooks</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#MajorAndMinorModes">6.8.2. Major and Minor=
 Modes</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#ModeFunctions">6.8.3. Mode Functions</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#HemlockProgrammingCharacterAttributes">6.9. Ch=
aracter Attributes</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#HemlockProgrammingCharacterAttributesIntro=
duction">6.9.1. Introduction</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#CharacterAttributeNames">6.9.2. Character =
Attribute Names</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#CharacterAttributeFunctions">6.9.3. Charac=
ter Attribute Functions</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#CharacterAttributeHooks">6.9.4. Character =
Attribute Hooks</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#SystemDefinedCharacterAttributes">6.9.5. S=
ystem Defined Character Attributes</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#HemlockProgrammingControllingTheDisplay">6.10.=
 Controlling the Display</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#Views">6.10.1. Views</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#CurrentView">6.10.2. The Current View</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#ViewFunctions">6.10.3. View Functions</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#CursorPositions">6.10.4. Cursor Positions<=
/a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#Redisplay">6.10.5. Redisplay</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#HemlockProgrammingLogicalKeyEvents">6.11. Logi=
cal Key-Events</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#HemlockProgrammingLogicalKeyEventsIntroduc=
tion">6.11.1. Introduction</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#LogicalKeyEventFunctions">6.11.2. Logical =
Key-Event Functions</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#SystemDefinedLogicalKeyEvents">6.11.3. Sys=
tem Defined Logical Key-Events</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#EchoArea">6.12. The Echo Area</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#EchoAreaFunctions">6.12.1. Echo Area Funct=
ions</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#PromptingFunctions">6.12.2. Prompting Func=
tions</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#ControlOfParsingBehavior">6.12.3. Control =
of Parsing Behavior</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#DefiningNewPromptingFunctions">6.12.4. Def=
ining New Prompting Functions</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#SomeEchoAreaCommands">6.12.5. Some Echo Ar=
ea Commands</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#Files">6.13. Files</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#FileOptionsAndTypeHooks">6.13.1. File Opti=
ons and Type Hooks</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#PathnamesAndBuffers">6.13.2. Pathnames and=
 Buffers</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#FileGroups">6.13.3. File Groups</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#FileReadingAndWriting">6.13.4. File Readin=
g and Writing</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#HemlockProgrammingHemlockSLispEnvironment">6.1=
4. Hemlock's Lisp Environment</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#EnteringAndLeavingTheEditor">6.14.1. Enter=
ing and Leaving the Editor</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#KeyboardInput">6.14.2. Keyboard Input</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#HemlockStreams">6.14.3. Hemlock Streams</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#InterfaceToTheErrorSystem">6.14.4. Interfa=
ce to the Error System</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#DefinitionEditing">6.14.5. Definition Edit=
ing</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#EventScheduling">6.14.6. Event Scheduling<=
/a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#Miscellaneous">6.14.7. Miscellaneous</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#HemlockProgrammingHighLevelTextPrimitives">6.1=
5. High-Level Text Primitives</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#IndentingText">6.15.1. Indenting Text</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#LispTextBuffers">6.15.2. Lisp Text Buffers=
</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#EnglishTextBuffers">6.15.3. English Text B=
uffers</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#LogicalPages">6.15.4. Logical Pages</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#Filling">6.15.5. Filling</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#HemlockProgrammingUtilities">6.16. Utilities</=
a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#StringTableFunctions">6.16.1. String-table=
 Functions</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#RingFunctions">6.16.2. Ring Functions</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#UndoingCommands">6.16.3. Undoing commands<=
/a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#HemlockProgrammingMiscellaneous">6.17. Miscell=
aneous</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#KeyEvents">6.17.1. Key-events</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+          </dl>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingIntroduction"></a>6.1.=C3=82=C2=A0Introduction</h2>
+              </div>
+            </div>
+          </div>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Hemlock is the text editor used in Clozure CL.  It was originally based on=
 the <a class=3D"ulink" href=3D"http://www.cons.org/cmucl/hemlock/index.htm=
l" target=3D"_top">CMU Hemlock editor</a>, but has since diverged from it i=
n various ways.  We continue to call the editor part of our IDE <code class=
=3D"code">Hemlock</code> to give credit where credit is due, but we make no=
 attempt at source or API compatibility with the original Hemlock.
+        </p>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Like the code, this documentation is based on the original Hemlock documen=
tation, modified as necessary.
+        </p>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Hemlock follows in the tradition of Emacs-compatible editors, with a rich =
set of extensible commands.  This document describes the API for implementi=
ng new commands.  The basic editor consists of a set of Lisp utility functi=
ons for manipulating buffers and the other data structures of the editor.  =
All user level commands are written in terms of these =

+functions. To find out how to define commands see <a class=3D"ulink" href=
=3D"HemlockProgrammer/Commands" target=3D"_top">Commands</a>.
+        </p>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingRepresentationOfText"></a>6.2.=C3=82=C2=A0Representation of Text=
</h2>
+              </div>
+            </div>
+          </div>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+In Hemlock, text is represented as a sequence of lines.  Newline characters
+are never stored but are implicit between lines.  The
+implicit newline character is treated as the single character <code class=
=3D"code">#\Newline</code> by the
+text primitives.
+        </p>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Text is broken into lines when it is first introduced into Hemlock.  Text =
enters
+Hemlock from the outside world in two ways: reading a file, or pasting text
+from the system clipboard.  Hemlock uses heuristics <span class=3D"bold"><=
strong>(which should be documented here!)</strong></span>
+to decide what newline convention to use to convert the incoming text into=
 its internal
+representation as a sequence of lines.  Similarly it uses heuristics
+<span class=3D"bold"><strong>(which should be documented here!)</strong></=
span> to convert the internal representation into
+a string with embedded newlines in order to write a file or paste a region=
 into
+the clipboard.
+        </p>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"Lines"></a>6.2.1.=C3=82=C2=
=A0Lines</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+A <code class=3D"code">line</code> is an object representing a sequence of=
 characters with no line breaks.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_linep"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        linep line =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id626500=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns t if line is a line object, otherwise nil.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_line-string"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        line-string line =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id626553=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Given a line, this function returns as a simple string the characters
+in the line.  This is setf'able to set the line-string to any string
+that does not contain newline characters.  It is an error to
+destructively modify the result of line-string or to destructively
+modify any string after the line-string of some line has been set to
+that string.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_line-previous"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        line-previous line =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id662541=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_line-next"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        line-next line =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id662593=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Given a line, line-previous returns the previous line or nil if there
+is no previous line.  Similarly, line-next returns the line following
+line or nil.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_line-buffer"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        line-buffer line =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id604470=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the buffer which contains this line. Since a
+line may not be associated with any buffer, in which case line-buffer
+returns nil.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_line-length"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        line-length line =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id604523=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the number of characters in the line. This
+excludes the newline character at the end.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_line-character"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        line-character line index =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id604577=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the character at position index within line. It
+is an error for index to be greater than the length of the line or
+less than zero.  If index is equal to the length of the line, this
+returns a #\newline character.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_line-plist"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        line-plist line =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id660364=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the property-list for line. setf, getf, putf and
+remf can be used to change properties. This is typically used in
+conjunction with line-signature to cache information about the line's
+contents.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_line-signature"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        line-signature line =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id660419=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns an object that serves as a signature for a
+line's contents. It is guaranteed that any modification of text on the
+line will result in the signature changing so that it is not eql to
+any previous value. The signature may change even when the text
+remains unmodified, but this does not happen often.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"Marks"></a>6.2.2.=C3=82=C2=
=A0Marks</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+A <code class=3D"code">mark</code> indicates a specific position within th=
e text represented by a
+line and a character position within that line.  Although a mark is
+sometimes loosely referred to as pointing to some character, it in
+fact points between characters.  If the charpos is zero, the previous
+character is the newline character separating the previous line from
+the mark's line. If the charpos is equal to the number of characters
+in the line, the next character is the newline character separating
+the current line from the next.  If the mark's line has no previous
+line, a mark with charpos of zero has no previous character; if the
+mark's line has no next line, a mark with charpos equal to the length of
+the line has no next character.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This section discusses the very basic operations involving marks, but
+a lot of Hemlock programming is built on altering some text at a mark.
+For more extended uses of marks see <a class=3D"ulink" href=3D"HemlockProg=
rammer/AlteringAndSearchingText" target=3D"_top">Altering And Searching Tex=
t</a>.
+            </p>
+            <div class=3D"sect3" lang=3D"en" xml:lang=3D"en">
+              <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
+                <div>
+                  <div>
+                    <h4 class=3D"title"><a id=3D"MarksKindsOfMarks"></a>6.=
2.2.1.=C3=82=C2=A0Kinds of Marks</h4>
+                  </div>
+                </div>
+              </div>
+              <p xmlns=3D"http://www.w3.org/1999/xhtml">
+A mark may have one of two lifetimes: temporary or permanent. Permanent
+marks remain valid after arbitrary operations on the text; temporary
+marks do not.  Temporary marks are used because less bookkeeping
+overhead is involved in their creation and use.  If a temporary mark
+is used after the text it points to has been modified results will be
+unpredictable. Permanent marks continue to point between the same two
+characters regardless of insertions and deletions made before or after
+them.
+                </p>
+              <p xmlns=3D"http://www.w3.org/1999/xhtml">
+There are two different kinds of permanent marks which differ only in
+their behavior when text is inserted at the position of the mark; text
+is inserted to the left of a left-inserting mark and to the right of
+right-inserting mark.
+                </p>
+            </div>
+            <div class=3D"sect3" lang=3D"en" xml:lang=3D"en">
+              <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
+                <div>
+                  <div>
+                    <h4 class=3D"title"><a id=3D"MarksMarkFunctions"></a>6=
.2.2.2.=C3=82=C2=A0Mark Functions</h4>
+                  </div>
+                </div>
+              </div>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_markp"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            markp mark =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6605=
41"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns t if mark is a mark object, otherwise nil.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_mark-line"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            mark-line mark =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6605=
95"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the line to which mark points.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_mark-charpos"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            mark-charpos mark =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6606=
48"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the character position <span class=3D"emphasis"><em>=
in the line</em></span> of the character
+after mark, i.e. the number of characters before the mark in the mark's li=
ne.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_mark-buffer"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            mark-buffer mark =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6607=
06"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns the buffer containing this mark.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_mark-absolute-position"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            mark-absolute-position mark =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6607=
60"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the character position <span class=3D"emphasis"><em>=
in the buffer</em></span> of the character
+after the mark, i.e. the number of characters before the mark in the mark's
+buffer.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_mark-kind"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            mark-kind mark =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6608=
19"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns one of <code class=3D"code">:right-inserting</code>,=
 <code class=3D"code">:left-inserting</code> or
+                            <code class=3D"code">:temporary</code> dependi=
ng on the mark's kind.  A corresponding setf form
+changes the mark's kind.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_previous-character"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            previous-character mark =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6608=
84"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_next-character"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            next-character mark =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6609=
38"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the character immediately before (after) the
+position of the mark, or nil if there is no previous (next) character.
+These characters may be set with setf when they exist; the setf
+methods for these forms signal errors when there is no previous or
+next character.
+                        </p>
+                  </div>
+                </div>
+              </p>
+            </div>
+            <div class=3D"sect3" lang=3D"en" xml:lang=3D"en">
+              <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
+                <div>
+                  <div>
+                    <h4 class=3D"title"><a id=3D"MarksMakingMarks"></a>6.2=
.2.3.=C3=82=C2=A0Making Marks</h4>
+                  </div>
+                </div>
+              </div>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_mark"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            mark line charpos <em xmlns=3D"http://www.w3.o=
rg/1999/xhtml" class=3D"varname">&optional</em> kind =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6610=
08"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a mark object that points to the charpos'th
+character of the line. Kind is the kind of mark to create, one
+of <code class=3D"code">:temporary</code>, <code class=3D"code">:left-inse=
rting</code>, or <code class=3D"code">:right-inserting</code>. The default =
is
+:temporary.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_copy-mark"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            copy-mark mark <em xmlns=3D"http://www.w3.org/=
1999/xhtml" class=3D"varname">&optional</em> kind =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6610=
77"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a new mark pointing to the same position and of
+the same kind, or of kind kind if it is supplied.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_delete-mark"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            delete-mark mark =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6611=
32"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function deletes mark. Delete any permanent marks when you are
+finished using it.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"m_with-mark"></a>
+                  <strong>[Macro]</strong>
+                  <br></br>
+                  <code>
+                            with-mark ({(mark pos [kind])}*) {form}* =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6611=
87"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This macro binds to each variable mark a mark of kind kind, which
+defaults to <code class=3D"code">:temporary</code>, pointing to the same p=
osition as the
+markpos. On exit from the scope the mark is deleted.  The value of the
+last form is the value returned.
+                        </p>
+                  </div>
+                </div>
+              </p>
+            </div>
+            <div class=3D"sect3" lang=3D"en" xml:lang=3D"en">
+              <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
+                <div>
+                  <div>
+                    <h4 class=3D"title"><a id=3D"MarksMovingMarks"></a>6.2=
.2.4.=C3=82=C2=A0Moving Marks</h4>
+                  </div>
+                </div>
+              </div>
+              <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These functions destructively modify marks to point to new positions.
+Other sections of this document describe mark moving routines specific
+to higher level text forms than characters and lines, such as words,
+sentences, paragraphs, Lisp forms, etc.
+                </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_move-to-position"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            move-to-position mark charpos <em xmlns=3D"htt=
p://www.w3.org/1999/xhtml" class=3D"varname">&optional</em> line =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6612=
66"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function changes the mark to point to the given character
+position on the line line. Line defaults to mark's line.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_move-to-absolute-position"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            move-to-absolute-position mark position =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6613=
22"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function changes the mark to point to the given character
+position in the buffer.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_move-mark"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            move-mark mark new-position =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6613=
76"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function moves mark to the same position as the
+mark new-position and returns it.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_line-start"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            line-start mark <em xmlns=3D"http://www.w3.org=
/1999/xhtml" class=3D"varname">&optional</em> line =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6614=
34"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_line-end"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            line-end mark <em xmlns=3D"http://www.w3.org/1=
999/xhtml" class=3D"varname">&optional</em> line =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6614=
92"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function changes mark to point to the beginning or the end of
+line and returns it. Line defaults to mark's line.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_buffer-start"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            buffer-start mark <em xmlns=3D"http://www.w3.o=
rg/1999/xhtml" class=3D"varname">&optional</em> buffer =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6615=
50"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_buffer-end"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            buffer-end mark <em xmlns=3D"http://www.w3.org=
/1999/xhtml" class=3D"varname">&optional</em> buffer =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6616=
07"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These functions change mark to point to the beginning or end of
+buffer, which defaults to the buffer mark currently points into. If
+buffer is unsupplied, then it is an error for mark to be disassociated
+from any buffer.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_mark-before"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            mark-before mark =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6616=
63"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_mark-after"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            mark-after mark =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6617=
18"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These functions change mark to point one character before or after the
+current position.  If there is no character before/after the current
+position, then they return nil and leave mark unmodified.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_character-offset"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            character-offset mark n =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6617=
73"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function changes mark to point n characters after (n before if n
+is negative) the current position.  If there are less than n
+characters after (before) the mark, then this returns nil and mark is
+unmodified.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_line-offset"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            line-offset mark n <em xmlns=3D"http://www.w3.=
org/1999/xhtml" class=3D"varname">&optional</em> charpos =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6618=
32"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function changes mark to point n lines after (n before if n is
+negative) the current position.  The character position of the
+resulting mark is (min (line-length resulting-line) (mark-charpos
+mark)) if charpos is unspecified, or (min (line-length resulting-line)
+charpos) if it is.  As with character-offset, if there are not n lines
+then nil is returned and mark is not modified.
+                        </p>
+                  </div>
+                </div>
+              </p>
+            </div>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"Regions"></a>6.2.3.=C3=82=
=C2=A0Regions</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+A <code class=3D"code">region</code> is simply a pair of marks: a starting=
 mark and an ending
+mark.  The text in a region consists of the characters following the
+starting mark and preceding the ending mark (keep in mind that a mark
+points between characters on a line, not at them).  By modifying the
+starting or ending mark in a region it is possible to produce regions
+with a start and end which are out of order or even in different
+buffers.  The use of such regions is undefined and may result in
+arbitrarily bad behavior.
+            </p>
+            <div class=3D"sect3" lang=3D"en" xml:lang=3D"en">
+              <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
+                <div>
+                  <div>
+                    <h4 class=3D"title"><a id=3D"RegionsRegionFunctions"><=
/a>6.2.3.1.=C3=82=C2=A0Region Functions</h4>
+                  </div>
+                </div>
+              </div>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_region"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            region start end =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6619=
21"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a region constructed from the marks start and
+end. It is an error for the marks to point to non-contiguous lines or
+for start to come after end.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_regionp"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            regionp region =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6619=
77"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns t if region is a region object, otherwise nil.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_make-empty-region"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            make-empty-region =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6620=
32"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a region with start and end marks pointing to
+the start of one empty line.  The start mark is a <code class=3D"code">:ri=
ght-inserting</code>
+mark, and the end is a <code class=3D"code">:left-inserting</code> mark.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_copy-region"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            copy-region region =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6620=
94"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a region containing a copy of the text in the
+specified region. The resulting region is completely disjoint
+from region with respect to data references --- marks, lines, text, etc.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_region-to-string"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            region-to-string region =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6621=
50"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_string-to-region"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            string-to-region string =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6622=
05"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These functions coerce regions to Lisp strings and vice versa.  Within
+the string, lines are delimited by newline characters.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_line-to-region"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            line-to-region line =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6622=
60"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a region containing all the characters on
+line. The first mark is <code class=3D"code">:right-inserting</code> and t=
he last is
+                            <code class=3D"code">:left-inserting</code>.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_region-start"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            region-start region =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6623=
22"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_region-end"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            region-end region =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6623=
76"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the start or end mark of region.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_region-bounds"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            region-bounds region =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6847=
53"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns as multiple-values the starting and ending marks
+of region.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_set-region-bounds"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            set-region-bounds region start end =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6848=
00"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function sets the start and end of region to start and end. It is
+an error for start to be after or in a different buffer from end.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_count-lines"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            count-lines region =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6848=
48"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the number of lines in the region, first and
+last lines inclusive.  A newline is associated with the line it
+follows, thus a region containing some number of non-newline
+characters followed by one newline is one line, but if a newline were
+added at the beginning, it would be two lines.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_count-characters"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            count-characters region =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6848=
97"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the number of characters in a given region. This
+counts line breaks as one character.
+                        </p>
+                  </div>
+                </div>
+              </p>
+            </div>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingBuffers"></a>6.3.=C3=82=C2=A0Buffers</h2>
+              </div>
+            </div>
+          </div>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+A buffer is an object consisting of:
+            </p>
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"orderedlist=
">
+            <ol class=3D"orderedlist" type=3D"1">
+              <li class=3D"listitem">
+                <p>
+A name.
+                    </p>
+              </li>
+              <li class=3D"listitem">
+                <p>
+A piece of text.
+                    </p>
+              </li>
+              <li class=3D"listitem">
+                <p>
+The insertion point.
+                    </p>
+              </li>
+              <li class=3D"listitem">
+                <p>
+An associated file (optional).
+                    </p>
+              </li>
+              <li class=3D"listitem">
+                <p>
+A write protect flag.
+                    </p>
+              </li>
+              <li class=3D"listitem">
+                <p>
+Some <a class=3D"ulink" href=3D"HemlockProgrammer/HemlockVariables" target=
=3D"_top">variables</a>.
+                    </p>
+              </li>
+              <li class=3D"listitem">
+                <p>
+Some <a class=3D"ulink" href=3D"HemlockProgrammer/Commands" target=3D"_top=
">key bindings</a>.
+                    </p>
+              </li>
+              <li class=3D"listitem">
+                <p>
+A collection of <a class=3D"ulink" href=3D"HemlockProgrammer/Modes" target=
=3D"_top">modes</a>.
+10. A list of modeline fields (optional).
+                    </p>
+              </li>
+            </ol>
+          </div>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">Because of the way Hem=
lock is currently integrated in Cocoa, all modifications
+to buffer contents must take place in the GUI thread.  Hemlock commands al=
ways
+run in the GUI thread, so most of the time you do not need to worry about =
it.
+If you are running code in another thread that needs to modify a buffer, y=
ou
+should perform that action using <code class=3D"code">gui::execute-in-gui<=
/code> or <code class=3D"code">gui::queue-for-gui</code>.
+        </p>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+There are no intrinsic limitations on examining buffers from any thread,
+however, Hemlock currently does no locking, so you risk seeing the buffer
+in an inconsistent state if you look at it outside the GUI thread.
+        </p>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"CurrentBuffer"></a>6.3.1.=
=C3=82=C2=A0The Current Buffer</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Hemlock has the concept of the "current buffer".  The current buffer
+is defined during Hemlock commands as the buffer of the hemlock view
+that received the key events that invoked the command.  Many hemlock
+function operate on the current buffer rather than taking an explicit
+buffer argument.  In effect, the current buffer is an implicit argument
+to many text manipulation functions.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_current-buffer"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        current-buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685061=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns the current buffer, which, during command execution, is the
+buffer that is the target of the command.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_current-point"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        current-point =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685108=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the buffer-point of the current buffer . This is
+such a common idiom in commands that it is defined despite its trivial
+implementation.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_current-point-collapsing-selection"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        current-point-collapsing-selection =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685156=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the buffer-point of the current buffer, after first
+deactivating any active region.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_current-point-extending-selection"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        current-point-extending-selection =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685203=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the buffer-point of the current buffer, after first
+making sure there is an active region - if the region is already active,
+keeps it active, otherwise it establishes a new (empty) region at point.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_current-point-for-insertion"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        current-point-for-insertion =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685251=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function checks to see if the current buffer can be modified at its
+current point, and errors if not.  Otherwise, it deletes the current
+selection if any, and returns the current point.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_current-point-for-deletion"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        current-point-for-deletion =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685306=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function checks to see if the current buffer can be modified at its
+current point and errors if not.  Otherwise, if there is a section
+in the current buffer, it deletes it and returns NIL.  If there is no
+selection, it returns the current point.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_current-point-unless-selection"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        current-point-unless-selection =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685362=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function checks to see if the current buffer can be modified at its
+current point and errors if not.  Otherwise, if there's a selection in the
+current buffer, returns NIL.  If there is no selection, it returns the
+current point.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_current-mark"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        current-mark =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685418=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the top of the current buffer's mark stack.
+There always is at least one mark at the beginning of the buffer's
+region, and all marks returned are right-inserting.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_pop-buffer-mark"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        pop-buffer-mark =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685474=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function pops the current buffer's mark stack, returning the
+mark.  If the stack becomes empty, this pushes a new mark on the stack
+pointing to the buffer's start.  This always deactivates the current
+region (see <a class=3D"ulink" href=3D"HemlockProgrammer/AlteringAndSearch=
ingText#ActiveRegions" target=3D"_top">Active Regions</a>).
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_push-buffer-mark"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        push-buffer-mark mark <em xmlns=3D"http://www.w3.o=
rg/1999/xhtml" class=3D"varname">&optional</em> activate-region =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685540=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function pushes mark into the current buffer's mark stack,
+ensuring that the mark is right-inserting. If mark does not point into
+the current buffer, this signals an error.  Optionally, the current
+region is made active, but this never deactivates the current region
+(see <a class=3D"ulink" href=3D"HemlockProgrammer/AlteringAndSearchingText=
#ActiveRegions" target=3D"_top">Active Regions</a>).
+Mark is returned.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_push-new-buffer-mark"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        push-new-buffer-mark mark <em xmlns=3D"http://www.=
w3.org/1999/xhtml" class=3D"varname">&optional</em> activate-region =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685606=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function pushes a new mark onto the mark stack, at the position of <c=
ode class=3D"code">mark</code>.
+It's equivalent to calling <code class=3D"code">push-buffer-mark</code> on=
 <code class=3D"code">(copy-mark mark)</code>.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_all-buffers"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        all-buffers =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685672=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a list of all the buffer objects made with make-buff=
er.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"v_buffer-names"></a>
+                <strong>[Variable]</strong>
+                <br></br>
+                <code>
+                        *buffer-names* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685727=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This variable holds a <a class=3D"ulink" href=3D"HemlockProgrammer/Utiliti=
es#StringTables" target=3D"_top">string-table</a>
+mapping the name of a buffer to the corresponding buffer object.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"BufferFunctions"></a>6.3.2.=
=C3=82=C2=A0Buffer  Functions</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_make-buffer"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        make-buffer  name <em xmlns=3D"http://www.w3.org/1=
999/xhtml" class=3D"varname">&key</em> :modes :modeline-fields :delete-=
hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685804=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_default_modeline_fields"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Default Modeline Fields =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685858=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_make_buffer_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Make Buffer Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685912=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+make-buffer creates and returns a buffer with the given name. If a
+buffer named name already exists, nil is returned. Modes is a list of
+modes which should be in effect in the buffer, major mode first,
+followed by any minor modes.  If this is omitted then the buffer is
+created with the list of modes contained in Default Modes (page
+35). Modeline-fields is a list of modeline-field objects (see section
+3.3) which may be nil. delete-hook is a list of delete hooks specific
+to this buffer, and delete-buffer invokes these along with Delete
+Buffer Hook.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Buffers created with make-buffer are entered into the list
+(all-buffers), and their names are inserted into the string-table
+*buffer-names*. When a buffer is created the hook Make Buffer Hook is
+invoked with the new buffer.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_bufferp"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        bufferp buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id685976=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns t if buffer is a buffer object, otherwise nil.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-name"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-name buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686031=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_buffer_name_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Buffer Name Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686084=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+buffer-name returns the name, which is a string, of the given buffer.
+The corresponding setf method invokes Buffer Name Hook with buffer
+and the new name and then sets the buffer's name.  When the user
+supplies a name for which a buffer already exists, the setf method
+signals an error.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-region"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-region buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686141=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns the buffer's region.  Note this is the region that contains all
+the text in a buffer, not the current-region (page 19).
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This can be set with setf to replace the buffer's text.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-pathname"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-pathname buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686200=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_buffer_pathname_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Buffer Pathname Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686254=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+buffer-pathname returns the pathname of the file associated with the
+given buffer, or nil if it has no associated file.  This is the
+truename of the file as of the most recent time it was read or
+written.  There is a setf form to change the pathname.  When the
+pathname is changed the hook Buffer Pathname Hook is invoked with the
+buffer and new value.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-write-date"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-write-date buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686311=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns the write date for the file associated with the buffer in
+universal time format.  When this the buffer-pathname is set, use setf
+to set this to the corresponding write date, or to nil if the date is
+unknown or there is no file.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-point"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-point buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686368=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns the mark which is the current location within buffer. To move
+the point, use move-mark or move-to-position (page 5).
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-mark"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-mark buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686423=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the top of buffer's mark stack.  There always is
+at least one mark at the beginning of buffer's region, and all marks
+returned are right-inserting.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-start-mark"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-start-mark buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686479=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-end-mark"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-end-mark buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686532=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These functions return the start and end marks of buffer's region:
+</p>
+                  <pre xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"pro=
gramlisting">
+
+(buffer-start-mark buffer )  &lt;=3D=3D&gt;  (region-start (buffer=
-region buffer))
+
+</pre>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">and
+</p>
+                  <pre xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"pro=
gramlisting">
+
+(buffer-end-mark buffer )  &lt;=3D=3D&gt;  (region-end (buffer-reg=
ion buffer))
+
+</pre>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-writable"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-writable buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686600=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_buffer_writable_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Buffer Writable Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686654=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns t if you can modify the buffer, nil if you
+cannot.  If a buffer is not writable, then any attempt to alter text
+in the buffer results in an error.  There is a setf method to change
+this value.  The setf method invokes the functions in Buffer Writable
+Hook on the buffer and new value before storing the new value.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-modified"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-modified buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686711=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_buffer_modified_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Buffer Modified Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686765=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+buffer-modified returns t if the buffer has been modified, nil if it
+hasn't.  This attribute is set whenever a text-altering operation is
+performed on a buffer.  There is a setf method to change this value.
+The setf method invokes the functions in Buffer Modified Hook with the
+buffer whenever the value of the modified flag changes.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_with-writable-buffer"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        with-writable-buffer (buffer) <em xmlns=3D"http://=
www.w3.org/1999/xhtml" class=3D"varname">&body</em> body  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686825=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This macro executes forms with buffer's writable status set.  After
+forms execute, this resets the buffer's writable and modified status.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-signature"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-signature buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686880=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns an arbitrary number which reflects the buffer's
+current signature. The result is eql to a previous result if and only if
+the buffer has not been modified between the calls.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-variables"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-variables buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686936=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a string-table (page 69) containing the names of
+the buffer's local variables.  See chapter 6.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-modes"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-modes buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id686991=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the list of the names of the modes active in
+buffer. The major mode is first, followed by any minor modes.  See
+chapter 8.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-delete-hook"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-delete-hook buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687047=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the list of buffer specific functions
+delete-buffer invokes when deleting a buffer . This is setf-able.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_delete-buffer"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        delete-buffer  buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687102=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_delete_buffer_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Delete Buffer Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687156=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+delete-buffer removes buffer from (all-buffers) (page 10) and its name
+from *buffer-names* (page 10).  Before buffer is deleted, this invokes
+the functions on buffer returned by buffer-delete-hook and those found
+in Delete Buffer Hook. If buffer is the current-buffer, or if it is
+displayed in any view, then this function signals an error.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"Modelines"></a>6.3.3.=C3=82=
=C2=A0Modelines</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+A Buffer may specify a modeline, a line of text which is displayed
+across the bottom of a view to indicate status information.
+Modelines are described by a list of modeline-field objects which have
+individual update functions and are optionally fixed-width. These have
+an eql name for convenience in referencing and updating, but the name
+must be unique for all created modeline-field objects.  All modeline-field
+functions must take a buffer as an
+argument and return a string.  When displaying
+a modeline-field with a specified width, the result of the update
+function is either truncated or padded on the right to meet the
+constraint.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Whenever one of the following changes occurs, all of a buffer's
+modeline fields are updated:
+            </p>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"itemizedl=
ist">
+              <ul class=3D"itemizedlist" type=3D"disc">
+                <li class=3D"listitem">
+                  <p>
+A buffer's major mode is set.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+One of a buffer's minor modes is turned on or off.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+A buffer  is renamed.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+A buffer's pathname changes.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+A buffer's modified status changes.
+                    </p>
+                </li>
+              </ul>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The policy is that whenever one of these changes occurs, it is
+guaranteed that the modeline will be updated before the next trip
+through redisplay.  Furthermore, since the system cannot know what
+modeline-field objects the user has added whose update functions rely
+on these values, or how he has changed Default Modeline Fields, we must
+update all the fields.  =

+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The user should note that modelines can be updated at any time, so
+update functions should be careful to avoid needless delays (for
+example, waiting for a local area network to determine information).
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_make-modeline-field"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        make-modeline-field <em xmlns=3D"http://www.w3.org=
/1999/xhtml" class=3D"varname">&key</em> :name :width :function =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687297=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a modeline-field object with name, width,
+and function. Width defaults to nil meaning that the field is variable
+width; otherwise, the programmer must supply this as a positive
+integer. Function must take a buffer as an arguments and
+return a string.  If name already names a modeline-field object,
+then this signals an error.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_modeline-field-name"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        modeline-field-name modeline-field =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687354=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the name field of a modeline-field object.
+If this is set with setf, and the new name already names a
+modeline-field, then the setf method signals an error.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_modeline-field-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        modeline-field-p modeline-field =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687410=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns t if its argument is a modeline-field object, nil
+otherwise.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_modeline-field"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        modeline-field name =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687465=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This returns the modeline-field object named name. If none exists, this
+returns nil.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_modeline-field-function"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        modeline-field-function modeline-field =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687520=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns the function called when updating the modeline-field. When this
+is set with setf, the setf method updates modeline-field for all views
+on all buffers that contain the given field, so the next trip through
+redisplay will reflect the change.  All modeline-field functions must
+take a buffer as an argument and return a string.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_modeline-field-width"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        modeline-field-width modeline-field =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687577=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns the width to which modeline-field is constrained, or nil
+indicating that it is variable width.  When this is set with setf, the
+setf method updates all modeline-fields for all views on all buffers
+that contain the given field, so the next trip through redisplay will
+reflect the change.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-modeline-fields"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-modeline-fields buffer  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687634=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns a copy of the list of buffer's modeline-field objects. This
+list can be destructively modified without affecting display of
+buffer's modeline, but modifying any particular field's components
+(for example, width or function) causes the changes to be reflected
+the next trip through redisplay in every modeline display that uses
+the modified modeline-field.  When this is set with setf, the setf
+method method updates all modeline-fields on all views on the buffer,
+so next trip through the redisplay will reflect the change.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-modeline-field-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-modeline-field-p buffer field =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687693=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+If field, a modeline-field or the name of one, is in buffer's list of
+modeline-field objects, it is returned; otherwise, this returns nil.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_update-modeline-fields"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        update-modeline-fields buffer =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687749=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Arranges so that the modeline display is updated with the latest values
+at the end of current command.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingAlteringAndSearchingText"></a>6.4.=C3=82=C2=A0Altering and Searc=
hing Text</h2>
+              </div>
+            </div>
+          </div>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+A note on marks and text alteration: :temporary marks are invalid
+after any change has been made to the buffer the mark points to; it is
+an error to use a temporary mark after such a change has been made.
+        </p>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+If text is deleted which has permanent marks pointing into it then
+they are left pointing to the position where the text was.
+        </p>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"AlteringText"></a>6.4.1.=C3=
=82=C2=A0Altering Text</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_insert-character"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        insert-character mark character =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687837=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_insert-string"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        insert-string mark string =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687891=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_insert-region"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        insert-region mark region =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id687945=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Inserts character, string or region at mark. <code class=3D"code">insert-c=
haracter</code> signals
+an error if character is not <code class=3D"code">string-char-p</code>. If=
 string or region is
+empty, and mark is in some buffer, then Hemlock leaves buffer-modified of
+mark's buffer unaffected.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_ninsert-region"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        ninsert-region mark region =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688009=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Like <code class=3D"code">insert-region</code>, inserts the region at the =
mark's position,
+destroying the source region.  This must be used with caution, since
+if anyone else can refer to the source region bad things will
+happen. In particular, one should make sure the region is not linked
+into any existing buffer.  If region is empty, and mark is in some
+buffer, then Hemlock leaves buffer-modified of mark's buffer unaffected.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_delete-characters"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        delete-characters mark n =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688070=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This deletes n characters after the mark (or -n before if n is
+negative).  If n characters after (or -n before) the mark do not
+exist, then this returns nil; otherwise, it returns t. If n is zero,
+and mark is in some buffer, then Hemlock leaves buffer-modified of
+mark's buffer unaffected.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_delete-region"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        delete-region region  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688126=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This deletes region. This is faster than delete-and-save-region
+(below) because no lines are copied. If region is empty and contained
+in some buffer's buffer-region, then Hemlock leaves buffer-modified of
+the buffer unaffected.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_delete-and-save-region"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        delete-and-save-region region  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688183=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This deletes region and returns a region containing the original
+region's text. If region is empty and contained in some buffer's
+buffer-region, then Hemlock leaves buffer-modified of the buffer
+unaffected. In this case, this returns a distinct empty region.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_filter-region"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        filter-region function region =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688240=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Destructively modifies region by replacing the text of each line with
+the result of the application of function to a string containing that
+text. Function must obey the following restrictions:
+                    </p>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ord=
eredlist">
+                    <ol class=3D"orderedlist" type=3D"1">
+                      <li class=3D"listitem">
+                        <p>
+The argument may not be destructively modified.
+                            </p>
+                      </li>
+                      <li class=3D"listitem">
+                        <p>
+The return value may not contain newline characters.
+                            </p>
+                      </li>
+                      <li class=3D"listitem">
+                        <p>
+The return value may not be destructively modified after it is returned fr=
om function.
+                            </p>
+                      </li>
+                    </ol>
+                  </div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The strings are passed in order.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Using this function, a region could be uppercased by doing:
+                        <code class=3D"code">(filter-region #'string-upcas=
e region)</code>
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"TextPredicates"></a>6.4.2.=
=C3=82=C2=A0Text Predicates</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_start-line-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        start-line-p mark =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688352=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns t if the mark points before the first character in a line, nil
+otherwise.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_end-line-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        end-line-p mark =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688407=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns t if the mark points after the last character in a line and
+before the newline, nil otherwise.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+                        <code class=3D"code">empty-line-p</code> mark [Fun=
ction]
+Return t if the line which mark points to contains no characters.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_blank-line-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        blank-line-p line =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688470=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns t if line contains only characters with a Whitespace attribute
+of 1.  See chapter 9 for discussion of character attributes.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_blank-before-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        blank-before-p mark =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688525=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_blank-after-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        blank-after-p mark =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688579=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These functions test if all the characters preceding or following mark
+on the line it is on have a Whitespace attribute of 1.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_same-line-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        same-line-p mark1 mark2 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688634=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns t if mark1 and mark2 point to the same line, or nil otherwise; Tha=
t is,
+</p>
+                  <pre xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"pro=
gramlisting">
+
+(same-line-p a b) &lt;=3D=3D&gt; (eq (mark-line a) (mark-line b))
+
+</pre>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_mark_lt"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        mark< mark1 mark2 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688695=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_mark_lt__eq"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        mark<=3D mark1 mark2 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688749=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_mark_eq"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        mark=3D mark1 mark2 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688803=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_mark__eq"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        mark/=3D mark1 mark2 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688858=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_mark_gt__eq"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        mark>=3D mark1 mark2 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688911=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_mark_gt"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        mark> mark1 mark2 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id688966=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These predicates test the relative ordering of two marks in a piece of
+text, that is a mark is mark> another if it points to a position after
+it. An error is signalled if the marks do not point into the same buffer,
+except that for such marks mark=3D is always false and mark/=3D is always =
true.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_line_lt"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        line< line1 line2 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689022=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_line_lt__eq"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        line<=3D line1 line2 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689077=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_line_gt__eq"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        line>=3D line1 line2 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689131=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_line_gt"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        line> line1 line2 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689185=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These predicates test the ordering of line1 and line2. An error is signall=
ed
+if the lines are not in the same buffer.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_lines-related"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        lines-related line1 line2 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689241=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns t if line1 and line2 are in the same buffer, nil
+nil otherwise.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_first-line-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        first-line-p mark =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689296=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_last-line-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        last-line-p mark =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689350=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+                        <code class=3D"code">first-line-p</code> returns t=
 if there is no line before the line mark is on,
+and nil otherwise. <code class=3D"code">Last-line-p</code> similarly tests=
 tests whether there is
+no line after mark.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"KillRing"></a>6.4.3.=C3=82=
=C2=A0Kill Ring</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+There is a global ring (see section 16.2) of regions deleted from buffers.
+Some commands save affected regions on the kill ring before performing
+modifications.  You should consider making the command undoable (see
+section 16.3), but this is a simple way of achieving a less
+satisfactory means for the user to recover.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_kill-region"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        kill-region region  current-type =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689430=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This kills region saving it in the kill ring. Current-type is either
+:kill-forward or :kill-backward. When the last-command-type (page 31)
+is one of these, this adds region to the beginning or end,
+respectively, of the top of the kill ring. The result of calling this is
+undoable using the command Undo (see the Hemlock User's Manual). This
+sets last-command-type to current-type, and it interacts with
+kill-characters.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_kill-characters"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        kill-characters mark count =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689488=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_character_deletion_threshold"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Character Deletion Threshold (initial value 5) =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689543=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+kill-characters kills count characters after mark if count is
+positive, otherwise before mark if count is negative.  When count is
+greater than or equal to Character Deletion Threshold, the killed
+characters are saved on the kill ring. This may be called multiple times
+contiguously (that is, without last-command-type (page 31) being set)
+to accumulate an effective count for purposes of comparison with the
+threshold.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This sets last-command-type, and it interacts with kill-region. When
+this adds a new region to the kill ring, it sets last-command-type to
+:kill-forward (if count is positive) or :kill-backward (if count is
+negative).  When last-command-type is :kill-forward or :kill-backward,
+this adds the killed characters to the beginning (if count is
+negative) or the end (if count is positive) of the top of the kill ring,
+and it sets last-command-type as if it added a new region to the
+kill ring. When the kill ring is unaffected, this sets
+last-command-type to :char-kill-forward or :char-kill-backward
+depending on whether count is positive or negative, respectively.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This returns mark if it deletes characters.  If there are not count
+characters in the appropriate direction, this returns nil.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"ActiveRegions"></a>6.4.4.=
=C3=82=C2=A0Active Regions</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Every buffer has a mark stack (page 9) and a mark known as the point
+where most text altering nominally occurs.  Between the top of the
+mark stack, the current-mark, and the current-buffer's point, the
+current-point, is what is known as the current-region . Certain
+commands signal errors when the user tries to operate on the
+current-region without its having been activated.  If the user turns
+off this feature, then the current-region is effectively always
+active.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+When writing a command that marks a region of text, the programmer
+should make sure to activate the region.  This typically occurs
+naturally from the primitives that you use to mark regions, but
+sometimes you must explicitly activate the region.  These commands
+should be written this way, so they do not require the user to
+separately mark an area and then activate it.  Commands that modify
+regions do not have to worry about deactivating the region since
+modifying a buffer automatically deactivates the region.  Commands
+that insert text often activate the region ephemerally; that is, the
+region is active for the immediately following command, allowing the
+user wants to delete the region inserted, fill it, or whatever.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Once a marking command makes the region active, it remains active until:
+            </p>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"itemizedl=
ist">
+              <ul class=3D"itemizedlist" type=3D"disc">
+                <li class=3D"listitem">
+                  <p>
+a command uses the region,
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+a command modifies the buffer,
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+a command changes the current window or buffer,
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+a command signals an editor-error,
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+or the user types C-g.
+                    </p>
+                </li>
+              </ul>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_active_regions_enabled"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Active Regions Enabled (initial value t) =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689690=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+When this variable is non-nil, some primitives signal an editor-error
+if the region is not active.  This may be set to nil for more
+traditional Emacs region semantics.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"v_ephemerally-active-command-types"></a>
+                <strong>[Variable]</strong>
+                <br></br>
+                <code>
+                        *ephemerally-active-command-types* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689746=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This is a list of command types (see section 7.3), and its initial
+value is the list of :ephemerally-active and :unkill. When the
+previous command's type is one of these, the current-region is active
+for the currently executing command only, regardless of whether it
+does something to deactivate the region.  However, the current command
+may activate the region for future commands. :ephemerally-active is a
+default command type that may be used to ephemerally activate the
+region, and:unkill is the type used by two commands, Un-kill and
+Rotate Kill Ring (what users typically think of as C-y and M-y).
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_activate-region"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        activate-region =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689806=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This makes the current-region active.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_deactivate-region"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        deactivate-region =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689860=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+After invoking this the current-region is no longer active.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_region-active-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        region-active-p =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689915=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns whether the current-region is active, including
+ephemerally. This ignores Active Regions Enabled.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_check-region-active"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        check-region-active =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id689970=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This signals an editor-error when active regions are enabled, and the
+current-region is not active.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_current-region"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        current-region <em xmlns=3D"http://www.w3.org/1999=
/xhtml" class=3D"varname">&optional</em> error-if-not-active deactivate=
-region =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id690029=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This returns a region formed with current-mark and current-point,
+optionally signaling an editor-error if the current region is not
+active. Error-if-not-active defaults to t. Each call returns a
+distinct region object.  Depending on deactivate-region (defaults to
+t), fetching the current region deactivates it.  Hemlock primitives
+are free to modify text regardless of whether the region is active, so
+a command that checks for this can deactivate the region whenever it
+is convenient.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"SearchingAndReplacing"></a>=
6.4.5.=C3=82=C2=A0Searching and Replacing</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Before using any of these functions to do a character search, look at
+character attributes (page 37).  They provide a facility similar to
+the syntax table in real Emacs.  Syntax tables are a powerful,
+general, and efficient mechanism for assigning meanings to characters
+in various modes.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_new-search-pattern"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        new-search-pattern kind direction pattern <em xmln=
s=3D"http://www.w3.org/1999/xhtml" class=3D"varname">&optional</em> res=
ult-search-pattern =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id690108=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns a search-pattern object which can be given to the find-pattern
+and replace-pattern functions. A search-pattern is a specification of
+a particular sort of search to do. direction is either :forward or
+:backward, indicating the direction to search in. kind specifies the
+kind of search pattern to make, and pattern is a thing which specifies
+what to search for.  The interpretation of pattern depends on the kind
+of pattern being made.  Currently defined kinds of search pattern are:
+                    </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:string-insensitive</span></i>---
+Does a case-insensitive string search for pattern
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:string-sensitive</span></i>---
+Does a case-sensitive string search for pattern.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:character</span></i>---
+Finds an occurrence of the character pattern. This is case sensitive.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:not-character</span></i>---
+Find a character which is not the character pattern.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:test</span></i>---
+Finds a character which satisfies the function pattern. This function may =
not be applied an any particular fashion, so it should depend only on what =
its argument is, and should have no side-effects.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:test-not</span></i>---
+Similar to :test, except it finds a character that fails the test.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:any</span></i>---
+Finds a character that is in the string pattern.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:not-any</span></i>---
+Finds a character that is not in the string pattern.
+                                </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+result-search-pattern, if supplied, is a search-pattern to
+destructively modify to produce the new pattern.  Where reasonable
+this should be supplied, since some kinds of search patterns may
+involve large data structures.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_search-pattern-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        search-pattern-p search-pattern =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id690308=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns t if search-pattern is a search-pattern object, otherwise nil.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_get-search-pattern"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        get-search-pattern string direction =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id690363=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+get-search-pattern interfaces to a default search string and pattern
+that search and replacing commands can use.  These commands then share
+a default when prompting for what to search or replace, and save on
+consing a search pattern each time they execute.  This uses Default
+Search Kind (see the  Hemlock  User's Manual) when updating the pattern
+object.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"v_last-search-string"></a>
+                <strong>[Variable]</strong>
+                <br></br>
+                <code>
+                        *last-search-string* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id690420=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns the last string searched for, useful when prompting.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_find-pattern"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        find-pattern mark search-pattern =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id690475=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Find the next match of search-pattern starting at mark. If a match is
+found then mark is altered to point before the matched text and the
+number of characters matched is returned.  If no match is found then
+nil is returned and mark is not modified.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_replace-pattern"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        replace-pattern mark search-pattern replacement <e=
m xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"varname">&optional</e=
m> n =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id690535=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Replace n matches of search-pattern with the string replacement
+starting at mark. If n is nil (the default) then replace all matches.
+A mark pointing before the last replacement done is returned.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingTheCurrentEnvironment"></a>6.5.=C3=82=C2=A0The Current Environme=
nt</h2>
+              </div>
+            </div>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"DifferentScopes"></a>6.5.1.=
=C3=82=C2=A0Different Scopes</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+In Hemlock the "current" values of <a class=3D"ulink" href=3D"HemlockProgr=
ammer/HemlockVariables" target=3D"_top">variables</a>,
+<a class=3D"ulink" href=3D"HemlockProgrammer/Commands" target=3D"_top">key=
 bindings</a> and
+<a class=3D"ulink" href=3D"HemlockProgrammer/CharacterAttributes" target=
=3D"_top">character-attributes</a>
+depend on the <a class=3D"ulink" href=3D"HemlockProgrammer/Buffers#Current=
Buffer" target=3D"_top">current buffer</a>
+and the modes active in it.  There are three possible scopes for
+Hemlock values:
+            </p>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"variablel=
ist">
+              <dl>
+                <dt>
+                  <span class=3D"term">buffer local</span>
+                </dt>
+                <dd>
+                  <p>
+The value is present only if the buffer it is local to is the current buff=
er.
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">mode local</span>
+                </dt>
+                <dd>
+                  <p>
+The value is present only when the mode it is local to is active in the cu=
rrent buffer.
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">global</span>
+                </dt>
+                <dd>
+                  <p>
+The value is always present unless shadowed by a buffer or mode local valu=
e.
+                        </p>
+                </dd>
+              </dl>
+            </div>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"Shadowing"></a>6.5.2.=C3=82=
=C2=A0Shadowing</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+It is possible that there are different values for the same thing in =

+in different scopes.  For example, there be might a global binding for a g=
iven
+variable and also a local binding in the current buffer.  Whenever there i=
s a
+conflict, shadowing occurs, permitting only one of the values to be visibl=
e in
+the current environment.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The process of resolving such a conflict can be described as a search
+down a list of places where the value might be defined, returning the
+first value found.  The order for the search is as follows:
+            </p>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"orderedli=
st">
+              <ol class=3D"orderedlist" type=3D"1">
+                <li class=3D"listitem">
+                  <p>
+Local values in the current buffer.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+Mode local values in the minor modes of the current buffer, in order from =
the highest precedence mode to the lowest precedence mode.  The order of mi=
nor modes with equal precedences is undefined.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+Mode local values in the current buffer's major mode.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+Global values.
+                    </p>
+                </li>
+              </ol>
+            </div>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingHemlockVariables"></a>6.6.=C3=82=C2=A0Hemlock Variables</h2>
+              </div>
+            </div>
+          </div>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Hemlock implements a system of variables separate from normal Lisp
+variables for the following reasons:
+        </p>
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"orderedlist=
">
+            <ol class=3D"orderedlist" type=3D"1">
+              <li class=3D"listitem">
+                <p>
+Hemlock has different scoping rules which are useful in an editor.  Hemloc=
k variables can be local to a buffer (page 9) or a mode (page 35).
+                </p>
+              </li>
+              <li class=3D"listitem">
+                <p>
+Hemlock variables have hooks (page 25), lists of functions called when som=
eone sets the variable. See variable-value for the arguments Hemlock passes=
 to these hook functions.
+                </p>
+              </li>
+              <li class=3D"listitem">
+                <p>
+There is a database of variable names and documentation which makes it eas=
ier to find out what variables exist and what their values mean.
+                </p>
+              </li>
+            </ol>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"VariableNames"></a>6.6.1.=
=C3=82=C2=A0Variable Names</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+To the user, a variable name is a case insensitive string.  This
+string is referred to as the string name of the variable. A string
+name is conventionally composed of words separated by spaces.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+In Lisp code a variable name is a symbol.  The name of this symbol is
+created by replacing any spaces in the string name with hyphens.  This
+symbol name is always interned in the Hemlock package.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"v_global-variable-names"></a>
+                <strong>[Variable]</strong>
+                <br></br>
+                <code>
+                        *global-variable-names* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id690829=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This variable holds a string-table of the names of all the global
+Hemlock variables. The value of each entry is the symbol name of the
+variable.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_current-variable-tables"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        current-variable-tables =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id690884=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a list of variable tables currently established,
+globally, in the current buffer, and by the modes of the
+current-buffer. This list is suitable for use with
+prompt-for-variable.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"VariableFunctions"></a>6.6.=
2.=C3=82=C2=A0Variable Functions</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+In the following descriptions name is the symbol name of the variable.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_defhvar"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        defhvar string-name documentation <em xmlns=3D"htt=
p://www.w3.org/1999/xhtml" class=3D"varname">&key</em> :mode :buffer :h=
ooks :value =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id690959=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function defines a Hemlock variable. Functions that take a
+variable name signal an error when the variable is undefined.
+                    </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">string-name</span></i>---
+The string name of the variable to define.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">documentation</span></i>---
+The documentation string for the variable.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:mode, :buffer</span></i>---
+If buffer is supplied, the variable is local to that buffer.  If mode is s=
upplied, it is local to that mode.  If neither is supplied, it is global.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:value</span></i>---
+This is the initial value for the variable, which defaults to nil.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:hooks</span></i>---
+This is the initial list of functions to call when someone sets the variab=
le's value. These functions execute before Hemlock establishes the new valu=
e. See variable-value for the arguments passed to the hook functions.
+                                </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+If a variable with the same name already exists in the same place,
+then defhvar sets its hooks and value from hooks and value if the user
+supplies these keywords.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_variable-value"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        variable-value name <em xmlns=3D"http://www.w3.org=
/1999/xhtml" class=3D"varname">&optional</em> kind where =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691110=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the value of a Hemlock variable in some place. The f=
ollowing values for kind are defined:
+                    </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:current</span></i>---
+Return the value present in the current environment, taking into considera=
tion any mode or buffer local variables.  This is the default.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:global</span></i>---
+Return the global value.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:mode</span></i>---
+Return the value in the mode named where.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:buffer</span></i>---
+Return the value in the buffer where.
+                                </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+When set with setf, Hemlock sets the value of the specified variable
+and invokes the functions in its hook list with name, kind, where, and
+the new value.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_variable-documentation"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        variable-documentation name <em xmlns=3D"http://ww=
w.w3.org/1999/xhtml" class=3D"varname">&optional</em> kind where =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691244=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_variable-hooks"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        variable-hooks name <em xmlns=3D"http://www.w3.org=
/1999/xhtml" class=3D"varname">&optional</em> kind where =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691302=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_variable-name"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        variable-name name <em xmlns=3D"http://www.w3.org/=
1999/xhtml" class=3D"varname">&optional</em> kind where =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691360=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These function return the documentation, hooks and string name of a
+Hemlock variable. The kind and where arguments are the same as for
+variable-value. The documentation and hook list may be set using setf.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_string-to-variable"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        string-to-variable string =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691416=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function converts a string into the corresponding variable symbol
+name. String need not be the name of an actual Hemlock variable.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_value"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        value name =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691471=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_setv"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        setv name new-value =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691525=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These macros get and set the current value of the Hemlock variable
+name. Name is not evaluated.  There is a setf form for <code class=3D"code=
">value</code>.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_hlet"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        hlet ({(var value)}*){form}* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691584=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This macro is very similar to let in effect; within its scope each of
+the Hemlock variables var have the respective values, but after the
+scope is exited by any means the binding is removed.  This does not
+cause any hooks to be invoked.  The value of the last form is
+returned.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_hemlock-bound-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        hemlock-bound-p name <em xmlns=3D"http://www.w3.or=
g/1999/xhtml" class=3D"varname">&optional</em> kind where =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691644=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns t if name is defined as a Hemlock variable in the place
+specified by kind and where, or nil otherwise.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_delete-variable"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        delete-variable name <em xmlns=3D"http://www.w3.or=
g/1999/xhtml" class=3D"varname">&optional</em> kind where =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691703=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_delete_variable_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Delete Variable Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691757=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+delete-variable makes the Hemlock variable name no longer defined in
+the specified place. Kind and where have the same meanings as they do
+for variable-value, except that :current is not available, and the
+default for kind is :global
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+An error will be signaled if no such variable exists.  The hook,
+Delete Variable Hook is invoked with the same arguments before the
+variable is deleted.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"Hooks"></a>6.6.3.=C3=82=C2=
=A0Hooks</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Hemlock actions such as setting variables, changing buffers, changing
+windows, turning modes on and off, etc., often have hooks associated
+with them.  A hook is a list of functions called before the system
+performs the action.  The manual describes the object specific hooks
+with the rest of the operations defined on these objects.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Often hooks are stored in Hemlock variables, Delete Buffer Hook and
+Set Window Hook for example.  This leads to a minor point of confusion
+because these variables have hooks that the system executes when
+someone changes their values.  These hook functions Hemlock invokes
+when someone sets a variable are an example of a hook stored in an
+object instead of a Hemlock variable. These are all hooks for editor
+activity, but Hemlock keeps them in different kinds of locations.
+This is why some of the routines in this section have a special
+interpretation of the hook place argument.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_add-hook"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        add-hook place hook-fun =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691844=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_remove-hook"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        remove-hook place hook-fun =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691898=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These macros add or remove a hook function in some place. If hook-fun
+already exists in place, this call has no effect.  If place is a
+symbol, then it is a Hemlock variable; otherwise, it is a generalized
+variable or storage location.  Here are two examples:
+                    </p>
+                  <pre xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"pro=
gramlisting">
+
+(add-hook delete-buffer-hook 'remove-buffer-from-menu)
+(add-hook (variable-hooks 'check-mail-interval)
+          'reschedule-mail-check)
+
+</pre>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_invoke-hook"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        invoke-hook place <em xmlns=3D"http://www.w3.org/1=
999/xhtml" class=3D"varname">&rest</em> args =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id691964=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This macro calls all the functions in place. If place is a symbol,
+then it is a Hemlock variable; otherwise, it is a generalized
+variable.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingCommands"></a>6.7.=C3=82=C2=A0Commands</h2>
+              </div>
+            </div>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"HemlockProgrammingCommandsI=
ntroduction"></a>6.7.1.=C3=82=C2=A0Introduction</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The way that the user tells Hemlock to do something is by invoking a
+command. Commands have three attributes:
+            </p>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"variablel=
ist">
+              <dl>
+                <dt>
+                  <span class=3D"term">name</span>
+                </dt>
+                <dd>
+                  <p>
+A command's name provides a way to refer to it.  Command names are
+usually capitalized words separated by spaces, such as Forward Word.
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">documentation</span>
+                </dt>
+                <dd>
+                  <p>
+The documentation for a command is used by on-line help facilities.
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">function</span>
+                </dt>
+                <dd>
+                  <p>
+A command is implemented by a Lisp function, which is callable from Lisp.
+                        </p>
+                </dd>
+              </dl>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"v_command-names"></a>
+                <strong>[Variable]</strong>
+                <br></br>
+                <code>
+                        *command-names* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id692098=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Holds a string-table (page 69) associating command names to command
+objects.  Whenever a new command is defined it is entered in this
+table.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"CommandInterpreter"></a>6.7=
.2.=C3=82=C2=A0The Command Interpreter</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The command interpreter is the functionality invoked by the event
+handler to process key-events from the keyboard and dispatch to
+different commands on the basis of what the user types.  When the
+command interpreter executes a command, we say it invokes the command.  The
+command interpreter also provides facilities for communication between
+contiguously running commands, such as a last command type register.
+It also takes care of resetting communication mechanisms, clearing the
+echo area, displaying partial keys typed slowly by the user, etc.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_command_abort_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Command Abort Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id692582=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The command interpreter invokes the function in this variable whenever
+someone aborts a command (for example, if someone called
+editor-error).
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"CommandTypes"></a>6.7.3.=C3=
=82=C2=A0Command Types</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+In many editors the behavior of a command depends on the kind of
+command invoked before it. Hemlock provides a mechanism to support
+this known as <code class=3D"code">command type</code>.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_last-command-type"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        last-command-type =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id693322=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This returns the command type of the last command invoked. If this is
+set with setf, the supplied value becomes the value of
+last-command-type until the next command completes.  If the previous
+command did not set last-command-type, then its value is nil. Normally
+a command type is a keyword. The command type is not cleared after a
+command is invoked due to a transparent key binding.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"CommandArguments"></a>6.7.4=
.=C3=82=C2=A0Command Arguments</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+There are three ways in which a command may be invoked: It may be
+bound to a key which has been typed, it may be invoked as an extended
+command, or it may be called as a Lisp function.  Ideally commands
+should be written in such a way that they will behave sensibly no
+matter which way they are invoked. The functions which implement
+commands must obey certain conventions about argument passing if the
+command is to function properly.
+            </p>
+            <div class=3D"sect3" lang=3D"en" xml:lang=3D"en">
+              <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
+                <div>
+                  <div>
+                    <h4 class=3D"title"><a id=3D"PrefixArgument"></a>6.7.4=
.1.=C3=82=C2=A0The Prefix Argument</h4>
+                  </div>
+                </div>
+              </div>
+              <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Whenever a command is invoked it is passed as its first argument what
+is known as the prefix argument. The prefix argument is always either
+an integer or nil. When a command uses this value it is usually as a
+repeat count, or some conceptually similar function.
+                </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_prefix-argument"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            prefix-argument =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id6934=
14"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the current value of the prefix argument.  When
+set with setf, the new value becomes the prefix argument for the next
+command.  If the prefix argument is not set by the previous command
+then the prefix argument for a command is nil. The prefix argument is
+not cleared after a command is invoked due to a transparent key
+binding.
+                        </p>
+                  </div>
+                </div>
+              </p>
+            </div>
+            <div class=3D"sect3" lang=3D"en" xml:lang=3D"en">
+              <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
+                <div>
+                  <div>
+                    <h4 class=3D"title"><a id=3D"LispArguments"></a>6.7.4.=
2.=C3=82=C2=A0Lisp Arguments</h4>
+                  </div>
+                </div>
+              </div>
+              <p xmlns=3D"http://www.w3.org/1999/xhtml">
+It is often desirable to call commands from Lisp code, in which case
+arguments which would otherwise be prompted for are passed as optional
+arguments following the prefix argument.  A command should prompt for
+any arguments not supplied.
+                </p>
+            </div>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingModes"></a>6.8.=C3=82=C2=A0Modes</h2>
+              </div>
+            </div>
+          </div>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+A mode is a collection of Hemlock values which may be present in the
+current environment (page 21) depending on the editing task at hand.
+An example of a typical mode is Lisp, for editing Lisp code.
+        </p>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"ModeHooks"></a>6.8.1.=C3=82=
=C2=A0Mode Hooks</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+When a mode is added to or removed from a buffer, its mode hook is
+invoked.  The hook functions take two arguments, the buffer involved
+and t if the mode is being added or nil if it is being removed.  Mode
+hooks are typically used to make a mode do something additional to
+what it usually does.  One might, for example, make a Text mode hook
+that turned on auto-fill mode when you entered.
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"MajorAndMinorModes"></a>6.8=
.2.=C3=82=C2=A0Major and Minor Modes</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+There are two kinds of modes, major modes and minor modes. A buffer
+always has exactly one major mode, but it may have any number of minor
+modes.  Major modes may have mode character attributes while minor
+modes may not.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+A major mode is usually used to change the environment in some major
+way, such as to install special commands for editing some language.
+Minor modes generally change some small attribute of the environment,
+such as whether lines are automatically broken when they get too long.
+A minor mode should work regardless of what major mode and minor modes
+are in effect.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_default_modes"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Default Modes (initial value '("Fundamental" "Save=
")) =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id693547=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This variable contains a list of mode names which are instantiated in
+a buffer when no other information is available.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"v_mode-names"></a>
+                <strong>[Variable]</strong>
+                <br></br>
+                <code>
+                        *mode-names* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id693602=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Holds a string-table of the names of all the modes.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"c_illegal"></a>
+                <strong>[Command]</strong>
+                <br></br>
+                <code>
+                        Illegal =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id693656=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This is a useful command to bind in modes that wish to shadow global
+bindings by making them effectively illegal.  Also, although less
+likely, minor modes may shadow major mode bindings with this.  This
+command calls editor-error.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"ModeFunctions"></a>6.8.3.=
=C3=82=C2=A0Mode Functions</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_defmode"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        defmode name <em xmlns=3D"http://www.w3.org/1999/x=
html" class=3D"varname">&key</em> :setup-function :cleanup-function :ma=
jor-p :precedence :transparent-p :documentation =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id693726=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function defines a new mode named name, and enters it in
+*mode-names* (page 35).  If major-p is supplied and is not nil then
+the mode is a major mode; otherwise it is a minor mode.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Setup-function and cleanup-function are functions which are invoked
+with the buffer affected, after the mode is turned on, and before it
+is turned off, respectively.  These functions typically are used to
+make buffer-local key or variable bindings and to remove them when the
+mode is turned off.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Precedence is only meaningful for a minor mode.  The precedence of a
+minor mode determines the order in which it in a buffer's list of
+modes.  When searching for values in the current environment, minor
+modes are searched in order, so the precedence of a minor mode
+determines which value is found when there are several definitions.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Transparent-p determines whether key bindings local to the defined mode
+are transparent.  Transparent key bindings are invoked in addition to
+the first normal key binding found rather than shadowing less local
+key bindings.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Documentation is some introductory text about the mode.  Commands such
+as Describe Mode use this.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_mode-documentation"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        mode-documentation name =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id693805=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the documentation for the mode named name.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-major-mode"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-major-mode buffer =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id693860=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_buffer_major_mode_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Buffer Major Mode Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id693915=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+buffer-major-mode returns the name of buffer's major mode.  The major
+mode may be changed with setf; then Buffer Major Mode Hook is invoked
+with buffer and the new mode.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-minor-mode"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-minor-mode buffer name =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id693970=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_buffer_minor_mode_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Buffer Minor Mode Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694025=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+buffer-minor-mode returns t if the minor mode name is active in
+buffer, nil otherwise. A minor mode may be turned on or off by using
+setf; then Buffer Minor Mode Hook is invoked with buffer, name and the
+new value.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_mode-variables"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        mode-variables name =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694080=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns the string-table of mode local variables.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_mode-major-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        mode-major-p name =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694134=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns t if name is the name of a major mode, or nil if it is the
+name of a minor mode.  It is an error for name not to be the name of a
+mode.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingCharacterAttributes"></a>6.9.=C3=82=C2=A0Character Attributes</h=
2>
+              </div>
+            </div>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"HemlockProgrammingCharacter=
AttributesIntroduction"></a>6.9.1.=C3=82=C2=A0Introduction</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Character attributes provide a global database of information about
+characters.  This facility is similar to, but more general than, the
+syntax tables of other editors such as Emacs. For example, you should
+use character attributes for commands that need information regarding
+whether a character is whitespace or not.  Use character attributes
+for these reasons:
+            </p>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"orderedli=
st">
+              <ol class=3D"orderedlist" type=3D"1">
+                <li class=3D"listitem">
+                  <p>
+If this information is all in one place, then it is easy the
+change the behavior of the editor by changing the syntax table,
+much easier than it would be if character constants were wired
+into commands.
+                    </p>
+                </li>
+              </ol>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"orderedli=
st">
+              <ol class=3D"orderedlist" type=3D"1">
+                <li class=3D"listitem">
+                  <p>
+This centralization of information avoids needless duplication of effort.
+                    </p>
+                </li>
+              </ol>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"orderedli=
st">
+              <ol class=3D"orderedlist" type=3D"1">
+                <li class=3D"listitem">
+                  <p>
+The syntax table primitives are probably faster than anything that
+can be written above the primitive level.
+                    </p>
+                </li>
+              </ol>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Note that an essential part of the character attribute scheme is that
+character attributes are global and are there for the user to
+change. Information about characters which is internal to some set of
+commands (and which the user should not know about) should not be
+maintained as a character attribute.  For such uses various character
+searching abilities are provided by the function find-pattern (page
+20).
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"CharacterAttributeNames"></=
a>6.9.2.=C3=82=C2=A0Character Attribute Names</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+As for Hemlock variables, character attributes have a user visible
+string name, but are referred to in Lisp code as a symbol.  The string
+name, which is typically composed of capitalized words separated by
+spaces, is translated into a keyword by replacing all spaces with
+hyphens and interning this string in the keyword package.  The
+attribute named "Ada Syntax" would thus become :ada-syntax.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"v_character-attribute-names"></a>
+                <strong>[Variable]</strong>
+                <br></br>
+                <code>
+                        *character-attribute-names* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694296=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Whenever a character attribute is defined, its name is entered in this
+string table (page 69), with the corresponding keyword as the value.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"CharacterAttributeFunctions=
"></a>6.9.3.=C3=82=C2=A0Character Attribute Functions</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_defattribute"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        defattribute name documentation <em xmlns=3D"http:=
//www.w3.org/1999/xhtml" class=3D"varname">&optional</em> type initial-=
value =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694366=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function defines a new character attribute with name, a
+string.  Character attribute operations take attribute
+arguments as a keyword whose name is name uppercased with spaces
+replaced by hyphens.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Documentation describes the uses of the character attribute.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Type, which defaults to (mod 2), specifies what type the values of the
+character attribute are.  Values of a character attribute may be of
+any type which may be specified to make-array. Initial-value (default
+0) is the value which all characters will initially have for this
+attribute.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_character-attribute-name"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        character-attribute-name attribute =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694433=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_character-attribute-documentation"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        character-attribute-documentation attribute =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694488=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These functions return the name or documentation for attribute.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_character-attribute"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        character-attribute attribute character =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694543=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_character_attribute_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Character Attribute Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694598=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+character-attribute returns the value of attribute for character. This
+signals an error if attribute is undefined.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+setf will set a character's attributes.  This setf method invokes the
+functions in Character Attribute Hook on the attribute and character
+before it makes the change.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+If character is nil, then the value of the attribute for the beginning
+or end of the buffer can be accessed or set.  The buffer beginning and
+end thus become a sort of fictitious character, which simplifies the
+use of character attributes in many cases.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_character-attribute-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        character-attribute-p symbol =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694664=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns t if symbolis the name of a character attribute,
+nil otherwise.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_shadow-attribute"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        shadow-attribute attribute character value mode =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694720=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_shadow_attribute_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Shadow Attribute Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694774=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function establishes value as the value of character's attribute
+attribute when in the mode mode.  Mode must be the name of a major
+mode. Shadow Attribute Hook is invoked with the same arguments when
+this function is called. If the value for an attribute is set while
+the value is shadowed, then only the shadowed value is affected, not
+the global one.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_unshadow-attribute"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        unshadow-attribute attribute character mode =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694832=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_unshadow_attribute_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Unshadow Attribute Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694887=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Make the value of attribute for character no longer be shadowed in
+mode. Unshadow Attribute Hook is invoked with the same arguments when
+this function is called.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_find-attribute"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        find-attribute mark attribute <em xmlns=3D"http://=
www.w3.org/1999/xhtml" class=3D"varname">&optional</em> test =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id694946=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_reverse-find-attribute"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        reverse-find-attribute mark attribute <em xmlns=3D=
"http://www.w3.org/1999/xhtml" class=3D"varname">&optional</em> test =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id695004=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These functions find the next (or previous) character with some value
+for the character attribute attribute starting at mark. They pass test
+one argument, the value of attribute for the character tested.  If the
+test succeeds, then these routines modify mark to point before (after
+for reverse-find-attribute) the character which satisfied the test.
+If no characters satisfy the test, then these return nil, and mark
+remains unmodified. Test defaults to <code class=3D"code">#'not-zerop</cod=
e>. There is no guarantee
+that the test is applied in any particular fashion, so it should have
+no side effects and depend only on its argument.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_find-not-attribute"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        find-not-attribute mark attribute =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id695067=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_reverse-find-not-attribute"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        reverse-find-not-attribute mark attribute =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id695122=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These are equivalent to (find-attribute mark attribute #'zerop) and
+(reverse-find-attribute mark attribute #'zerop), respectively.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"CharacterAttributeHooks"></=
a>6.9.4.=C3=82=C2=A0Character Attribute Hooks</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+It is often useful to use the character attribute mechanism as an
+abstract interface to other information about characters which in fact
+is stored elsewhere.  For example, some implementation of Hemlock
+might decide to define a Print Representation attribute which controls
+how a character is displayed on an output device.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+To make this easy to do, each attribute has a list of hook functions
+which are invoked with the attribute, character and new value whenever
+the current value changes for any reason.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_character-attribute-hooks"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        character-attribute-hooks attribute =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id695201=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Return the current hook list for attribute. This may be set with
+setf. The add-hook and remove-hook (page 25) macros should be used to
+manipulate these lists.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"SystemDefinedCharacterAttri=
butes"></a>6.9.5.=C3=82=C2=A0System Defined Character Attributes</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These are predefined in Hemlock:
+            </p>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"variablel=
ist">
+              <dl>
+                <dt>
+                  <span class=3D"term">"Whitespace"</span>
+                </dt>
+                <dd>
+                  <p>
+A value of 1 indicates the character is whitespace.
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">"Word Delimiter"</span>
+                </dt>
+                <dd>
+                  <p>
+A value of 1 indicates the character separates words (see section 15.3).
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">"Space"</span>
+                </dt>
+                <dd>
+                  <p>
+This is like Whitespace, but it should not include Newline. Hemlock
+uses this primarily for handling indentation on a line.
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">"Sentence Terminator"</span>
+                </dt>
+                <dd>
+                  <p>
+A value of 1 indicates these characters terminate sentences (see section 1=
5.3).
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">"Sentence Closing Char"</span>
+                </dt>
+                <dd>
+                  <p>
+A value of 1 indicates these delimiting characters, such as " or ),
+may follow a Sentence Terminator (see section 15.3).
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">"Paragraph Delimiter"</span>
+                </dt>
+                <dd>
+                  <p>
+A value of 1 indicates these characters delimit paragraphs when they
+begin a line (see section 15.3).
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">"Page Delimiter"</span>
+                </dt>
+                <dd>
+                  <p>
+A value of 1 indicates this character separates logical pages (see
+section 15.4) when it begins a line.
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">"Lisp Syntax"</span>
+                </dt>
+                <dd>
+                  <p>
+This uses symbol values from the following:
+                        </p>
+                </dd>
+              </dl>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"itemizedl=
ist">
+              <ul class=3D"itemizedlist" type=3D"disc">
+                <li class=3D"listitem">
+                  <p>
+nil  These characters have no interesting properties.
+                    </p>
+                </li>
+              </ul>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"itemizedl=
ist">
+              <ul class=3D"itemizedlist" type=3D"disc">
+                <li class=3D"listitem">
+                  <p>
+:space  These characters act like whitespace and should not include Newlin=
e.
+                    </p>
+                </li>
+              </ul>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"itemizedl=
ist">
+              <ul class=3D"itemizedlist" type=3D"disc">
+                <li class=3D"listitem">
+                  <p>
+:newline  This is the Newline character.
+                    </p>
+                </li>
+              </ul>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"itemizedl=
ist">
+              <ul class=3D"itemizedlist" type=3D"disc">
+                <li class=3D"listitem">
+                  <p>
+:open-paren  This is ( character.
+                    </p>
+                </li>
+              </ul>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"itemizedl=
ist">
+              <ul class=3D"itemizedlist" type=3D"disc">
+                <li class=3D"listitem">
+                  <p>
+:close-paren  This is ) character.
+                    </p>
+                </li>
+              </ul>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"itemizedl=
ist">
+              <ul class=3D"itemizedlist" type=3D"disc">
+                <li class=3D"listitem">
+                  <p>
+:prefix  This is a character that is a part of any form it precedes for ex=
ample, the single quote, '.
+                    </p>
+                </li>
+              </ul>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"itemizedl=
ist">
+              <ul class=3D"itemizedlist" type=3D"disc">
+                <li class=3D"listitem">
+                  <p>
+:string-quote  This is the character that quotes a string literal, ".
+                    </p>
+                </li>
+              </ul>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"itemizedl=
ist">
+              <ul class=3D"itemizedlist" type=3D"disc">
+                <li class=3D"listitem">
+                  <p>
+:char-quote  This is the character that escapes a single character, \.
+                    </p>
+                </li>
+              </ul>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"itemizedl=
ist">
+              <ul class=3D"itemizedlist" type=3D"disc">
+                <li class=3D"listitem">
+                  <p>
+:comment  This is the character that makes a comment with the rest of the =
line,;.
+                    </p>
+                </li>
+              </ul>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"itemizedl=
ist">
+              <ul class=3D"itemizedlist" type=3D"disc">
+                <li class=3D"listitem">
+                  <p>
+:constituent  These characters are constitute symbol names.
+                    </p>
+                </li>
+              </ul>
+            </div>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingControllingTheDisplay"></a>6.10.=C3=82=C2=A0Controlling the Disp=
lay</h2>
+              </div>
+            </div>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"Views"></a>6.10.1.=C3=82=C2=
=A0Views</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+A <code class=3D"code">hemlock-view</code> represents the GUI object(s) us=
ed to display the contents
+of a buffer.  Conceptually it consists of a text buffer, a
+modeline for semi-permanent status info, an echo area for transient
+status info, and a text input area for reading prompted
+input. (Currently the last two are conflated, i.e. text input happens
+in the echo area).
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The API for working with hemlock-views is not fully
+defined yet.  If you need to work with views beyond what's listed
+here, you will probably need to get in the sources and find some
+internal functions to call.
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"CurrentView"></a>6.10.2.=C3=
=82=C2=A0The Current View</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_current-view"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        current-view =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id695569=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+current-view returns the hemlock view which is the target of the
+currently executing command.  This is usually the frontmost hemlock
+window in the current application.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"ViewFunctions"></a>6.10.3.=
=C3=82=C2=A0View Functions</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_hemlock-view-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        hemlock-view-p object =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id695636=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns t if object is a hemlock view, otherwise nil.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_hemlock-view-buffer"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        hemlock-view-buffer view =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id695691=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the buffer which is displayed in the view.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"CursorPositions"></a>6.10.4=
.=C3=82=C2=A0Cursor Positions</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_mark-column"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        mark-column mark =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id695757=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the X position at which mark would be displayed,
+supposing its line was displayed on an infinitely wide screen.  This
+takes into consideration strange characters such as tabs.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_move-to-column"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        move-to-column mark column <em xmlns=3D"http://www=
.w3.org/1999/xhtml" class=3D"varname">&optional</em> line =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id695816=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function is analogous to move-to-position (page 5), except that
+it moves mark to the position on line which corresponds to the
+specified column.  If the line would not reach to the specified column, th=
en nil is
+returned and mark is not modified.  Note that since a character may be
+displayed on more than one column on the screen, several different
+values of column may cause mark to be moved to the same position.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"Redisplay"></a>6.10.5.=C3=
=82=C2=A0Redisplay</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The display of the buffer contents on the screen is updated at the
+end of each command.  The following function can be used to control
+the scroll position of the buffer in the view.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_set-scroll-position"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        set-scroll-position how <em xmlns=3D"http://www.w3=
.org/1999/xhtml" class=3D"varname">&optional</em> what =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id695893=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Normally, after a command that changes the contents of the buffer
+or the selection (i.e. the active region), the event handler repositions
+the view so that the selection is visible, scrolling the buffer as
+necessary.  Calling this function tells the system to not do that,
+and instead to position the buffer in a particular way.  <code class=3D"co=
de">how</code> can
+be one of the following:
+                    </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:center-selection</span></i>---
+This causes the selection (or the point) to be centered in the visible are=
a.  <code xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"code">what</code>=
 is ignored.
+
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:page-up</span></i>---
+This causes the previous page of the buffer to be shown <code xmlns=3D"htt=
p://www.w3.org/1999/xhtml" class=3D"code">what</code> is ignored.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:page-down</span></i>---
+This causes the next page of the buffer to be shown. <code xmlns=3D"http:/=
/www.w3.org/1999/xhtml" class=3D"code">what</code> is ignored.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:lines-up</span></i>---
+ This causes <code xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"code">w=
hat</code> previous lines to be scrolled in at the top. <code xmlns=3D"http=
://www.w3.org/1999/xhtml" class=3D"code">what</code> must be an integer.  =

+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:lines-down</span></i>---
+This causes <code xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"code">wh=
at</code> next lines to be scrolled in at the bottom. <code xmlns=3D"http:/=
/www.w3.org/1999/xhtml" class=3D"code">what</code> must be an integer.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:line</span></i>---
+ This causes the line containing <code xmlns=3D"http://www.w3.org/1999/xht=
ml" class=3D"code">what</code> to be scrolled to the top of the view. <code=
 xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"code">what</code> must be =
a mark.
+                                </p>
+                </div>
+              </div>
+            </p>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingLogicalKeyEvents"></a>6.11.=C3=82=C2=A0Logical Key-Events</h2>
+              </div>
+            </div>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"HemlockProgrammingLogicalKe=
yEventsIntroduction"></a>6.11.1.=C3=82=C2=A0Introduction</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Some primitives such as prompt-for-key (page 50) and commands such as
+Emacs query replace read key-events directly from the keyboard instead
+of using the command interpreter.  To encourage consistency between
+these commands and to make them portable and easy to customize, there
+is a mechanism for defininglogical key-events.  A logical key-event is
+a keyword which stands for some set of key-events.  The system
+globally interprets these key-events as indicators a particular
+action.  For example, the :help logical key-event represents the set of
+key-events that request help in a given Hemlock implementation. This
+mapping is a many-to-many mapping, not one-to-one, so a given logical
+key-event may have multiple corresponding actual key-events.  Also,
+any key-event may represent different logical key-events.
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"LogicalKeyEventFunctions"><=
/a>6.11.2.=C3=82=C2=A0Logical Key-Event Functions</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"v_logical-key-event-names"></a>
+                <strong>[Variable]</strong>
+                <br></br>
+                <code>
+                        *logical-key-event-names* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id696136=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This variable holds a string-table mapping all logical key-event names
+to the keyword identifying the logical key-event.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_define-logical-key-event"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        define-logical-key-event string-name documentation =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id696192=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function defines a new logical key-event with name string-name.
+Logical key-event operations take logical key-events
+arguments as a keyword whose name is string-name uppercased with
+spaces replaced by hyphens.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Documentation describes the action indicated by the logical key-event.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_logical-key-event-key-events"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        logical-key-event-key-events keyword =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id696253=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the list of key-events representing the logical
+key-event keyword.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_logical-key-event-name"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        logical-key-event-name keyword =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id696308=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_logical-key-event-documentation"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        logical-key-event-documentation keyword =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id696363=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These functions return the string name and documentation given
+to define-logical-key-event for logical key-event keyword.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_logical-key-event-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        logical-key-event-p key-event keyword =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id696419=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns t if key-event is the logical key-event
+keyword. This is setf-able establishing or disestablishing key-events
+as particular logical key-events. It is a error for keyword to be an
+undefined logical key-event.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"SystemDefinedLogicalKeyEven=
ts"></a>6.11.3.=C3=82=C2=A0System Defined Logical Key-Events</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+There are many default logical key-events, some of which are used by
+functions documented in this manual.  If a command wants to read a
+single key-event command that fits one of these descriptions then the
+key-event read should be compared to the corresponding logical
+key-event instead of explicitly mentioning the particular key-event in
+the code.  In many cases you can use the command-case (page 48) macro.
+It makes logical key-events easy to use and takes care of prompting
+and displaying help messages.
+            </p>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"itemizedl=
ist">
+              <ul class=3D"itemizedlist" type=3D"disc">
+                <li class=3D"listitem">
+                  <p>
+:abort Indicates the prompter should terminate its activity without perfor=
ming any closing actions of convenience, for example.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+:yes Indicates the prompter should take the action under consideration.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+:no Indicates the prompter should NOT take the action under consideration.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+:do-all Indicates the prompter should repeat the action under consideratio=
n as many times as possible.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+:do-once Indicates the prompter should execute the action under considerat=
ion once and then exit.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+:help Indicates the prompter should display some help information.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+:confirm Indicates the prompter should take any input provided or use the =
default if the user entered nothing.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+:quote Indicates the prompter should take the following key-event as itsel=
f without any sort of command interpretation.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+:keep Indicates the prompter should preserve something.
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+:y Indicates a short positive response
+                    </p>
+                </li>
+                <li class=3D"listitem">
+                  <p>
+:n Indicates a short negative response
+                    </p>
+                </li>
+              </ul>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Define a new logical key-event whenever:
+            </p>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"orderedli=
st">
+              <ol class=3D"orderedlist" type=3D"1">
+                <li class=3D"listitem">
+                  <p>
+The key-event concerned represents a general class of actions, and
+several commands may want to take a similar action of this type.
+                    </p>
+                </li>
+              </ol>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"orderedli=
st">
+              <ol class=3D"orderedlist" type=3D"1">
+                <li class=3D"listitem">
+                  <p>
+The exact key-event a command implementor chooses may generate
+violent taste disputes among users, and then the users can trivially
+change the command in their init files.
+                    </p>
+                </li>
+              </ol>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"orderedli=
st">
+              <ol class=3D"orderedlist" type=3D"1">
+                <li class=3D"listitem">
+                  <p>
+You are using <code class=3D"code">command-case</code> which prevents impl=
ementors from
+specifying non-standard characters for dispatching in otherwise
+possibly portable code, and you can define and set the logical
+key-event in a site dependent file where you can mention
+implementation dependent characters.
+                    </p>
+                </li>
+              </ol>
+            </div>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"EchoAre=
a"></a>6.12.=C3=82=C2=A0The Echo Area</h2>
+              </div>
+            </div>
+          </div>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Hemlock provides a number of facilities for displaying information and
+prompting the user for it.  Most of these work through a small area
+displayed at the bottom of the screen, called the Echo Area.
+        </p>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"EchoAreaFunctions"></a>6.12=
.1.=C3=82=C2=A0Echo Area Functions</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_clear-echo-area"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        clear-echo-area =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id696675=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Clears the echo area.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_message"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        message control-string <em xmlns=3D"http://www.w3.=
org/1999/xhtml" class=3D"varname">&rest</em> format-arguments =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id696733=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_loud-message"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        loud-message control-string <em xmlns=3D"http://ww=
w.w3.org/1999/xhtml" class=3D"varname">&rest</em> format-arguments =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id696791=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Displays a message in the echo area, replacing previous contents if any.
+loud-message is like message, but it also beeps.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_beep"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        beep =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id696847=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Gets the user's attention, typically by making a sound.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"PromptingFunctions"></a>6.1=
2.2.=C3=82=C2=A0Prompting Functions</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Prompting functions can be used to obtain short one-line input from the us=
er.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Cocoa note: Because of implementation restrictions, only one buffer at
+a time is allowed to read prompted input.  If a prompting function is
+invoked while a prompting operation is already in effect in another
+buffer, the attempt fails, telling the user "Buffer xxx is already
+waiting for input".
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Most of the prompting functions accept the following keyword arguments:
+            </p>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"variablel=
ist">
+              <dl>
+                <dt>
+                  <span class=3D"term">:must-exist</span>
+                </dt>
+                <dd>
+                  <p>
+If :must-exist has a non-nil value then the user is
+prompted until a valid response is obtained. If :must-exist is nil
+then return as a string whatever is input.  The default is t.
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">:default</span>
+                </dt>
+                <dd>
+                  <p>
+If null input is given when the user is prompted then this
+value is returned. If no default is given then some input must be
+given before anything interesting will happen.
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">:default-string</span>
+                </dt>
+                <dd>
+                  <p>
+If a :default is given then this is a string to be
+printed to indicate what the default is.  The default is some
+representation of the value for :default, for example for a buffer it
+is the name of the buffer.
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">:prompt</span>
+                </dt>
+                <dd>
+                  <p>
+This is the prompt string to display.
+                        </p>
+                </dd>
+                <dt>
+                  <span class=3D"term">:help</span>
+                </dt>
+                <dd>
+                  <p>
+This is similar to :prompt, except that it is displayed when the help
+command is typed during input.
+                        </p>
+                </dd>
+              </dl>
+            </div>
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"blockquot=
e">
+              <blockquote class=3D"blockquote">
+                <p>This may also be a function.  When called with no argum=
ents, it
+should either return a string which is the help text or perform some
+action to help the user, returning nil.
+            </p>
+              </blockquote>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_prompt-for-buffer"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        prompt-for-buffer <em xmlns=3D"http://www.w3.org/1=
999/xhtml" class=3D"varname">&key</em> :prompt :help :must-exist :defau=
lt :default-string =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697022=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Prompts with completion for a buffer name and returns the
+corresponding buffer.  If must-exist is nil, then it returns the input
+string if it is not a buffer name.  This refuses to accept the empty
+string as input when :default and :default-string are
+nil. :default-string may be used to supply a default buffer name
+when:default is nil, but when :must-exist is non-nil, it must name an
+already existing buffer.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_prompt-for-key-event"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        prompt-for-key-event <em xmlns=3D"http://www.w3.or=
g/1999/xhtml" class=3D"varname">&key</em> :prompt :help =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697084=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function prompts for a key-event returning immediately when the
+user types the next key-event.  command-case (page 48) is more useful
+for most purposes. When appropriate, use logical key-events (page 45).
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_prompt-for-key"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        prompt-for-key <em xmlns=3D"http://www.w3.org/1999=
/xhtml" class=3D"varname">&key</em> :prompt :help :must-exist :default =
:default-string =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697144=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function prompts for a key, a vector of key-events, suitable for
+passing to any of the functions that manipulate key bindings (page
+29).  If must-exist is true, then the key must be bound in the current
+environment, and the command currently bound is returned as the second
+value.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_prompt-for-file"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        prompt-for-file <em xmlns=3D"http://www.w3.org/199=
9/xhtml" class=3D"varname">&key</em> :prompt :help :must-exist :default=
 :default-string =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697205=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function prompts for an acceptable filename.  "Acceptable" means
+that it is a legal filename, and it exists if must-exist is
+non-nil. prompt-for-file returns a Common Lisp pathname.  If the file
+exists as entered, then this returns it, otherwise it is merged with
+default as by merge-pathnames.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_prompt-for-integer"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        prompt-for-integer <em xmlns=3D"http://www.w3.org/=
1999/xhtml" class=3D"varname">&key</em> :prompt :help :must-exist :defa=
ult :default-string =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697266=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function prompts for a possibly signed integer. If must-exist is
+nil, then prompt-for-integer returns the input as a string if it is
+not a valid integer.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_prompt-for-keyword"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        prompt-for-keyword string-tables <em xmlns=3D"http=
://www.w3.org/1999/xhtml" class=3D"varname">&key</em> :prompt :help :mu=
st-exist :default :default-string =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697325=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function prompts for a keyword with completion, using the string
+tables in the list string-tables. If must-exist is non-nil, then the
+result must be an unambiguous prefix of a string in one of the
+string-tables, and the returns the complete string even if only a
+prefix of the full string was typed.  In addition, this returns the
+value of the corresponding entry in the string table as the second
+value.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+If must-exist is nil, then this function returns the string exactly as
+entered.  The difference between prompt-for-keyword with must-exist
+nil, and prompt-for-string, is the user may complete the input using
+the Complete Parse and Complete Field commands.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_prompt-for-expression"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        prompt-for-expression <em xmlns=3D"http://www.w3.o=
rg/1999/xhtml" class=3D"varname">&key</em> :prompt :help :must-exist :d=
efault :default-string =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697392=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function reads a Lisp expression.  If must-exist is nil, and a
+read error occurs, then this returns the string typed.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_prompt-for-string"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        prompt-for-string <em xmlns=3D"http://www.w3.org/1=
999/xhtml" class=3D"varname">&key</em> :prompt :help :default :default-=
string =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697452=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function prompts for a string; this cannot fail.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_prompt-for-variable"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        prompt-for-variable <em xmlns=3D"http://www.w3.org=
/1999/xhtml" class=3D"varname">&key</em> :prompt :help :must-exist :def=
ault :default-string =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697511=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function prompts for a variable name.  If must-exist is non-nil,
+then the string must be a variable defined in the current environment,
+in which case the symbol name of the variable found is returned as the
+second value.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_prompt-for-y-or-n"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        prompt-for-y-or-n <em xmlns=3D"http://www.w3.org/1=
999/xhtml" class=3D"varname">&key</em> :prompt :help :must-exist :defau=
lt :default-string =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697571=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This prompts for logical key events :Y or :N, returning t or nil without w=
aiting for
+confirmation.  When the user types a confirmation key, this returns
+default if it is supplied.  If must-exist is nil, this returns
+whatever key-event the user first types; however, if the user types
+one of the above key-events, this returns t or nil. This is analogous to
+the Common Lisp function y-or-n-p.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_prompt-for-yes-or-no"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        prompt-for-yes-or-no <em xmlns=3D"http://www.w3.or=
g/1999/xhtml" class=3D"varname">&key</em> :prompt :help :must-exist :de=
fault :default-string =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697633=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function is to prompt-for-y-or-n as yes-or-no-p is to
+y-or-n-p. "Yes" or "No" must be typed out in full and confirmation
+must be given.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_command-case"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        command-case ({key value}*){({({tag}*) | tag} help=
 {form}*)}* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697688=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This macro is analogous to the Common Lisp case macro. Commands such
+as Help use this to get a key-event, translate it to a
+character, and then to dispatch on the character to some case.  In
+addition to character dispatching, this supports logical key-events
+(page 45) by using the input key-event directly without translating it
+to a character.  Since the description of this macro is rather
+complex, first consider the following example:
+</p>
+                  <pre xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"pro=
gramlisting">
+
+(defcommand "Save All Buffers" (p)
+  "Give the User a chance to save each modified buffer."
+  (dolist (b *buffer-list*)
+    (select-buffer-command () b)
+    (when (buffer-modified b)
+      (command-case (:prompt "Save this buffer: [Y] "
+			     :help "Save buffer, or do something else:")
+	((:yes :confirm)
+	 "Save this buffer and go on to the next."
+	 (save-file-command () b))
+	(:no "Skip saving this buffer, and go on to the next.")
+	((:exit #\p) "Punt this silly loop."
+	 (return nil))))))
+
+</pre>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+command-case prompts for a key-event and then executes the code in the
+first branch with a logical key-event or a character (called tags)
+matching the input.  Each character must be a standard-character, one
+that satisfies the Common Lisp standard-char-p predicate, and the
+dispatching mechanism compares the input key-event to any character
+tags by mapping the key-event to a character with
+ext:key-event-char. If the tag is a logical key-event, then the search
+for an appropriate case compares the key-event read with the tag
+using logical-key-event-p.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+All uses of command-case have two default cases, :help and :abort. You
+can override these easily by specifying your own branches that include
+these logical key-event tags.  The :help branch displays in a pop-up
+window the a description of the valid responses using the variously
+specified help strings. The :abort branch signals an editor-error.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The key/value arguments control the prompting.  The following are valid va=
lues:
+                    </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:help</span></i>---
+The default :help case displays this string in a pop-up window.  In
+addition it formats a description of the valid input including each
+case's help string.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:prompt</span></i>---
+This is the prompt used when reading the key-event.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:bind</span></i>---
+This specifies a variable to which the prompting mechanism binds the
+input key-event. Any case may reference this variable.  If you wish
+to know what character corresponds to the key-event, use
+key-event-char.
+                                </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Instead of specifying a tag or list of tags, you may use t. This
+becomes the default branch, and its forms execute if no other branch
+is taken, including the default :help and :abort cases. This option has
+no helpstring, and the default :help case does not describe the default
+branch.  Every command-case has a default branch; if none is specified,
+the macro includes one that beep's and reprompt's (see below).
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Within the body of command-case, there is a defined reprompt macro. It
+causes the prompting mechanism and dispatching mechanism to
+immediately repeat without further execution in the current branch.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"ControlOfParsingBehavior"><=
/a>6.12.3.=C3=82=C2=A0Control of Parsing Behavior</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_beep_on_ambiguity"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Beep On Ambiguity (initial value t) =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697855=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+If this variable is true, then an attempt to complete a parse which is
+ambiguous will result in a "beep".
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"DefiningNewPromptingFunctio=
ns"></a>6.12.4.=C3=82=C2=A0Defining New Prompting Functions</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Prompting functionality is implemented by the function parse-for-something
+in cooperation with commands defined in "Echo Area" mode on the buffer ass=
ociated
+with the echo area. You can implement new prompting functions by invoking
+parse-for-something with appropriate arguments.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_parse-for-something"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        parse-for-something <em xmlns=3D"http://www.w3.org=
/1999/xhtml" class=3D"varname">&key</em> =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id697931=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function enters a mode reading input from the user and echoing it in =
the echo area, and
+returns a value when done.  The input is managed by commands bound in "Ech=
o Area" mode on the
+buffer associated with the echo area.  The following  keyword arguments ar=
e accepted:
+                    </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term"><code class=3D"code">:verification-function</code></span></i>---
+This is invoked by the Confirm Parse command (page 52).  It does most of
+the work when parsing prompted input. Confirm Parse (page 52) calls it
+with one argument, which is the string that the user typed so far.
+The function should return a list of values which are to be the result
+of the recursive edit, or nil indicating that the parse failed.  In order
+to return zero values, a non-nil second value may be returned along with
+a nil first value.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term"><code class=3D"code">:string-tables</code></span></i>---
+This is the list of string-tables, if any, that pertain to this parse.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term"><code class=3D"code">:value-must-exist</code></span></i>---
+This is referred to by the verification function, and possibly some of the
+commands.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term"><code class=3D"code">:default</code></span></i>---
+The string representing the default object when prompting the user.
+Confirm Parse supplies this to the parse verification function when the
+user input is empty.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term"><code class=3D"code">:default-string</code></span></i>---
+When prompting the user, if :default is not specified, Hemlock displays
+this string as a representation of the default object; for example,
+when prompting for a buffer, this argument would be a default buffer name.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term"><code class=3D"code">:type</code></span></i>---
+The kind of parse, e.g. :file, :keyword, :string. This tells the completion
+commands how to do completion, with :string disabling completion.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term"><code class=3D"code">:prompt</code></span></i>---
+The prompt to display to the user.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term"><code class=3D"code">:help</code></span></i>---
+The help string or function being used for the current parse.
+                                </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"SomeEchoAreaCommands"></a>6=
.12.5.=C3=82=C2=A0Some Echo Area Commands</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These are some of the Echo Area commands that coordinate with the
+prompting routines. Hemlock binds other commands specific to the Echo
+Area, but they are uninteresting to mention here, such as deleting to
+the beginning of the line or deleting backwards a word.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"c_help_on_parse"></a>
+                <strong>[Command]</strong>
+                <br></br>
+                <code>
+                        Help On Parse (bound to Home, C-_ in Echo Area mod=
e) =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698153=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Display the help text for the parse currently in progress.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"c_complete_keyword"></a>
+                <strong>[Command]</strong>
+                <br></br>
+                <code>
+                        Complete Keyword (bound to Escape in Echo Area mod=
e) =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698208=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This attempts to complete the current region.
+It signals an editor-error if the input is ambiguous or incorrect.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"c_complete_field"></a>
+                <strong>[Command]</strong>
+                <br></br>
+                <code>
+                        Complete Field (bound to Space in Echo Area mode) =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698264=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Similar to <code class=3D"code">Complete Keyword</code>, but only attempts=
 to complete up to and
+including the first character in the keyword with a non-zero
+:parse-field-separator attribute. If there is no field separator then
+attempt to complete the entire keyword.  If it is not a keyword parse
+then just self-insert.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"c_confirm_parse"></a>
+                <strong>[Command]</strong>
+                <br></br>
+                <code>
+                        Confirm Parse (bound to Return in Echo Area mode) =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698324=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Call the verification function with the current input.  If it
+returns a non-nil value then that is returned as the value of the
+parse.  A parse may return a nil value if the verification function
+returns a non-nil second value.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Files">=
</a>6.13.=C3=82=C2=A0Files</h2>
+              </div>
+            </div>
+          </div>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This chapter discusses ways to read and write files at various
+levels---at marks, into regions, and into buffers.  This also treats
+automatic mechanisms that affect the state of buffers in which files
+are read.
+        </p>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"FileOptionsAndTypeHooks"></=
a>6.13.1.=C3=82=C2=A0File Options and Type Hooks</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The user specifies file options with a special syntax on the first
+line of a file.  If the first line contains the string "-*-",
+then Hemlock interprets the text between the first such occurrence and
+the second, which must be contained in one line , as a list of
+"option: value" pairs separated by semicolons.  The following is a
+typical example:
+</p>
+            <pre xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"programli=
sting">
+
+;;; -*- Mode: Lisp, Editor; Package: Hemlock -*-
+
+</pre>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">See the Hemlock User=
's Manual for more details and predefined options.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+File type hooks are executed when Hemlock reads a file into a buffer
+based on the type of the pathname.  When the user specifies a Mode
+file option that turns on a major mode, Hemlock ignores type hooks.
+This mechanism is mostly used as a simple means for turning on some
+appropriate default major mode.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_define-file-option"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        define-file-option name (buffer value) {declaratio=
n}* {form}* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698428=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This defines a new file option with the string
+name name. Buffer and value specify variable names for the buffer and the
+option value string, and forms are evaluated with these bound.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_define-file-type-hook"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        define-file-type-hook type-list (buffer type) {dec=
laration}* {form}* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698485=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This defines some code that process-file-options(below) executes when
+the file options fail to set a major mode.  This associates each type,
+a string, in type-list with a routine that binds buffer to the
+buffer the file is in and type to the type of the pathname.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_process-file-options"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        process-file-options buffer <em xmlns=3D"http://ww=
w.w3.org/1999/xhtml" class=3D"varname">&optional</em> pathname =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698545=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This checks for file options in buffer and invokes handlers if there
+are any. Pathname defaults to buffer's pathname but may be nil. If
+there is no Mode file option that specifies a major mode, and pathname
+has a type, then this tries to invoke the appropriate file type
+hook. read-buffer-file calls this.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"PathnamesAndBuffers"></a>6.=
13.2.=C3=82=C2=A0Pathnames and Buffers</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+There is no good way to uniquely identify buffer names and pathnames.
+However, Hemlock has one way of mapping pathnames to buffer names that
+should be used for consistency among customizations and primitives.
+Independent of this, Hemlock provides a means for consistently
+generating prompting defaults when asking the user for pathnames.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_pathname-to-buffer-name"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        pathname-to-buffer-name pathname =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698619=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a string of the form "file-namestring directory-name=
string".
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_pathname_defaults"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Pathname Defaults (initial value (pathname "gazonk=
.del")) =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698675=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_last_resort_pathname_defaults_function"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Last Resort Pathname Defaults Function =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698730=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_last_resort_pathname_defaults"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Last Resort Pathname Defaults (initial value (path=
name "gazonk")) =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698785=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These variables control the computation of default pathnames when
+needed for promting the user.  Pathname Defaults is a sticky
+default. See the Hemlock User's Manual for more details.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_buffer-default-pathname"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        buffer-default-pathname buffer =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698841=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This returns Buffer Pathname if it is bound.  If it is not bound, and
+buffer's name is composed solely of alphnumeric characters, then
+return a pathname formed from buffer's name.  If buffer's name has
+other characters in it, then return the value of Last Resort Pathname
+Defaults Function called on buffer.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"FileGroups"></a>6.13.3.=C3=
=82=C2=A0File Groups</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Currently Hemlock doesn't have support for file groups.
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"FileReadingAndWriting"></a>=
6.13.4.=C3=82=C2=A0File Reading and Writing</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Common Lisp pathnames are used by the file primitives.  For probing,
+checking write dates, and so forth, all of the Common Lisp file
+functions are available.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_read-file"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        read-file pathname mark =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698930=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This inserts the file named by pathname at mark.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_write-file"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        write-file region pathname <em xmlns=3D"http://www=
.w3.org/1999/xhtml" class=3D"varname">&key</em> :keep-backup :append =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id698988=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_keep_backup_files"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Keep Backup Files (initial value nil) =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id699043=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function writes the contents of region to the file named by
+pathname. This writes region using a stream as if it were opened with
+:if-exists supplied as :rename-and-delete.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+When keep-backup, which defaults to the value of Keep Backup Files, is
+non-nil, this opens the stream as if :if-exists were :rename. If
+append is non-nil, this writes the file as if it were opened
+with:if-exists supplied as :append.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This signals an error if both append and keep-backup are supplied as non-n=
il.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_write-buffer-file"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        write-buffer-file buffer pathname =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id699109=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_write_file_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Write File Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id699163=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_add_newline_at_eof_on_writing_file"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Add Newline at EOF on Writing File (initial value =
:ask-user) =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id699218=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+write-buffer-file writes buffer to the file named by pathname
+including the following:
+                    </p>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+It assumes pathname is somehow related to buffer's pathname: if
+the buffer's write date is not the same as pathname's, then this
+prompts the user for confirmation before overwriting the file.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+It consults Add Newline at EOF on Writing File (see Hemlock User's
+Manual for possible values) and interacts with the user if
+necessary.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+It sets Pathname Defaults, and after using write-file,
+marks buffer unmodified.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+It updates Buffer's pathname and write date.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+It renames the buffer according to the new pathname if possible.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+It invokes Write File Hook.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Write File Hook is a list of functions that take the newly written buffer =
as an argument.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_read-buffer-file"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        read-buffer-file pathname buffer =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id699353=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_read_file_hook"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Read File Hook =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id699407=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+read-buffer-file deletes buffer's region and uses read-file to read
+pathname into it, including the following:
+                    </p>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+It sets buffer's write date to the file's write date if the file
+exists; otherwise, it messages that this is a new file and sets
+buffer's write date to nil.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+It moves buffer's point to the beginning.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+It sets buffer's unmodified status.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+It sets buffer's pathname to the result of probing pathname if the
+file exists; otherwise, this function sets buffer's pathname to the
+result of merging pathname with default-directory.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+It sets Pathname Defaults to the result of the previous item.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+It processes the file options.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+It invokes Read File Hook.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Read File Hook is a list functions that take two arguments---the
+buffer read into and whether the file existed, t if so.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingHemlockSLispEnvironment"></a>6.14.=C3=82=C2=A0Hemlock's Lisp Env=
ironment</h2>
+              </div>
+            </div>
+          </div>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This chapter is sort of a catch all for any functions and variables
+which concern Hemlock's interaction with the outside world.
+        </p>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"EnteringAndLeavingTheEditor=
"></a>6.14.1.=C3=82=C2=A0Entering and Leaving the Editor</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_ed"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        ed <em xmlns=3D"http://www.w3.org/1999/xhtml" clas=
s=3D"varname">&optional</em> x =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id699584=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This a standard Common Lisp function.  If x is supplied and is a
+string or pathname, the file specified by x is visited in a hemlock
+view (opening a new window if necessary, otherwise bringing an
+existing window with the file to the front), and the hemlock view
+object is the return value from the function.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+If x is null, a new empty hemlock view is created and returned.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+If x is a symbol or a setf function name, it attempts to
+edit the definition of the name.  In this last case, the
+function returns without waiting for the operation to complete
+(for example, it might put up a non-modal dialog asking the
+user to select one of multiple definitions) and hence the
+return value is always NIL.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"KeyboardInput"></a>6.14.2.=
=C3=82=C2=A0Keyboard Input</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"v_key-event-history"></a>
+                <strong>[Variable]</strong>
+                <br></br>
+                <code>
+                        *key-event-history* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id699663=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This is a Hemlock ring buffer (see page 70) that holds the last 60
+key-events received.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_last-key-event-typed"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        last-key-event-typed =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id699718=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the last key-event the user typed to invoke the curr=
ent command.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_last-char-typed"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        last-char-typed =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id699772=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the character corresponding to the last key event ty=
ped.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"HemlockStreams"></a>6.14.3.=
=C3=82=C2=A0Hemlock Streams</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+It is possible to create streams which output to or get input from a
+buffer. This mechanism is quite powerful and permits easy interfacing
+of Hemlock to Lisp.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Note that operations on these streams operate directly on buffers,
+therefore they have the same restrictions as described <a class=3D"ulink" =
href=3D"HemlockProgrammer/Buffers" target=3D"_top">here</a>
+for interacting with buffers from outside of the GUI thread.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_make-hemlock-output-stream"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        make-hemlock-output-stream mark <em xmlns=3D"http:=
//www.w3.org/1999/xhtml" class=3D"varname">&optional</em> buffered =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id699859=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a stream that inserts at mark all
+output directed to it.  It works best if mark is a left-inserting mark.
+Buffered controls whether the stream is buffered or not, and its valid val=
ues
+are the following keywords:
+                    </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:none</span></i>---
+No buffering is done.  This is the default.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:line</span></i>---
+The buffer is flushed whenever a newline is written or when it is
+explicitly done with force-output.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:full</span></i>---
+The stream is only brought up to date when it is explicitly
+done with force-output
+                                </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_hemlock-output-stream-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        hemlock-output-stream-p object =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id699969=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns t if object is a hemlock-output-stream object.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_make-hemlock-region-stream"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        make-hemlock-region-stream region =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700024=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a stream from which the text in
+region can be read.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_hemlock-region-stream-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        hemlock-region-stream-p object =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700080=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns t if object is a hemlock-region-stream object.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_with-input-from-region"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        with-input-from-region (var region) {declaration}*=
 {form}* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700136=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+While evaluating forms, binds var to a stream which returns input from reg=
ion.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_with-output-to-mark"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        with-output-to-mark (var mark [buffered]) {declara=
tion}* {form}* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700191=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+During the evaluation of the forms, binds var to a stream which inserts
+output at the permanent mark.  Buffered has the same meaning as for
+make-hemlock-output-stream.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_with-pop-up-display"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        with-pop-up-display (var <em xmlns=3D"http://www.w=
3.org/1999/xhtml" class=3D"varname">&key</em> height name) {declaration=
}* {form}* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700250=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This macro executes forms in a context with var bound to a
+stream. Hemlock collects output to this stream and tries to pop up a
+display of the appropriate height containing all the output.  When
+height is supplied, Hemlock creates the pop-up display immediately,
+forcing output on line breaks.  This is useful for displaying information
+of temporary interest.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"InterfaceToTheErrorSystem">=
</a>6.14.4.=C3=82=C2=A0Interface to the Error System</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Hemlock commands are executed from an event handler in the initial
+Cocoa thread.  They are executed within a
+ccl::with-standard-abort-handling form, which means cl:abort,
+ccl:abort-break, ccl:throw-cancel will abort the current command only
+and exit the event handler in an orderly fashion.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+In addition, for now, lisp errors during command execution dump a
+backtrace in the system console and are otherwise handled as if by
+                <code class=3D"code">handle-lisp-errors</code> below, whic=
h means it is not possible to debug
+errors at the point of the error.  Once Clozure CL has better support
+for debugging errors in the initial Cocoa thread, better Hemlock error
+handling will be provided that will allow for some way to debug.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_editor-error"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        editor-error <em xmlns=3D"http://www.w3.org/1999/x=
html" class=3D"varname">&rest</em> args =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700339=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function is called to report minor errors to the user.  These are
+errors that a normal user could encounter in the course of editing,
+such as a search failing or an attempt to delete past the end of the
+buffer. This function simply aborts the current command.  Any args
+specified are used to format an error message to be placed in the echo
+area.  This function never returns.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_handle-lisp-errors"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        handle-lisp-errors {form}* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700397=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Within the body of this macro any Lisp errors that occur are handled
+by displaying an error message in a dialog and aborting the current
+command, leaving the error text in the echo area.  This macro should
+be wrapped around code which may get an error due to some action of
+the user --- for example, evaluating code fragments on the behalf of
+and supplied by the user.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"DefinitionEditing"></a>6.14=
.5.=C3=82=C2=A0Definition Editing</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Hemlock provides commands for finding the definition of a function
+or variable and placing the user at the definition in a buffer. A
+function is provided to allow invoking this functionality outside
+of Hemlock.  Note that this function is unusual in that it is
+it is safe to call outside of the command interpreter, and in fact
+it can be called from any thread.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_edit-definition"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        edit-definition name =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700472=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function tries to find the definition of <code class=3D"code">name</c=
ode>, create
+or activate the window containing it, and scroll the view
+to show the definition.  If there are multiple definitions
+available, the user is given a choice of which one to
+use.  This function may return before the operation is complete.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"EventScheduling"></a>6.14.6=
.=C3=82=C2=A0Event Scheduling</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+No Event Scheduling functionality is provided at this time.
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"Miscellaneous"></a>6.14.7.=
=C3=82=C2=A0Miscellaneous</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_in-lisp"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        in-lisp {form}* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700559=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This evaluates forms inside handle-lisp-errors. It also binds
+*package* to the package named by Current Package if it is
+non-nil. Use this when evaluating Lisp code on behalf of the user.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_do-alpha-chars"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        do-alpha-chars (var kind [result]) {form}* =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700615=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This iterates over alphabetic characters in Common Lisp binding var to
+each character in order as specified under character relations in
+Common Lisp the Language. Kind is one of:lower, :upper, or :both. When
+the user supplies :both, lowercase characters are processed first.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingHighLevelTextPrimitives"></a>6.15.=C3=82=C2=A0High-Level Text Pr=
imitives</h2>
+              </div>
+            </div>
+          </div>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This chapter discusses primitives that operate on higher level text
+forms than characters and words. For English text, there are functions
+that know about sentence and paragraph structures, and for Lisp
+sources, there are functions that understand this language. This
+chapter also describes mechanisms for organizing file sections into
+logical pages and for formatting text forms.
+        </p>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"IndentingText"></a>6.15.1.=
=C3=82=C2=A0Indenting Text</h3>
+                </div>
+              </div>
+            </div>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_indent_function"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Indent Function       (initial value tab-to-tab-st=
op)  =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700701=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The value of this variable determines how indentation is done, and it
+is a function which is passed a mark as its argument. The function
+should indent the line that the mark points to. The function may move
+the mark around on the line. The mark will be :left-inserting. The
+default simply inserts a tab character at the mark. A function for
+Lisp mode probably moves the mark to the beginning of the line,
+deletes horizontal whitespace, and computes some appropriate
+indentation for Lisp code.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_indent_with_tabs"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Indent with Tabs (initial value nil)     =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700760=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_spaces_per_tab"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Spaces per Tab        (initial value 8)        =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700814=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Indent with Tabs should be true if indenting should use tabs
+whenever possible. If nil, the default, it only uses spaces.
+Spaces per Tab defines the size of a tab.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_indent-region"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        indent-region         region   =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700870=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_indent-region-for-commands"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        indent-region-for-commands    region   =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700925=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+indent-region invokes the value of Indent Function on every line of
+region. indent-region-for-commands uses indent-region but first saves
+the region for the Undo command.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_delete-horizontal-space"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        delete-horizontal-space       mark     =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id700982=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This deletes all characters on either side of mark with a Space attribute =
(see section 9.5)
+of 1.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"LispTextBuffers"></a>6.15.2=
.=C3=82=C2=A0Lisp Text Buffers</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Hemlock bases its Lisp primitives on parsing a block of the buffer and
+annotating lines as to what kind of Lisp syntax occurs on the line or
+what kind of form a mark might be in (for example, string, comment,
+list, etc.). These do not work well if the block of parsed forms is
+exceeded when moving marks around these forms, but the block that gets
+parsed is somewhat programmable.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+There is also a notion of a top level form which this documentation
+often uses synonymously with defun, meaning a Lisp form occurring in a
+source file delimited by parentheses with the opening parenthesis at
+the beginning of some line. The names of the functions include this
+inconsistency.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_pre-command-parse-check"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        pre-command-parse-check       mark for-sure    =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701062=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_parse_start_function"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Parse Start Function  (initial value start-of-pars=
e-block)     =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701116=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_parse_end_function"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Parse End Function    (initial value end-of-parse-=
block)       =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701170=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_minimum_lines_parsed"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Minimum Lines Parsed          (initial value 50)  =
     =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701225=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_maximum_lines_parsed"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Maximum Lines Parsed          (initial value 500) =
     =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701279=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_defun_parse_goal"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Defun Parse Goal      (initial value 2)        =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701334=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+pre-command-parse-check calls Parse Start Function and Parse End
+Function on mark to get two marks. It then parses all the lines
+between the marks including the complete lines they point into. When
+for-sure is non-nil, this parses the area regardless of any cached
+information about the lines. Every command that uses the following
+routines calls this before doing so.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The default values of the start and end variables use Minimum Lines
+Parsed, Maximum Lines Parsed, and Defun Parse Goal to determine how
+big a region to parse. These two functions always include at least the
+minimum number of lines before and after the mark passed to them. They
+try to include Defun Parse Goal number of top level forms before and
+after the mark passed them, but these functions never return marks
+that include more than the maximum number of lines before or after the
+mark passed to them.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_form-offset"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        form-offset   mark count       =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701399=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This tries to move mark count forms forward if positive or -count
+forms backwards if negative. Mark is always moved. If there were
+enough forms in the appropriate direction, this returns mark,
+otherwise nil.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_top-level-offset"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        top-level-offset      mark count       =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701456=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This tries to move mark count top level forms forward if positive or
+-count top level forms backwards if negative. If there were enough top
+level forms in the appropriate direction, this returns mark, otherwise
+nil. Mark is moved only if this is successful.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_mark-top-level-form"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        mark-top-level-form   mark1 mark2      =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701512=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This moves mark1 and mark2 to the beginning and end, respectively, of
+the current or next top level form. Mark1 is used as a reference to
+start looking. The marks may be altered even if unsuccessful. If
+successful, return mark2, else nil. Mark2 is left at the beginning of
+the line following the top level form if possible, but if the last
+line has text after the closing parenthesis, this leaves the mark
+immediately after the form.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_defun-region"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        defun-region          mark     =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701570=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This returns a region around the current or next defun with respect to
+mark. Mark is not used to form the region. If there is no appropriate
+top level form, this signals an editor-error. This calls
+pre-command-parse-check first.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_inside-defun-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        inside-defun-p        mark     =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701626=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_start-defun-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        start-defun-p         mark     =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701680=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These return, respectively, whether mark is inside a top level form or
+at the beginning of a line immediately before a character whose Lisp
+Syntax (see section 9.5) value is :opening-paren.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_forward-up-list"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        forward-up-list       mark     =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701736=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_backward-up-list"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        backward-up-list      mark     =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701791=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Respectively, these move mark immediately past a character whose Lisp
+Syntax (see section 9.5) value is :closing-paren or immediately before
+a character whose Lisp Syntax value is :opening-paren.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_valid-spot"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        valid-spot    mark forwardp    =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701846=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This returns t or nil depending on whether the character indicated by
+mark is a valid spot. When forwardp is set, use the character after
+mark and vice versa. Valid spots exclude commented text, inside
+strings, and character quoting.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_defindent"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        defindent     name count       =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701902=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This defines the function with name to have count special
+arguments. indent-for-lisp, the value of Indent Function (see section
+15.1) in Lisp mode, uses this to specially indent these arguments. For
+example, do has two, with-open-file has one, etc. There are many of
+these defined by the system including definitions for special Hemlock
+forms. Name is a simple-string, case insensitive and purely textual
+(that is, not read by the Lisp reader); therefore, "with-a-mumble" is
+distinct from "mumble:with-a-mumble".
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"EnglishTextBuffers"></a>6.1=
5.3.=C3=82=C2=A0English Text Buffers</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This section describes some routines that understand basic English
+language forms.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_word-offset"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        word-offset   mark count       =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id701976=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This moves mark count words forward (if positive) or backwards (if
+negative). If mark is in the middle of a word, that counts as one. If
+there were count (-count if negative) words in the appropriate
+direction, this returns mark, otherwise nil. This always moves mark. A
+word lies between two characters whose Word Delimiter attribute value
+is 1 (see section 9.5).
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_sentence-offset"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        sentence-offset       mark count       =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702034=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This moves mark count sentences forward (if positive) or backwards (if neg=
ative). If mark is in the middle of a sentence, that counts as one. If ther=
e were count (-count if negative) sentences in the appropriate direction, t=
his returns mark, otherwise nil. This always moves mark. =

+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+A sentence ends with a character whose Sentence Terminator attribute
+is 1 followed by two spaces, a newline, or the end of the buffer. The
+terminating character is optionally followed by any number of
+characters whose Sentence Closing Char attribute is 1. A sentence
+begins after a previous sentence ends, at the beginning of a
+paragraph, or at the beginning of the buffer.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_paragraph-offset"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        paragraph-offset      mark count <em xmlns=3D"http=
://www.w3.org/1999/xhtml" class=3D"varname">&optional</em> prefix      =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702101=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_paragraph_delimiter_function"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Paragraph Delimiter Function          (initial val=
ue )         =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702157=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This moves mark count paragraphs forward (if positive) or backwards
+(if negative). If mark is in the middle of a paragraph, that counts as
+one. If there were count (-count if negative) paragraphs in the
+appropriate direction, this returns mark, otherwise nil. This only
+moves mark if there were enough paragraphs.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Paragraph Delimiter Function holds a function that takes a mark,
+typically at the beginning of a line, and returns whether or not the
+current line should break the paragraph. default-para-delim-function
+returns t if the next character, the first on the line, has a
+Paragraph Delimiter attribute value of 1. This is typically a space,
+for an indented paragraph, or a newline, for a block style. Some modes
+require a more complicated determinant; for example, Scribe modes adds
+some characters to the set and special cases certain formatting
+commands.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Prefix defaults to Fill Prefix (see section 15.5), and the right
+prefix is necessary to correctly skip paragraphs. If prefix is
+non-nil, and a line begins with prefix, then the scanning process
+skips the prefix before invoking the Paragraph Delimiter
+Function. Note, when scanning for paragraph bounds, and prefix is
+non-nil, lines are potentially part of the paragraph regardless of
+whether they contain the prefix; only the result of invoking the
+delimiter function matters.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The programmer should be aware of an idiom for finding the end of the
+current paragraph. Assume paragraphp is the result of moving mark one
+paragraph, then the following correctly determines whether there
+actually is a current paragraph:
+</p>
+                  <pre xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"pro=
gramlisting">
+
+(or paragraphp
+  (and (last-line-p mark)
+       (end-line-p mark)
+       (not (blank-line-p (mark-line mark))))) =

+
+</pre>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+In this example mark is at the end of the last paragraph in the
+buffer, and there is no last newline character in the
+buffer. paragraph-offset would have returned nil since it could not
+skip any paragraphs since mark was at the end of the current and last
+paragraph. However, you still have found a current paragraph on which
+to operate. mark-paragraph understands this problem.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_mark-paragraph"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        mark-paragraph        mark1 mark2      =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702249=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This marks the next or current paragraph, setting mark1 to the
+beginning and mark2 to the end. This uses Fill Prefix (see section
+15.5). Mark1 is always on the first line of the paragraph, regardless
+of whether the previous line is blank. Mark2 is typically at the
+beginning of the line after the line the paragraph ends on, this
+returns mark2 on success. If this cannot find a paragraph, then the
+marks are left unmoved, and nil is returned.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"LogicalPages"></a>6.15.4.=
=C3=82=C2=A0Logical Pages</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Logical pages are not supported at this time.
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"Filling"></a>6.15.5.=C3=82=
=C2=A0Filling</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Filling is an operation on text that breaks long lines at word
+boundaries before a given column and merges shorter lines together in
+an attempt to make each line roughly the specified length. This is
+different from justification which tries to add whitespace in awkward
+places to make each line exactly the same length. Hemlock's filling
+optionally inserts a specified string at the beginning of each
+line. Also, it eliminates extra whitespace between lines and words,
+but it knows two spaces follow sentences (see section 15.3).
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_fill_column"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Fill Column   (initial value 75)       =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702342=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"hv_fill_prefix"></a>
+                <strong>[Hemlock Variable]</strong>
+                <br></br>
+                <code>
+                        Fill Prefix   (initial value nil)      =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702396=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+These variables hold the default values of the prefix and column
+arguments to Hemlock's filling primitives. If Fill Prefix is nil, then
+there is no fill prefix.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_fill-region"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        fill-region   region <em xmlns=3D"http://www.w3.or=
g/1999/xhtml" class=3D"varname">&optional</em> prefix column   =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702455=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This deletes any blank lines in region and fills it according to
+prefix and column. Prefix and column default to Fill Prefix and Fill
+Column.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_fill-region-by-paragraphs"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        fill-region-by-paragraphs     region <em xmlns=3D"=
http://www.w3.org/1999/xhtml" class=3D"varname">&optional</em> prefix c=
olumn   =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702515=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This finds paragraphs (see section 15.3) within region and fills them
+with fill-region. This ignores blank lines between paragraphs. Prefix
+and column default to Fill Prefix and Fill Column.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingUtilities"></a>6.16.=C3=82=C2=A0Utilities</h2>
+              </div>
+            </div>
+          </div>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This chapter describes a number of utilities for manipulating some
+types of objects Hemlock uses to record information. String-tables are
+used to store names of variables, commands, modes, and buffers. Ring
+lists can be used to provide a kill ring, recent command history, or
+other user-visible features.
+        </p>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"StringTableFunctions"></a>6=
.16.1.=C3=82=C2=A0String-table Functions</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+String tables are similar to Common Lisp hash tables in that they
+associate a value with an object. There are a few useful differences:
+in a string table the key is always a case insensitive string, and
+primitives are provided to facilitate keyword completion and
+recognition. Any type of string may be added to a string table, but
+the string table functions always return simple-string's.
+            </p>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+A string entry in one of these tables may be thought of as being
+separated into fields or keywords. The interface provides keyword
+completion and recognition which is primarily used to implement some
+Echo Area commands. These routines perform a prefix match on a
+field-by-field basis allowing the ambiguous specification of earlier
+fields while going on to enter later fields. While string tables may
+use any string-char as a separator, the use of characters other than
+space may make the Echo Area commands fail or work unexpectedly.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_make-string-table"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        make-string-table  		 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702614=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function creates an empty string table that uses separator as the
+character, which must be a string-char, that distinguishes
+fields. Initial-contents specifies an initial set of strings and their
+values in the form of a dotted a-list, for example:
+</p>
+                  <pre xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"pro=
gramlisting">
+
+'(("Global" . t) ("Mode" . t) ("Buffer" . t))
+
+</pre>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_string-table-p"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        string-table-p  	string-table	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702677=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns t if string-table is a string-table object,
+otherwise nil.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_string-table-separator"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        string-table-separator  	string-table	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702732=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the separator character given to
+make-string-table.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_delete-string"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        delete-string  	string table	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702787=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_clrstring"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        clrstring  	table	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702841=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+delete-string removes any entry for string from the string-table
+table, returning t if there was an entry. clrstring removes all
+entries from table.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_getstring"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        getstring  	string table	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702897=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns as multiple values, first the value
+corresponding to the string if it is found and nil if it isn't, and
+second t if it is found and nil if it isn't.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This may be set with setf to add a new entry or to store a new value
+for a string. It is an error to try to insert a string with more than
+one field separator character occurring contiguously.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_complete-string"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        complete-string  	string tables	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id702957=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function completes string as far as possible over the list of
+tables, returning five values. It is an error for tables to have
+different separator characters. The five return values are as follows:
+                    </p>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+The maximal completion of the string or nil if there is none.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+An indication of the usefulness of the returned string:
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:none</span></i>---
+There is no completion of string.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:complete</span></i>---
+The completion is a valid entry, but other valid
+completions exist too. This occurs when the supplied string is an
+entry as well as initial substring of another entry.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:unique</span></i>---
+The completion is a valid entry and unique.
+                                </p>
+                  <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">:ambiguous</span></i>---
+The completion is invalid; get-string would return nil
+and nil if given the returned string.
+                                </p>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+The value of the string when the completion is :unique or
+:complete, otherwise nil.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+An index, or nil, into the completion returned, indicating where
+the addition of a single field to string ends. The command Complete
+Field uses this when the completion contains the addition to string
+of more than one field.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                  <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"ite=
mizedlist">
+                    <ul class=3D"itemizedlist" type=3D"disc">
+                      <li class=3D"listitem">
+                        <p>
+An index to the separator following the first ambiguous field when
+the completion is :ambiguous or :complete, otherwise nil.
+                            </p>
+                      </li>
+                    </ul>
+                  </div>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_find-ambiguous"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        find-ambiguous  	string table	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id703147=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml"> </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_find-containing"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        find-containing  	string table	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id703201=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+find-ambiguous returns a list in alphabetical order of all the strings
+in table matching string. This considers an entry as matching if each
+field in string, taken in order, is an initial substring of the
+entry's fields; entry may have fields remaining.
+                    </p>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+find-containing is similar, but it ignores the order of the fields in
+string, returning all strings in table matching any permutation of the
+fields in string.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"m_do-strings"></a>
+                <strong>[Macro]</strong>
+                <br></br>
+                <code>
+                        do-strings  	(string-var value-var table result) d=
eclaration tag statement	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id703263=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This macro iterates over the strings in table in alphabetical
+order. On each iteration, it binds string-var to an entry's string and
+value-var to an entry's value.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"RingFunctions"></a>6.16.2.=
=C3=82=C2=A0Ring Functions</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+There are various purposes in an editor for which a ring of values can
+be used, so Hemlock provides a general ring buffer type. It is used
+for maintaining a ring of killed regions (see section 4.3), a ring of
+marks (see section 3.1), or a ring of command strings which various
+modes and commands maintain as a history mechanism.
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_make-ring"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        make-ring  	length <em xmlns=3D"http://www.w3.org/=
1999/xhtml" class=3D"varname">&optional</em> delete-function	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id703340=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Makes an empty ring object capable of holding up to length Lisp
+objects. Delete-function is a function that each object is passed to
+before it falls off the end. Length must be greater than zero.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_ringp"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        ringp  	ring	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id703396=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns t if ring is a ring object, otherwise nil.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_ring-length"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        ring-length  	ring	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id703450=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns as multiple-values the number of elements which ring currently
+holds and the maximum number of elements which it may hold.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_ring-ref"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        ring-ref  	ring index	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id703506=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Returns the index'th item in the ring, where zero is the index of the
+most recently pushed. This may be set with setf.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_ring-push"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        ring-push  	object ring	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id703561=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Pushes object into ring, possibly causing the oldest item to go away.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_ring-pop"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        ring-pop  	ring	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id703616=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Removes the most recently pushed object from ring and returns it. If
+the ring contains no elements then an error is signalled.
+                    </p>
+                </div>
+              </div>
+            </p>
+            <p>
+              <div class=3D"refentrytitle">
+                <a id=3D"f_rotate-ring"></a>
+                <strong>[Function]</strong>
+                <br></br>
+                <code>
+                        rotate-ring  	ring offset	 =

+                    </code>
+              </div>
+              <div class=3D"refentrytitle"></div>
+            </p>
+            <p>
+              <div>
+                <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id703672=
"></a>
+                  <div class=3D"header">Description:</div>
+                  <p xmlns=3D"http://www.w3.org/1999/xhtml">
+With a positive offset, rotates ring forward that many times. In a
+forward rotation the index of each element is reduced by one, except
+the one which initially had a zero index, which is made the last
+element. A negative offset rotates the ring the other way.
+                    </p>
+                </div>
+              </div>
+            </p>
+          </div>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"UndoingCommands"></a>6.16.3=
.=C3=82=C2=A0Undoing commands</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">
+No API to the undo facility is provided at this time.
+            </p>
+          </div>
+        </div>
+        <div class=3D"sect1" lang=3D"en" xml:lang=3D"en">
+          <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+            <div>
+              <div>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Hemlock=
ProgrammingMiscellaneous"></a>6.17.=C3=82=C2=A0Miscellaneous</h2>
+              </div>
+            </div>
+          </div>
+          <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This chapter is somewhat of a catch-all for comments and features that
+don't fit well anywhere else.
+        </p>
+          <div class=3D"sect2" lang=3D"en" xml:lang=3D"en">
+            <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
+              <div>
+                <div>
+                  <h3 class=3D"title"><a id=3D"KeyEvents"></a>6.17.1.=C3=
=82=C2=A0Key-events</h3>
+                </div>
+              </div>
+            </div>
+            <div class=3D"sect3" lang=3D"en" xml:lang=3D"en">
+              <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
+                <div>
+                  <div>
+                    <h4 class=3D"title"><a id=3D"KeyEventsIntroduction"></=
a>6.17.1.1.=C3=82=C2=A0Introduction</h4>
+                  </div>
+                </div>
+              </div>
+              <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The canonical representation of editor input is a key-event
+structure. Users can bind commands to keys (see section 1.3.1), which
+are non-empty sequences of key-events. A key-event consists of
+an identifying token known as a keysym and a field of bits
+representing modifiers. Users define keysyms by supplying names
+that reflect the legends on their keyboard's keys.
+Users define modifier names similarly, but the system chooses the
+bit and mask for recognizing the modifier. You can
+use keysym and modifier names to textually specify key-events and
+Hemlock keys in a #k syntax. The following are some examples:
+</p>
+              <pre xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"program=
listing">
+
+#k"C-u"
+#k"Control-u"
+#k"c-m-z"
+#k"control-x meta-d"
+#k"a"
+#k"A"
+#k"Linefeed"
+
+</pre>
+              <p xmlns=3D"http://www.w3.org/1999/xhtml">
+                </p>
+              <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This is convenient for use within code and in init files containing
+bind-key calls.
+                </p>
+              <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The #k syntax is delimited by double quotes, but the system parses the
+contents rather than reading it as a Common Lisp string. Within the
+double quotes, spaces separate multiple key-events. A single key-event
+optionally starts with modifier names terminated by hyphens. Modifier
+names are alphabetic sequences of characters which the system uses
+case-insensitively. Following modifiers is a keysym name, which is
+case-insensitive if it consists of multiple characters, but if the
+name consists of only a single character, then it is case-sensitive.
+                </p>
+              <p xmlns=3D"http://www.w3.org/1999/xhtml">
+You can escape special characters --- hyphen, double quote, open angle
+bracket, close angle bracket, and space --- with a backslash, and you
+can specify a backslash by using two contiguously. You can use angle
+brackets to enclose a keysym name with many special characters in
+it. Between angle brackets appearing in a keysym name position, there
+are only two special characters, the closing angle bracket and
+backslash.
+                </p>
+            </div>
+            <div class=3D"sect3" lang=3D"en" xml:lang=3D"en">
+              <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
+                <div>
+                  <div>
+                    <h4 class=3D"title"><a id=3D"KeyEventsInterface"></a>6=
.17.1.2.=C3=82=C2=A0Interface</h4>
+                  </div>
+                </div>
+              </div>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_define-keysym"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            define-keysym  	keysym preferred-name <em xmln=
s=3D"http://www.w3.org/1999/xhtml" class=3D"varname">&rest</em> other-n=
ames	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7038=
31"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function establishes a mapping from preferred-name to keysym for
+purposes of #k syntax. Other-names also map to keysym, but the system
+uses preferred-name when printing key-events. The names are
+case-insensitive simple-strings; however, if the string contains a
+single character, then it is used case-sensitively. Redefining a
+keysym or re-using names has undefined effects.
+                        </p>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Keysym can be any object, but generally it is either an integer
+representing the window-system code for the event, or a keyword
+which allows the mapping of the keysym to its code to be defined
+separately.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_define-keysym-code"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            define-keysym-code keysym code =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7038=
95"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+Defines the window-system code for the key event which in Hemlock is
+represented by keysym.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_define-mouse-keysym"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            define-mouse-keysym  	button keysym name shift=
ed-bit event-key	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7039=
51"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function defines keysym named name for key-events representing
+mouse click events. Shifted-bit is a defined modifier name that
+translate-mouse-key-event sets in the key-event it returns whenever
+the shift bit is set in an incoming event.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_name-keysym"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            name-keysym  	name	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7040=
09"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the keysym named name. If name is unknown, this
+returns nil.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_keysym-names"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            keysym-names  	keysym	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7040=
65"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the list of all names for keysym. If keysym is
+undefined, this returns nil.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_keysym-preferred-name"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            keysym-preferred-name  	keysym	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7041=
21"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This returns the preferred name for keysym, how it is typically
+printed. If keysym is undefined, this returns nil.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_define-key-event-modifier"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            define-key-event-modifier  	long-name short-na=
me	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7041=
78"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This establishes long-name and short-name as modifier names for
+purposes of specifying key-events in #k syntax. The names are
+case-insensitive strings. If either name is already defined,
+this signals an error.
+                        </p>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+The system defines the following default modifiers (first the long
+name, then the short name):
+                        </p>
+                    <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"i=
temizedlist">
+                      <ul class=3D"itemizedlist" type=3D"disc">
+                        <li class=3D"listitem">
+                          <p>
+"Hyper", "H"
+                                </p>
+                        </li>
+                        <li class=3D"listitem">
+                          <p>
+"Super", "S"
+                                </p>
+                        </li>
+                        <li class=3D"listitem">
+                          <p>
+"Meta", "M"
+                                </p>
+                        </li>
+                        <li class=3D"listitem">
+                          <p>
+"Control", "C"
+                                </p>
+                        </li>
+                        <li class=3D"listitem">
+                          <p>
+"Shift", "Shift"
+                                </p>
+                        </li>
+                        <li class=3D"listitem">
+                          <p>
+"Lock", "Lock"
+                                </p>
+                        </li>
+                      </ul>
+                    </div>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"v_all-modifier-names"></a>
+                  <strong>[Variable]</strong>
+                  <br></br>
+                  <code>
+                            *all-modifier-names*  		 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7042=
93"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This variable holds all the defined modifier names.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_make-key-event-bits"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            make-key-event-bits  	<em xmlns=3D"http://www.=
w3.org/1999/xhtml" class=3D"varname">&rest</em> modifier-names	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7043=
53"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns bits suitable for make-key-event from the
+supplied modifier-names. If any name is undefined, this signals an
+error.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_key-event-modifier-mask"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            key-event-modifier-mask  	modifier-name	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7044=
10"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a mask for modifier-name. This mask is suitable
+for use with key-event-bits. If modifier-name is undefined, this
+signals an error.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_key-event-bits-modifiers"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            key-event-bits-modifiers  	bits	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7044=
67"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This returns a list of key-event modifier names, one for each modifier
+set in bits.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_make-key-event"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            make-key-event  	object bits	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7045=
23"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns a key-event described by object with
+bits. Object is one of keysym, string, or key-event. When object is a
+key-event, this uses key-event-keysym. You can form bits with
+make-key-event-bits or key-event-modifier-mask.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_key-event-p"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            key-event-p  	object	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7045=
81"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns whether object is a key-event.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_key-event-bits"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            key-event-bits  	key-event	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7046=
37"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the bits field of a key-event.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_key-event-keysym"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            key-event-keysym  	key-event	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7046=
92"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the keysym field of a key-event.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_char-key-event"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            char-key-event  	character	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7047=
48"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the key-event associated with character. You can
+associate a key-event with a character by setf-ing this form.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_key-event-char"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            key-event-char  	key-event	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7048=
05"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns the character associated with key-event. You can
+associate a character with a key-event by setf'ing this form. The
+system defaultly translates key-events in some implementation
+dependent way for text insertion; for example, under an ASCII system,
+the key-event #k"C-h", as well as #k"backspace" would map to the
+Common Lisp character that causes a backspace.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_key-event-bit-p"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            key-event-bit-p  	key-event bit-name	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7048=
64"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This function returns whether key-event has the bit set named by
+bit-name. This signals an error if bit-name is undefined.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"m_do-alpha-key-events"></a>
+                  <strong>[Macro]</strong>
+                  <br></br>
+                  <code>
+                            do-alpha-key-events  	(var kind <em xmlns=3D"h=
ttp://www.w3.org/1999/xhtml" class=3D"varname">&optional</em> result) f=
orm	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7049=
24"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This macro evaluates each form with var bound to a key-event
+representing an alphabetic character. Kind is one of :lower, :upper,
+or :both, and this binds var to each key-event in order a-z A-Z.
+When :both is specified, this processes lowercase letters
+first.
+                        </p>
+                  </div>
+                </div>
+              </p>
+              <p>
+                <div class=3D"refentrytitle">
+                  <a id=3D"f_pretty-key-string"></a>
+                  <strong>[Function]</strong>
+                  <br></br>
+                  <code>
+                            pretty-key-string  	key <em xmlns=3D"http://ww=
w.w3.org/1999/xhtml" class=3D"varname">&optional</em> stream long-names=
-p	 =

+                        </code>
+                </div>
+                <div class=3D"refentrytitle"></div>
+              </p>
+              <p>
+                <div>
+                  <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
+                    <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id7049=
85"></a>
+                    <div class=3D"header">Description:</div>
+                    <p xmlns=3D"http://www.w3.org/1999/xhtml">
+This returns a string representing key, a key-event or vector of key-event=
s, in a
+user-expected fashion. Long-names-p indicates whether
+modifiers should be described by their long or short name.
+                        </p>
+                  </div>
+                </div>
+              </p>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div xmlns=3D"http://www.w3.org/TR/xhtml1/transitional" class=3D"cha=
pter" lang=3D"en" xml:lang=3D"en">
+        <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
+          <div>
+            <div>
+              <h2 class=3D"title"><a id=3D"Programming-with-Threads"></a>C=
hapter=C3=82=C2=A07.=C3=82=C2=A0Programming with Threads</h2>
+            </div>
+          </div>
+        </div>
+        <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"toc">
+          <dl>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#Threads-overview">7.1. Threads Overview</a>
               </span>
             </dt>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#Threads-Dictionary">6.7. Threads Dictionary</a>
+                <a href=3D"#Intentionally--Missing-Functionality">7.2. (In=
tentionally) Missing Functionality</a>
+              </span>
+            </dt>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#Implementation-Decisions-and-Open-Questions">7=
.3. Implementation Decisions and Open Questions</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#Thread-Stack-Sizes">7.3.1. Thread Stack Si=
zes</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#id651576">7.3.2.  As of August 2003:</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#Porting-Code-from-the-Old-Thread-Model">7.4. P=
orting Code from the Old Thread Model</a>
+              </span>
+            </dt>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#Background-Terminal-Input">7.5. Background Ter=
minal Input</a>
+              </span>
+            </dt>
+            <dd>
+              <dl>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#backgrount-ti-overview">7.5.1. Overview</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#background-terminal-example">7.5.2. An exa=
mple</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#A-more-elaborate-example-">7.5.3. A more e=
laborate example.</a>
+                  </span>
+                </dt>
+                <dt>
+                  <span class=3D"sect2">
+                    <a href=3D"#Summary">7.5.4. Summary</a>
+                  </span>
+                </dt>
+              </dl>
+            </dd>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#The-Threads-which-CCL-Uses-for-Its-Own-Purpose=
s">7.6. The Threads which Clozure CL Uses for Its Own Purposes</a>
+              </span>
+            </dt>
+            <dt>
+              <span class=3D"sect1">
+                <a href=3D"#Threads-Dictionary">7.7. Threads Dictionary</a>
               </span>
             </dt>
           </dl>
@@ -7178,7 +17992,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Threads=
-overview"></a>6.1.=C3=82=C2=A0Threads Overview</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Threads=
-overview"></a>7.1.=C3=82=C2=A0Threads Overview</h2>
               </div>
             </div>
           </div>
@@ -7300,7 +18114,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Intenti=
onally--Missing-Functionality"></a>6.2.=C3=82=C2=A0(Intentionally) Missing =
Functionality</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Intenti=
onally--Missing-Functionality"></a>7.2.=C3=82=C2=A0(Intentionally) Missing =
Functionality</h2>
               </div>
             </div>
           </div>
@@ -7338,7 +18152,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Impleme=
ntation-Decisions-and-Open-Questions"></a>6.3.=C3=82=C2=A0Implementation De=
cisions and Open Questions</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Impleme=
ntation-Decisions-and-Open-Questions"></a>7.3.=C3=82=C2=A0Implementation De=
cisions and Open Questions</h2>
               </div>
             </div>
           </div>
@@ -7346,7 +18160,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"Thread-Stack-Sizes"></a>6.3=
.1.=C3=82=C2=A0Thread Stack Sizes</h3>
+                  <h3 class=3D"title"><a id=3D"Thread-Stack-Sizes"></a>7.3=
.1.=C3=82=C2=A0Thread Stack Sizes</h3>
                 </div>
               </div>
             </div>
@@ -7374,7 +18188,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"id480092"></a>6.3.2.=C3=82=
=C2=A0 As of August 2003:</h3>
+                  <h3 class=3D"title"><a id=3D"id651576"></a>7.3.2.=C3=82=
=C2=A0 As of August 2003:</h3>
                 </div>
               </div>
             </div>
@@ -7419,7 +18233,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Porting=
-Code-from-the-Old-Thread-Model"></a>6.4.=C3=82=C2=A0Porting Code from the =
Old Thread Model</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Porting=
-Code-from-the-Old-Thread-Model"></a>7.4.=C3=82=C2=A0Porting Code from the =
Old Thread Model</h2>
               </div>
             </div>
           </div>
@@ -7467,7 +18281,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Backgro=
und-Terminal-Input"></a>6.5.=C3=82=C2=A0Background Terminal Input</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Backgro=
und-Terminal-Input"></a>7.5.=C3=82=C2=A0Background Terminal Input</h2>
               </div>
             </div>
           </div>
@@ -7475,7 +18289,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"backgrount-ti-overview"></a=
>6.5.1.=C3=82=C2=A0Overview</h3>
+                  <h3 class=3D"title"><a id=3D"backgrount-ti-overview"></a=
>7.5.1.=C3=82=C2=A0Overview</h3>
                 </div>
               </div>
             </div>
@@ -7534,7 +18348,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"background-terminal-example=
"></a>6.5.2.=C3=82=C2=A0An example</h3>
+                  <h3 class=3D"title"><a id=3D"background-terminal-example=
"></a>7.5.2.=C3=82=C2=A0An example</h3>
                 </div>
               </div>
             </div>
@@ -7582,7 +18396,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"A-more-elaborate-example-">=
</a>6.5.3.=C3=82=C2=A0A more elaborate example.</h3>
+                  <h3 class=3D"title"><a id=3D"A-more-elaborate-example-">=
</a>7.5.3.=C3=82=C2=A0A more elaborate example.</h3>
                 </div>
               </div>
             </div>
@@ -7649,7 +18463,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"Summary"></a>6.5.4.=C3=82=
=C2=A0Summary</h3>
+                  <h3 class=3D"title"><a id=3D"Summary"></a>7.5.4.=C3=82=
=C2=A0Summary</h3>
                 </div>
               </div>
             </div>
@@ -7681,7 +18495,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"The-Thr=
eads-which-CCL-Uses-for-Its-Own-Purposes"></a>6.6.=C3=82=C2=A0The Threads w=
hich Clozure CL Uses for Its Own Purposes</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"The-Thr=
eads-which-CCL-Uses-for-Its-Own-Purposes"></a>7.6.=C3=82=C2=A0The Threads w=
hich Clozure CL Uses for Its Own Purposes</h2>
               </div>
             </div>
           </div>
@@ -7807,7 +18621,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Threads=
-Dictionary"></a>6.7.=C3=82=C2=A0Threads Dictionary</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Threads=
-Dictionary"></a>7.7.=C3=82=C2=A0Threads Dictionary</h2>
               </div>
             </div>
           </div>
@@ -7826,13 +18640,13 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id497648">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id669972">=
</a>
                 <div class=3D"header">Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---a list of all lisp processes (threads)
 		        known to Clozure CL.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id497674">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id669998">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns a list o=
f all lisp processes (threads) known
 	      to Clozure CL as of
@@ -7844,7 +18658,7 @@
 	      sense in which such a list can be accurate.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id497689">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670013">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist">
                   <a class=3D"xref" href=3D"#v_current-process" title=3D"V=
ariable *CURRENT-PROCESS*">
@@ -7872,7 +18686,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id497759">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670082">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">name</span></i>---a string, used to identify the process.</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">persistent</span></i>---if true, requests that information about =
the process
@@ -7915,7 +18729,7 @@
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">process</span></i>---the newly-created process.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id497951">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670276">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Creates and retu=
rns a new lisp process (thread) with the
 	      specified attributes. <em class=3D"varname">process</em> will not b=
egin
@@ -7936,7 +18750,7 @@
 	      is used.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498003">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670328">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_process-preset" title=3D"Function PROC=
ESS-PRESET"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-p=
reset</b></a>, <a class=3D"xref" href=3D"#f_process-enable" title=3D"Functi=
on PROCESS-ENABLE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">pr=
ocess-enable</b></a>, <a class=3D"xref" href=3D"#f_process-run-function" ti=
tle=3D"Function PROCESS-RUN-FUNCTION"><b xmlns=3D"http://www.w3.org/TR/xhtm=
l1/transitional">process-run-function</b></a></span>
               </div>
@@ -7955,7 +18769,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498081">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670407">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">process</span></i>---a lisp process (thread).</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---T if <em xmlns=3D"http://www.w3.org/1999/xhtm=
l" class=3D"varname">process</em> had been runnable
@@ -7965,7 +18779,7 @@
 		        transitioned from 0 to 1.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498135">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670461">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Suspends <em cla=
ss=3D"varname">process</em>, preventing it from
 	      running, and stopping it if it was already running. This is a fairly
@@ -7987,12 +18801,12 @@
 	    did.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498190">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670516">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_process-resume" title=3D"Function PROC=
ESS-RESUME"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-r=
esume</b></a>, <a class=3D"xref" href=3D"#f_process-suspend-count" title=3D=
"Function PROCESS-SUSPEND-COUNT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/tr=
ansitional">process-suspend-count</b></a></span>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498215">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670541">=
</a>
                 <div class=3D"header">Notes:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml"><span class=3D"f=
unction"><strong>process-suspend</strong></span> was previously called
 	      <span class=3D"function"><strong>process-disable</strong></span>.
@@ -8018,7 +18832,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498296">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670622">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">process</span></i>---a lisp process (thread).</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---T if <em xmlns=3D"http://www.w3.org/1999/xhtm=
l" class=3D"varname">process</em> had been suspended
@@ -8029,7 +18843,7 @@
 		      </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498350">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670675">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Undoes the effec=
t of a previous call to
 	      <a class=3D"xref" href=3D"#f_process-suspend" title=3D"Function PRO=
CESS-SUSPEND"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process=
-suspend</b></a>; if
@@ -8040,12 +18854,12 @@
 	      <em class=3D"varname">process</em>, to a minimum of 0.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498381">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670706">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_process-suspend" title=3D"Function PRO=
CESS-SUSPEND"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process=
-suspend</b></a>, <a class=3D"xref" href=3D"#f_process-suspend-count" title=
=3D"Function PROCESS-SUSPEND-COUNT"><b xmlns=3D"http://www.w3.org/TR/xhtml1=
/transitional">process-suspend-count</b></a></span>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498406">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670731">=
</a>
                 <div class=3D"header">Notes:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	      This was previously called PROCESS-ENABLE;
@@ -8071,7 +18885,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498471">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670797">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">process</span></i>---a lisp process (thread).</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---The number of "outstanding"
@@ -8081,7 +18895,7 @@
 		      </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498525">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670851">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">An "outstanding"=
 <a class=3D"xref" href=3D"#f_process-suspend" title=3D"Function PROCESS-SU=
SPEND"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-suspen=
d</b></a> call
 	      is one which has not yet been reversed by a call to
@@ -8096,7 +18910,7 @@
 	      0.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498574">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670900">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_process-suspend" title=3D"Function PRO=
CESS-SUSPEND"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process=
-suspend</b></a>, <a class=3D"xref" href=3D"#f_process-resume" title=3D"Fun=
ction PROCESS-RESUME"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional"=
>process-resume</b></a></span>
               </div>
@@ -8117,7 +18931,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498650">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id670977">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">process</span></i>---a lisp process (thread).</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">function</span></i>---a function, designated by itself or by a sy=
mbol
@@ -8128,7 +18942,7 @@
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---undefined.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498725">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671052">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Typically used t=
o initialize a newly-created or newly-reset
 	      process, setting things up so that when <em class=3D"varname">proce=
ss</em>
@@ -8142,7 +18956,7 @@
 	    </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498769">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671096">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-process" title=3D"Function MAKE-P=
ROCESS"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-process<=
/b></a>, <a class=3D"xref" href=3D"#f_process-enable" title=3D"Function PRO=
CESS-ENABLE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-=
enable</b></a>, <a class=3D"xref" href=3D"#f_process-run-function" title=3D=
"Function PROCESS-RUN-FUNCTION"><b xmlns=3D"http://www.w3.org/TR/xhtml1/tra=
nsitional">process-run-function</b></a></span>
               </div>
@@ -8163,7 +18977,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498852">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671178">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">process</span></i>---a lisp process (thread).</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">timeout</span></i>---a time interval in seconds.  May be any
@@ -8172,7 +18986,7 @@
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---undefined.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498913">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671240">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Tries to begin t=
he execution of <em class=3D"varname">process</em>.
 	      An error is signaled if <em class=3D"varname">process</em> has never
@@ -8189,12 +19003,12 @@
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">A process cannot=
 meaningfully attempt to enable itself.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498962">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671289">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-process" title=3D"Function MAKE-P=
ROCESS"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-process<=
/b></a>, <a class=3D"xref" href=3D"#f_process-preset" title=3D"Function PRO=
CESS-PRESET"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-=
preset</b></a>, <a class=3D"xref" href=3D"#f_process-run-function" title=3D=
"Function PROCESS-RUN-FUNCTION"><b xmlns=3D"http://www.w3.org/TR/xhtml1/tra=
nsitional">process-run-function</b></a></span>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id498993">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671320">=
</a>
                 <div class=3D"header">Notes:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">It would be nice=
 to have more discussion of what it means
 	      to synchronize with the process.</p>
@@ -8215,7 +19029,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id499108">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671435">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">name</span></i>---a string, used to identify the process.
 		        Passed to <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"=
function"><strong>make-process</strong></span>.</p>
@@ -8237,7 +19051,7 @@
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">process</span></i>---the newly-created process.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id499297">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671624">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Creates a lisp p=
rocess (thread) via
 	      <a class=3D"xref" href=3D"#f_make-process" title=3D"Function MAKE-P=
ROCESS"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-process<=
/b></a>,
@@ -8250,7 +19064,7 @@
 	    </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id499332">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671659">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-process" title=3D"Function MAKE-P=
ROCESS"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-process<=
/b></a>, <a class=3D"xref" href=3D"#f_process-preset" title=3D"Function PRO=
CESS-PRESET"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-=
preset</b></a>, <a class=3D"xref" href=3D"#f_process-enable" title=3D"Funct=
ion PROCESS-ENABLE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">p=
rocess-enable</b></a></span>
               </div>
@@ -8271,7 +19085,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502712">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671742">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">process</span></i>---a lisp process (thread).</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">function</span></i>---a function.
@@ -8284,7 +19098,7 @@
 		        NIL.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502805">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671835">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Arranges for <em=
 class=3D"varname">process</em>
 	      to apply <em class=3D"varname">function</em> to <em class=3D"varnam=
e">args</em> at
@@ -8315,7 +19129,7 @@
 	      to or enters lisp.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502879">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671909">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist">
                   <a class=3D"xref" href=3D"#m_without-interrupts" title=
=3D"Macro WITHOUT-INTERRUPTS">
@@ -8324,7 +19138,7 @@
                 </span>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502898">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671928">=
</a>
                 <div class=3D"header">Notes:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">It would probabl=
y be better for <em class=3D"varname">result</em>
 	      to always be NIL, since the present behavior is inconsistent.
@@ -8354,24 +19168,24 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502963">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674163">=
</a>
                 <div class=3D"header">Value Type:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">A lisp process (=
thread).</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502975">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674175">=
</a>
                 <div class=3D"header">Initial Value:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Bound separately=
 in each process, to that process itself.
 	    </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502986">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674186">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Used when lisp c=
ode needs to find out what process it is
 	      executing in.  Shouldn't be set by user code.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502998">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674198">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist">
                   <a class=3D"xref" href=3D"#f_all-processes" title=3D"Fun=
ction ALL-PROCESSES">
@@ -8395,14 +19209,14 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503068">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674269">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">process</span></i>---a lisp process (thread).</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">kill-option</span></i>---an internal argument, must be nil.</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---undefined.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503125">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674325">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Causes <em class=
=3D"varname">process</em> to cleanly exit
 	      from any ongoing computation and enter a state where it can be
@@ -8429,7 +19243,7 @@
 	      use of <a class=3D"xref" href=3D"#f_process-interrupt" title=3D"Fun=
ction PROCESS-INTERRUPT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transition=
al">process-interrupt</b></a>.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503192">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674392">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_process-kill" title=3D"Function PROCES=
S-KILL"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-kill<=
/b></a>, <a class=3D"xref" href=3D"#f_process-abort" title=3D"Function PROC=
ESS-ABORT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-ab=
ort</b></a></span>
               </div>
@@ -8449,14 +19263,14 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503265">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674465">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">process</span></i>---a lisp process (thread), which
 		      may not be the current process.</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---undefined.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503307">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674507">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	      Equivalent to calling (process-reset process) and
@@ -8464,7 +19278,7 @@
 	    </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503319">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674519">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_process-reset" title=3D"Function PROCE=
SS-RESET"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-res=
et</b></a>, <a class=3D"xref" href=3D"#f_process-enable" title=3D"Function =
PROCESS-ENABLE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">proce=
ss-enable</b></a></span>
               </div>
@@ -8484,13 +19298,13 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503392">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674592">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">process</span></i>---a lisp process (thread).</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---undefined.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503433">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674633">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	      Causes <em class=3D"varname">process</em> to cleanly exit
@@ -8498,7 +19312,7 @@
 	    </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503448">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674648">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_process-reset" title=3D"Function PROCE=
SS-RESET"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-res=
et</b></a>, <a class=3D"xref" href=3D"#f_process-abort" title=3D"Function P=
ROCESS-ABORT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process=
-abort</b></a></span>
               </div>
@@ -8520,13 +19334,13 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503531">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674731">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">process</span></i>---a lisp process (thread).</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">condition</span></i>---a lisp condition.  The default is NIL.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503572">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674772">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Entirely equival=
ent to calling
 	      (<a class=3D"xref" href=3D"#f_process-interrupt" title=3D"Function =
PROCESS-INTERRUPT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">pr=
ocess-interrupt</b></a> <em class=3D"varname">process</em>
@@ -8540,7 +19354,7 @@
 	      <em class=3D"varname">condition</em>.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503636">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674836">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_process-reset" title=3D"Function PROCE=
SS-RESET"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-res=
et</b></a>, <a class=3D"xref" href=3D"#f_process-kill" title=3D"Function PR=
OCESS-KILL"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-k=
ill</b></a></span>
               </div>
@@ -8559,19 +19373,19 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503694">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674894">=
</a>
                 <div class=3D"header">Value Type:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">A positive integ=
er.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503705">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674906">=
</a>
                 <div class=3D"header">Initial Value:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">The clock resolu=
tion of the OS scheduler.  Currently,
 	      both LinuxPPC and DarwinPPC yield an initial value of 100.
 	    </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503718">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674918">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">This value is or=
dinarily of marginal interest at best,
 	      but, for backward compatibility, some functions accept timeout
@@ -8579,7 +19393,7 @@
 	      ticks per second.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503730">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674931">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist">
                   <a class=3D"xref" href=3D"#f_process-wait-with-timeout" =
title=3D"Function PROCESS-WAIT-WITH-TIMEOUT">
@@ -8603,7 +19417,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503834">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675035">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">This information=
 is primarily for the benefit of
 	      debugging tools.  <em class=3D"varname">whostate</em> is a terse re=
port
@@ -8617,12 +19431,12 @@
 	    </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503876">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675077">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_process-wait" title=3D"Function PROCES=
S-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-wait<=
/b></a>, <a class=3D"xref" href=3D"#f_process-wait-with-timeout" title=3D"F=
unction PROCESS-WAIT-WITH-TIMEOUT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/=
transitional">process-wait-with-timeout</b></a>, <a class=3D"xref" href=3D"=
#m_with-terminal-input" title=3D"Macro WITH-TERMINAL-INPUT"><b xmlns=3D"htt=
p://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503907">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675107">=
</a>
                 <div class=3D"header">Notes:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">This should argu=
ably be SETFable, but doesn't seem to
 	      ever have been.</p>
@@ -8646,7 +19460,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503965">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675165">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Advises the OS s=
cheduler that the current thread has nothing
 	      useful to do and that it should try to find some other thread to
@@ -8655,12 +19469,12 @@
 	      occur.  For example, you could use a lock or semaphore.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id503979">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675179">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-lock" title=3D"Function MAKE-LOCK=
"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, =
<a class=3D"xref" href=3D"#f_make-read-write-lock" title=3D"Function MAKE-R=
EAD-WRITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-=
read-write-lock</b></a>, <a class=3D"xref" href=3D"#f_make-semaphore" title=
=3D"Function MAKE-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transi=
tional">make-semaphore</b></a>, <a class=3D"xref" href=3D"#f_process-input-=
wait" title=3D"Function PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.org/T=
R/xhtml1/transitional">process-input-wait</b></a>, <a class=3D"xref" href=
=3D"#f_process-output-wait" title=3D"Function PROCESS-OUTPUT-WAIT"><b xmlns=
=3D"http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, =
<a class=3D"xref" href=3D"#m_with-terminal-input" title=3D"Macro WITH-TERMI=
NAL-INPUT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">with-termi=
nal-input</b></a></span>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504027">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675227">=
</a>
                 <div class=3D"header">Notes:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">This is a holdov=
er from the days of cooperative
 	      multitasking.  All modern general-purpose operating systems use
@@ -8683,7 +19497,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504091">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675290">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">whostate</span></i>---a string, which will be the value of
 		        <a xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"xref" href=3D=
"#f_process-whostate" title=3D"Function PROCESS-WHOSTATE"><b xmlns=3D"http:=
//www.w3.org/TR/xhtml1/transitional">process-whostate</b></a>
@@ -8696,7 +19510,7 @@
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---NIL.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504170">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675369">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Causes the curre=
nt lisp process (thread) to repeatedly
 	      apply <em class=3D"varname">function</em> to
@@ -8713,7 +19527,7 @@
 	      or semaphore.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504206">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675405">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_process-whostate" title=3D"Function PR=
OCESS-WHOSTATE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">proce=
ss-whostate</b></a>, <a class=3D"xref" href=3D"#f_process-wait-with-timeout=
" title=3D"Function PROCESS-WAIT-WITH-TIMEOUT"><b xmlns=3D"http://www.w3.or=
g/TR/xhtml1/transitional">process-wait-with-timeout</b></a>, <a class=3D"xr=
ef" href=3D"#f_make-lock" title=3D"Function MAKE-LOCK"><b xmlns=3D"http://w=
ww.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class=3D"xref" href=
=3D"#f_make-read-write-lock" title=3D"Function MAKE-READ-WRITE-LOCK"><b xml=
ns=3D"http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a=
>, <a class=3D"xref" href=3D"#f_make-semaphore" title=3D"Function MAKE-SEMA=
PHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-semaphore=
</b></a>, <a class=3D"xref" href=3D"#f_process-input-wait" title=3D"Functio=
n PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional"=
>process-input-wait</b></a>, <a class=3D"xref" href=3D"#f_process-output-wa=
it" title=3D"Function PROCESS-OUTPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR=
/xhtml1/transitional">process-output-wait</b></a>, <a class=3D"xref" href=
=3D"#m_with-terminal-input" title=3D"Macro WITH-TERMINAL-INPUT"><b xmlns=3D=
"http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></spa=
n>
               </div>
@@ -8733,7 +19547,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504314">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675513">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">whostate</span></i>---a string, which will be the value of
 		        <a xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"xref" href=3D=
"#f_process-whostate" title=3D"Function PROCESS-WHOSTATE"><b xmlns=3D"http:=
//www.w3.org/TR/xhtml1/transitional">process-whostate</b></a>
@@ -8751,7 +19565,7 @@
 		        <em xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"varname">tic=
ks</em> has been exceeded.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504427">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675626">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">If <em class=3D"=
varname">ticks</em> is NIL, behaves exactly like
 	      <a class=3D"xref" href=3D"#f_process-wait" title=3D"Function PROCES=
S-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-wait<=
/b></a>, except for returning T.
@@ -8768,7 +19582,7 @@
 	      better alternatives should be used whenever possible.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504477">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675676">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#v_ticks-per-second" title=3D"Variable *T=
ICKS-PER-SECOND*"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">*ti=
cks-per-second*</b></a>, <a class=3D"xref" href=3D"#f_process-whostate" tit=
le=3D"Function PROCESS-WHOSTATE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/tr=
ansitional">process-whostate</b></a>, <a class=3D"xref" href=3D"#f_process-=
wait" title=3D"Function PROCESS-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtm=
l1/transitional">process-wait</b></a>, <a class=3D"xref" href=3D"#f_make-lo=
ck" title=3D"Function MAKE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/tr=
ansitional">make-lock</b></a>, <a class=3D"xref" href=3D"#f_make-read-write=
-lock" title=3D"Function MAKE-READ-WRITE-LOCK"><b xmlns=3D"http://www.w3.or=
g/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class=3D"xref" h=
ref=3D"#f_make-semaphore" title=3D"Function MAKE-SEMAPHORE"><b xmlns=3D"htt=
p://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class=3D"=
xref" href=3D"#f_process-input-wait" title=3D"Function PROCESS-INPUT-WAIT">=
<b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b=
></a>, <a class=3D"xref" href=3D"#f_process-output-wait" title=3D"Function =
PROCESS-OUTPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">=
process-output-wait</b></a>, <a class=3D"xref" href=3D"#m_with-terminal-inp=
ut" title=3D"Macro WITH-TERMINAL-INPUT"><b xmlns=3D"http://www.w3.org/TR/xh=
tml1/transitional">with-terminal-input</b></a></span>
               </div>
@@ -8788,14 +19602,14 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504594">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675793">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">body</span></i>---an implicit progn.</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---the primary value returned by
 		        <em xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"varname">bod=
y</em>.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504638">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675838">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Executes <em cla=
ss=3D"varname">body</em>
 	      in an environment in which <a class=3D"xref" href=3D"#f_process-int=
errupt" title=3D"Function PROCESS-INTERRUPT"><b xmlns=3D"http://www.w3.org/=
TR/xhtml1/transitional">process-interrupt</b></a>
@@ -8810,7 +19624,7 @@
 	      in some manner that's not reentrant.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504670">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675870">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist">
                   <a class=3D"xref" href=3D"#f_process-interrupt" title=3D=
"Function PROCESS-INTERRUPT">
@@ -8834,14 +19648,14 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504742">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675941">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">body</span></i>---an implicit progn.</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---the primary value returned by
 		        <em xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"varname">bod=
y</em>.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504786">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id675986">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Executes <em cla=
ss=3D"varname">body</em>
 	      in an environment in which <a class=3D"xref" href=3D"#f_process-int=
errupt" title=3D"Function PROCESS-INTERRUPT"><b xmlns=3D"http://www.w3.org/=
TR/xhtml1/transitional">process-interrupt</b></a>
@@ -8864,7 +19678,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504858">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676057">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">name</span></i>---any lisp object; saved as part of
 		        <em xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"varname">loc=
k</em>.  Typically a string or symbol
@@ -8874,7 +19688,7 @@
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">lock</span></i>---a newly-allocated object of type CCL:LOCK.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504910">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676110">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Creates and retu=
rns a lock object, which can
 	      be used to synchronize access to some shared resource.
@@ -8884,7 +19698,7 @@
 	      thread.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id504927">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676126">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#m_with-lock-grabbed" title=3D"Macro WITH=
-LOCK-GRABBED"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">with-l=
ock-grabbed</b></a>, <a class=3D"xref" href=3D"#f_grab-lock" title=3D"Funct=
ion GRAB-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">grab-l=
ock</b></a>, <a class=3D"xref" href=3D"#f_release-lock" title=3D"Function R=
ELEASE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">release-=
lock</b></a>, <a class=3D"xref" href=3D"#f_try-lock" title=3D"Function TRY-=
LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a=
>, <a class=3D"xref" href=3D"#f_make-read-write-lock" title=3D"Function MAK=
E-READ-WRITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">ma=
ke-read-write-lock</b></a>, <a class=3D"xref" href=3D"#f_make-semaphore" ti=
tle=3D"Function MAKE-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/tra=
nsitional">make-semaphore</b></a>, <a class=3D"xref" href=3D"#f_process-inp=
ut-wait" title=3D"Function PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.or=
g/TR/xhtml1/transitional">process-input-wait</b></a>, <a class=3D"xref" hre=
f=3D"#f_process-output-wait" title=3D"Function PROCESS-OUTPUT-WAIT"><b xmln=
s=3D"http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>,=
 <a class=3D"xref" href=3D"#m_with-terminal-input" title=3D"Macro WITH-TERM=
INAL-INPUT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">with-term=
inal-input</b></a></span>
               </div>
@@ -8904,7 +19718,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id505044">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676244">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">lock</span></i>---an object of type CCL:LOCK.</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">body</span></i>---an implicit progn.</p>
@@ -8912,7 +19726,7 @@
 		        <em xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"varname">bod=
y</em>.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id505104">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676303">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Waits until <em =
class=3D"varname">lock</em> is either free or
 	      owned by the calling
@@ -8923,7 +19737,7 @@
 	      is executed.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id505136">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676336">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-lock" title=3D"Function MAKE-LOCK=
"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, =
<a class=3D"xref" href=3D"#f_grab-lock" title=3D"Function GRAB-LOCK"><b xml=
ns=3D"http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>, <a class=
=3D"xref" href=3D"#f_release-lock" title=3D"Function RELEASE-LOCK"><b xmlns=
=3D"http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, <a clas=
s=3D"xref" href=3D"#f_try-lock" title=3D"Function TRY-LOCK"><b xmlns=3D"htt=
p://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a class=3D"xref" =
href=3D"#f_make-read-write-lock" title=3D"Function MAKE-READ-WRITE-LOCK"><b=
 xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b=
></a>, <a class=3D"xref" href=3D"#f_make-semaphore" title=3D"Function MAKE-=
SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-semap=
hore</b></a>, <a class=3D"xref" href=3D"#f_process-input-wait" title=3D"Fun=
ction PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitio=
nal">process-input-wait</b></a>, <a class=3D"xref" href=3D"#f_process-outpu=
t-wait" title=3D"Function PROCESS-OUTPUT-WAIT"><b xmlns=3D"http://www.w3.or=
g/TR/xhtml1/transitional">process-output-wait</b></a>, <a class=3D"xref" hr=
ef=3D"#m_with-terminal-input" title=3D"Macro WITH-TERMINAL-INPUT"><b xmlns=
=3D"http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></=
span>
               </div>
@@ -8942,12 +19756,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id505249">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676449">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">lock</span></i>---an object of type CCL:LOCK.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519056">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676475">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Blocks until <em=
 class=3D"varname">lock</em> is owned by the
 	      calling thread.</p>
@@ -8958,7 +19772,7 @@
 	      implemented at a slightly lower level.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519089">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676514">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-lock" title=3D"Function MAKE-LOCK=
"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, =
<a class=3D"xref" href=3D"#m_with-lock-grabbed" title=3D"Macro WITH-LOCK-GR=
ABBED"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">with-lock-grab=
bed</b></a>, <a class=3D"xref" href=3D"#f_release-lock" title=3D"Function R=
ELEASE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">release-=
lock</b></a>, <a class=3D"xref" href=3D"#f_try-lock" title=3D"Function TRY-=
LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a=
>, <a class=3D"xref" href=3D"#f_make-read-write-lock" title=3D"Function MAK=
E-READ-WRITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">ma=
ke-read-write-lock</b></a>, <a class=3D"xref" href=3D"#f_make-semaphore" ti=
tle=3D"Function MAKE-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/tra=
nsitional">make-semaphore</b></a>, <a class=3D"xref" href=3D"#f_process-inp=
ut-wait" title=3D"Function PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.or=
g/TR/xhtml1/transitional">process-input-wait</b></a>, <a class=3D"xref" hre=
f=3D"#f_process-output-wait" title=3D"Function PROCESS-OUTPUT-WAIT"><b xmln=
s=3D"http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>,=
 <a class=3D"xref" href=3D"#m_with-terminal-input" title=3D"Macro WITH-TERM=
INAL-INPUT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">with-term=
inal-input</b></a></span>
               </div>
@@ -8976,12 +19790,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519188">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676626">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">lock</span></i>---an object of type CCL:LOCK.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519211">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676653">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Signals an error=
 of type CCL:LOCK-NOT-OWNER if
 	      <em class=3D"varname">lock</em>
@@ -8994,7 +19808,7 @@
 	      becomes free.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519244">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676691">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-lock" title=3D"Function MAKE-LOCK=
"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, =
<a class=3D"xref" href=3D"#m_with-lock-grabbed" title=3D"Macro WITH-LOCK-GR=
ABBED"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">with-lock-grab=
bed</b></a>, <a class=3D"xref" href=3D"#f_grab-lock" title=3D"Function GRAB=
-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">grab-lock</b><=
/a>, <a class=3D"xref" href=3D"#f_try-lock" title=3D"Function TRY-LOCK"><b =
xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a cla=
ss=3D"xref" href=3D"#f_make-read-write-lock" title=3D"Function MAKE-READ-WR=
ITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-read-w=
rite-lock</b></a>, <a class=3D"xref" href=3D"#f_make-semaphore" title=3D"Fu=
nction MAKE-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional=
">make-semaphore</b></a>, <a class=3D"xref" href=3D"#f_process-input-wait" =
title=3D"Function PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtm=
l1/transitional">process-input-wait</b></a>, <a class=3D"xref" href=3D"#f_p=
rocess-output-wait" title=3D"Function PROCESS-OUTPUT-WAIT"><b xmlns=3D"http=
://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class=
=3D"xref" href=3D"#m_with-terminal-input" title=3D"Macro WITH-TERMINAL-INPU=
T"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">with-terminal-inpu=
t</b></a></span>
               </div>
@@ -9013,14 +19827,14 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519345">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676805">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">lock</span></i>---an object of type CCL:LOCK.</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---T if <em xmlns=3D"http://www.w3.org/1999/xhtm=
l" class=3D"varname">lock</em> has been obtained,
 		        or NIL if it has not.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519383">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676849">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Tests whether <e=
m class=3D"varname">lock</em>
 	      can be obtained without blocking - that is, either
@@ -9033,7 +19847,7 @@
 	      blocking; NIL is returned in this case.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519406">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676875">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-lock" title=3D"Function MAKE-LOCK=
"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, =
<a class=3D"xref" href=3D"#m_with-lock-grabbed" title=3D"Macro WITH-LOCK-GR=
ABBED"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">with-lock-grab=
bed</b></a>, <a class=3D"xref" href=3D"#f_grab-lock" title=3D"Function GRAB=
-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">grab-lock</b><=
/a>, <a class=3D"xref" href=3D"#f_release-lock" title=3D"Function RELEASE-L=
OCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">release-lock</b>=
</a>, <a class=3D"xref" href=3D"#f_make-read-write-lock" title=3D"Function =
MAKE-READ-WRITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional"=
>make-read-write-lock</b></a>, <a class=3D"xref" href=3D"#f_make-semaphore"=
 title=3D"Function MAKE-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/=
transitional">make-semaphore</b></a>, <a class=3D"xref" href=3D"#f_process-=
input-wait" title=3D"Function PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3=
.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class=3D"xref" =
href=3D"#f_process-output-wait" title=3D"Function PROCESS-OUTPUT-WAIT"><b x=
mlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></=
a>, <a class=3D"xref" href=3D"#m_with-terminal-input" title=3D"Macro WITH-T=
ERMINAL-INPUT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">with-t=
erminal-input</b></a></span>
               </div>
@@ -9053,13 +19867,13 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519506">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id676988">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">read-write-lock</span></i>---a newly-allocated object of type
 		        CCL:READ-WRITE-LOCK.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519529">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677015">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Creates and retu=
rns an object of type CCL::READ-WRITE-LOCK.
 	      A read-write lock may, at any given time, belong to any number
@@ -9070,12 +19884,12 @@
 	      no readers and no writers.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519545">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677033">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#m_with-read-lock" title=3D"Macro WITH-RE=
AD-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">with-read-lo=
ck</b></a>, <a class=3D"xref" href=3D"#m_with-write-lock" title=3D"Macro WI=
TH-WRITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">with-w=
rite-lock</b></a>, <a class=3D"xref" href=3D"#f_make-lock" title=3D"Functio=
n MAKE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-loc=
k</b></a>, <a class=3D"xref" href=3D"#f_make-semaphore" title=3D"Function M=
AKE-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-s=
emaphore</b></a>, <a class=3D"xref" href=3D"#f_process-input-wait" title=3D=
"Function PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/trans=
itional">process-input-wait</b></a>, <a class=3D"xref" href=3D"#f_process-o=
utput-wait" title=3D"Function PROCESS-OUTPUT-WAIT"><b xmlns=3D"http://www.w=
3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class=3D"xref=
" href=3D"#m_with-terminal-input" title=3D"Macro WITH-TERMINAL-INPUT"><b xm=
lns=3D"http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a=
></span>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519593">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677086">=
</a>
                 <div class=3D"header">Notes:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">There probably s=
hould be some way to
 	      atomically "promote" a reader, making it a writer without
@@ -9098,7 +19912,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519650">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677151">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">read-write-lock</span></i>---an object of type
 		        CCL:READ-WRITE-LOCK.</p>
@@ -9107,7 +19921,7 @@
 		        <em xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"varname">bod=
y</em>.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519701">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677210">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Waits until <em =
class=3D"varname">read-write-lock</em> has no
 	      writer,
@@ -9121,7 +19935,7 @@
 	      released.  If it was already a reader, it remains one.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519741">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677256">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-read-write-lock" title=3D"Functio=
n MAKE-READ-WRITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitiona=
l">make-read-write-lock</b></a>, <a class=3D"xref" href=3D"#m_with-write-lo=
ck" title=3D"Macro WITH-WRITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1=
/transitional">with-write-lock</b></a>, <a class=3D"xref" href=3D"#f_make-l=
ock" title=3D"Function MAKE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/t=
ransitional">make-lock</b></a>, <a class=3D"xref" href=3D"#f_make-semaphore=
" title=3D"Function MAKE-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1=
/transitional">make-semaphore</b></a>, <a class=3D"xref" href=3D"#f_process=
-input-wait" title=3D"Function PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w=
3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class=3D"xref"=
 href=3D"#f_process-output-wait" title=3D"Function PROCESS-OUTPUT-WAIT"><b =
xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b><=
/a>, <a class=3D"xref" href=3D"#m_with-terminal-input" title=3D"Macro WITH-=
TERMINAL-INPUT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">with-=
terminal-input</b></a></span>
               </div>
@@ -9141,7 +19955,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519834">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677361">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">read-write-lock</span></i>---an object of type
 		        CCL:READ-WRITE-LOCK.</p>
@@ -9150,7 +19964,7 @@
 		        <em xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"varname">bod=
y</em>.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519885">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677421">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Waits until <em =
class=3D"varname">read-write-lock</em> has no
 	      readers and no writer other than <a class=3D"xref" href=3D"#v_curre=
nt-process" title=3D"Variable *CURRENT-PROCESS*"><b xmlns=3D"http://www.w3.=
org/TR/xhtml1/transitional">*current-process*</b></a>,
@@ -9165,7 +19979,7 @@
 	      writer.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id519930">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677472">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-read-write-lock" title=3D"Functio=
n MAKE-READ-WRITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitiona=
l">make-read-write-lock</b></a>, <a class=3D"xref" href=3D"#m_with-read-loc=
k" title=3D"Macro WITH-READ-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/t=
ransitional">with-read-lock</b></a>, <a class=3D"xref" href=3D"#f_make-lock=
" title=3D"Function MAKE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/tran=
sitional">make-lock</b></a>, <a class=3D"xref" href=3D"#f_make-semaphore" t=
itle=3D"Function MAKE-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/tr=
ansitional">make-semaphore</b></a>, <a class=3D"xref" href=3D"#f_process-in=
put-wait" title=3D"Function PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.o=
rg/TR/xhtml1/transitional">process-input-wait</b></a>, <a class=3D"xref" hr=
ef=3D"#f_process-output-wait" title=3D"Function PROCESS-OUTPUT-WAIT"><b xml=
ns=3D"http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>=
, <a class=3D"xref" href=3D"#m_with-terminal-input" title=3D"Macro WITH-TER=
MINAL-INPUT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">with-ter=
minal-input</b></a></span>
               </div>
@@ -9185,12 +19999,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520020">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677573">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">semaphore</span></i>---a newly-allocated object of type CCL:SEMAP=
HORE.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520042">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677599">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Creates and retu=
rns an object of type CCL:SEMAPHORE.
 	      A semaphore has an associated "count" which may be incremented
@@ -9199,7 +20013,7 @@
 	      <em class=3D"varname">semaphore</em> has an initial count of 0.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520057">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677616">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_signal-semaphore" title=3D"Function SI=
GNAL-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">signa=
l-semaphore</b></a>, <a class=3D"xref" href=3D"#f_wait-on-semaphore" title=
=3D"Function WAIT-ON-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/tra=
nsitional">wait-on-semaphore</b></a>, <a class=3D"xref" href=3D"#f_timed-wa=
it-on-semaphore" title=3D"Function TIMED-WAIT-ON-SEMAPHORE"><b xmlns=3D"htt=
p://www.w3.org/TR/xhtml1/transitional">timed-wait-on-semaphore</b></a>, <a =
class=3D"xref" href=3D"#f_make-lock" title=3D"Function MAKE-LOCK"><b xmlns=
=3D"http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class=
=3D"xref" href=3D"#f_make-read-write-lock" title=3D"Function MAKE-READ-WRIT=
E-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-read-wri=
te-lock</b></a>, <a class=3D"xref" href=3D"#f_process-input-wait" title=3D"=
Function PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transi=
tional">process-input-wait</b></a>, <a class=3D"xref" href=3D"#f_process-ou=
tput-wait" title=3D"Function PROCESS-OUTPUT-WAIT"><b xmlns=3D"http://www.w3=
.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class=3D"xref"=
 href=3D"#m_with-terminal-input" title=3D"Macro WITH-TERMINAL-INPUT"><b xml=
ns=3D"http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a>=
</span>
               </div>
@@ -9219,26 +20033,26 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520152">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677724">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">semaphore</span></i>---an object of type CCL:SEMAPHORE.</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---an integer representing an error identifier
 		        which was returned by the underlying OS call.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520188">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677766">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Atomically incre=
ments <em class=3D"varname">semaphore</em>'s
 	      "count" by 1; this
 	      may enable a waiting thread to resume execution.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520202">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677781">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-semaphore" title=3D"Function MAKE=
-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-sema=
phore</b></a>, <a class=3D"xref" href=3D"#f_wait-on-semaphore" title=3D"Fun=
ction WAIT-ON-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transition=
al">wait-on-semaphore</b></a>, <a class=3D"xref" href=3D"#f_timed-wait-on-s=
emaphore" title=3D"Function TIMED-WAIT-ON-SEMAPHORE"><b xmlns=3D"http://www=
.w3.org/TR/xhtml1/transitional">timed-wait-on-semaphore</b></a>, <a class=
=3D"xref" href=3D"#f_make-lock" title=3D"Function MAKE-LOCK"><b xmlns=3D"ht=
tp://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class=3D"xref=
" href=3D"#f_make-read-write-lock" title=3D"Function MAKE-READ-WRITE-LOCK">=
<b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock<=
/b></a>, <a class=3D"xref" href=3D"#f_process-input-wait" title=3D"Function=
 PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">=
process-input-wait</b></a>, <a class=3D"xref" href=3D"#f_process-output-wai=
t" title=3D"Function PROCESS-OUTPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR/=
xhtml1/transitional">process-output-wait</b></a>, <a class=3D"xref" href=3D=
"#m_with-terminal-input" title=3D"Macro WITH-TERMINAL-INPUT"><b xmlns=3D"ht=
tp://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520255">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677841">=
</a>
                 <div class=3D"header">Notes:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml"><em class=3D"var=
name">result</em> should probably be interpreted
 	      and acted on by <span class=3D"function"><strong>signal-semaphore</=
strong></span>, because
@@ -9261,14 +20075,14 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520315">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677910">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">semaphore</span></i>---an object of type CCL:SEMAPHORE.</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---an integer representing an error identifier
 		        which was returned by the underlying OS call.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520351">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677951">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Waits until <em =
class=3D"varname">semaphore</em>
 	      has a positive count that can be
@@ -9276,12 +20090,12 @@
 	      corresponding call to SIGNAL-SEMAPHORE.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520366">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id677968">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-semaphore" title=3D"Function MAKE=
-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-sema=
phore</b></a>, <a class=3D"xref" href=3D"#f_signal-semaphore" title=3D"Func=
tion SIGNAL-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional=
">signal-semaphore</b></a>, <a class=3D"xref" href=3D"#f_timed-wait-on-sema=
phore" title=3D"Function TIMED-WAIT-ON-SEMAPHORE"><b xmlns=3D"http://www.w3=
.org/TR/xhtml1/transitional">timed-wait-on-semaphore</b></a>, <a class=3D"x=
ref" href=3D"#f_make-lock" title=3D"Function MAKE-LOCK"><b xmlns=3D"http://=
www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class=3D"xref" hre=
f=3D"#f_make-read-write-lock" title=3D"Function MAKE-READ-WRITE-LOCK"><b xm=
lns=3D"http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></=
a>, <a class=3D"xref" href=3D"#f_process-input-wait" title=3D"Function PROC=
ESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">proce=
ss-input-wait</b></a>, <a class=3D"xref" href=3D"#f_process-output-wait" ti=
tle=3D"Function PROCESS-OUTPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml=
1/transitional">process-output-wait</b></a>, <a class=3D"xref" href=3D"#m_w=
ith-terminal-input" title=3D"Macro WITH-TERMINAL-INPUT"><b xmlns=3D"http://=
www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520419">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678027">=
</a>
                 <div class=3D"header">Notes:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml"><em class=3D"var=
name">result</em> should probably be interpreted
 	      and acted on by <span class=3D"function"><strong>wait-on-semaphore<=
/strong></span>, because
@@ -9305,7 +20119,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520479">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678096">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">semaphore</span></i>---An object of type CCL:SEMAPHORE.</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">timeout</span></i>---a time interval in seconds.  May be any
@@ -9318,7 +20132,7 @@
 		        exceeded.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520545">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678173">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Waits until <em =
class=3D"varname">semaphore</em>
 	      has a positive count that can be
@@ -9327,7 +20141,7 @@
 	      elapsed.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520562">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678192">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-semaphore" title=3D"Function MAKE=
-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-sema=
phore</b></a>, <a class=3D"xref" href=3D"#f_wait-on-semaphore" title=3D"Fun=
ction WAIT-ON-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transition=
al">wait-on-semaphore</b></a>, <a class=3D"xref" href=3D"#f_make-lock" titl=
e=3D"Function MAKE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transition=
al">make-lock</b></a>, <a class=3D"xref" href=3D"#f_make-read-write-lock" t=
itle=3D"Function MAKE-READ-WRITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xht=
ml1/transitional">make-read-write-lock</b></a>, <a class=3D"xref" href=3D"#=
f_process-input-wait" title=3D"Function PROCESS-INPUT-WAIT"><b xmlns=3D"htt=
p://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class=
=3D"xref" href=3D"#f_process-output-wait" title=3D"Function PROCESS-OUTPUT-=
WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-output-=
wait</b></a>, <a class=3D"xref" href=3D"#m_with-terminal-input" title=3D"Ma=
cro WITH-TERMINAL-INPUT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transition=
al">with-terminal-input</b></a></span>
               </div>
@@ -9347,7 +20161,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520655">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678297">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">fd</span></i>---a file descriptor, which is a non-negative integer
 		        used by the OS to refer to an open file, socket, or similar
@@ -9355,7 +20169,7 @@
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">timeout</span></i>---either NIL or a time interval in millisecond=
s.  Must be a non-negative integer.  The default is NIL.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520697">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678345">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Wait until input=
 is available on <em class=3D"varname">fd</em>.
 	      This uses the <span class=3D"function"><strong>select()</strong></s=
pan> system call, and is
@@ -9371,12 +20185,12 @@
 	      return zero bytes.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520730">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678382">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-lock" title=3D"Function MAKE-LOCK=
"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, =
<a class=3D"xref" href=3D"#f_make-read-write-lock" title=3D"Function MAKE-R=
EAD-WRITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-=
read-write-lock</b></a>, <a class=3D"xref" href=3D"#f_make-semaphore" title=
=3D"Function MAKE-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transi=
tional">make-semaphore</b></a>, <a class=3D"xref" href=3D"#f_process-output=
-wait" title=3D"Function PROCESS-OUTPUT-WAIT"><b xmlns=3D"http://www.w3.org=
/TR/xhtml1/transitional">process-output-wait</b></a>, <a class=3D"xref" hre=
f=3D"#m_with-terminal-input" title=3D"Macro WITH-TERMINAL-INPUT"><b xmlns=
=3D"http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></=
span>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520768">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678424">=
</a>
                 <div class=3D"header">Notes:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	      <span class=3D"function"><strong>process-input-wait</strong></span>=
 has a timeout parameter,
@@ -9401,7 +20215,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520832">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678498">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">fd</span></i>---a file descriptor, which is a non-negative integer
 		        used by the OS to refer to an open file, socket, or similar
@@ -9409,7 +20223,7 @@
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">timeout</span></i>---either NIL or a time interval in millisecond=
s.  Must be a non-negative integer.  The default is NIL.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520874">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678545">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Wait until outpu=
t is possible on <em class=3D"varname">fd</em> or until <em class=3D"varnam=
e">timeout</em>, if
 	      it is not NIL, has been exceeded.
@@ -9422,12 +20236,12 @@
 	      important use, often overlooked.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520907">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678583">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#f_make-lock" title=3D"Function MAKE-LOCK=
"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, =
<a class=3D"xref" href=3D"#f_make-read-write-lock" title=3D"Function MAKE-R=
EAD-WRITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-=
read-write-lock</b></a>, <a class=3D"xref" href=3D"#f_make-semaphore" title=
=3D"Function MAKE-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transi=
tional">make-semaphore</b></a>, <a class=3D"xref" href=3D"#f_process-input-=
wait" title=3D"Function PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.org/T=
R/xhtml1/transitional">process-input-wait</b></a>, <a class=3D"xref" href=
=3D"#m_with-terminal-input" title=3D"Macro WITH-TERMINAL-INPUT"><b xmlns=3D=
"http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></spa=
n>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id520944">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678625">=
</a>
                 <div class=3D"header">Notes:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">
 	      <a class=3D"xref" href=3D"#f_process-input-wait" title=3D"Function =
PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">p=
rocess-input-wait</b></a> has a timeout parameter,
@@ -9452,14 +20266,14 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id521009">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678699">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">body</span></i>---an implicit progn.</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">result</span></i>---the primary value returned by
 		        <em xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"varname">bod=
y</em>.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id521048">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678743">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Requests exclusi=
ve read access to the standard terminal
 	      stream, <em class=3D"varname">*terminal-io*</em>.  Executes
@@ -9467,7 +20281,7 @@
 	    </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id521064">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678762">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#v_request-terminal-input-via-break" titl=
e=3D"Variable *REQUEST-TERMINAL-INPUT-VIA-BREAK*"><b xmlns=3D"http://www.w3=
.org/TR/xhtml1/transitional">*request-terminal-input-via-break*</b></a>, <a=
 class=3D"xref" href=3D"#cmd_y" title=3D"Toplevel Command :Y"><b xmlns=3D"h=
ttp://www.w3.org/TR/xhtml1/transitional">:y</b></a>, <a class=3D"xref" href=
=3D"#f_make-lock" title=3D"Function MAKE-LOCK"><b xmlns=3D"http://www.w3.or=
g/TR/xhtml1/transitional">make-lock</b></a>, <a class=3D"xref" href=3D"#f_m=
ake-read-write-lock" title=3D"Function MAKE-READ-WRITE-LOCK"><b xmlns=3D"ht=
tp://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a cl=
ass=3D"xref" href=3D"#f_make-semaphore" title=3D"Function MAKE-SEMAPHORE"><=
b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>=
, <a class=3D"xref" href=3D"#f_process-input-wait" title=3D"Function PROCES=
S-INPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process=
-input-wait</b></a>, <a class=3D"xref" href=3D"#f_process-output-wait" titl=
e=3D"Function PROCESS-OUTPUT-WAIT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/=
transitional">process-output-wait</b></a></span>
               </div>
@@ -9486,17 +20300,17 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id521141">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678850">=
</a>
                 <div class=3D"header">Value Type:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">A boolean.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id521151">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678861">=
</a>
                 <div class=3D"header">Initial Value:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">NIL.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id521161">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678873">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Controls how att=
empts to obtain ownership of terminal input
 	      are made. When NIL, a message is printed on *TERMINAL-IO*;
@@ -9508,7 +20322,7 @@
 	      loop.)</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id521174">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678888">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#m_with-terminal-input" title=3D"Macro WI=
TH-TERMINAL-INPUT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">wi=
th-terminal-input</b></a>, <a class=3D"xref" href=3D"#cmd_y" title=3D"Tople=
vel Command :Y"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">:y</b=
></a>, <a class=3D"xref" href=3D"#f_make-lock" title=3D"Function MAKE-LOCK"=
><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <=
a class=3D"xref" href=3D"#f_make-read-write-lock" title=3D"Function MAKE-RE=
AD-WRITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-r=
ead-write-lock</b></a>, <a class=3D"xref" href=3D"#f_make-semaphore" title=
=3D"Function MAKE-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transi=
tional">make-semaphore</b></a>, <a class=3D"xref" href=3D"#f_process-input-=
wait" title=3D"Function PROCESS-INPUT-WAIT"><b xmlns=3D"http://www.w3.org/T=
R/xhtml1/transitional">process-input-wait</b></a>, <a class=3D"xref" href=
=3D"#f_process-output-wait" title=3D"Function PROCESS-OUTPUT-WAIT"><b xmlns=
=3D"http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a></=
span>
               </div>
@@ -9527,7 +20341,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id521265">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id678991">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">p</span></i>---a lisp process (thread), designated either by
 		        an integer which matches its
@@ -9536,7 +20350,7 @@
 		        its <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"functi=
on"><strong>process-name</strong></span>.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id521304">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id679036">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">:Y is a toplevel=
 command, not a function.  As such, it
 	      can only be used interactively, and only from the initial
@@ -9547,7 +20361,7 @@
 	      terminal input stream.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id521326">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id679060">=
</a>
                 <div class=3D"header">See Also:</div>
                 <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"simp=
lelist"><a class=3D"xref" href=3D"#m_with-terminal-input" title=3D"Macro WI=
TH-TERMINAL-INPUT"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">wi=
th-terminal-input</b></a>, <a class=3D"xref" href=3D"#v_request-terminal-in=
put-via-break" title=3D"Variable *REQUEST-TERMINAL-INPUT-VIA-BREAK*"><b xml=
ns=3D"http://www.w3.org/TR/xhtml1/transitional">*request-terminal-input-via=
-break*</b></a>, <a class=3D"xref" href=3D"#f_make-lock" title=3D"Function =
MAKE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">make-lock<=
/b></a>, <a class=3D"xref" href=3D"#f_make-read-write-lock" title=3D"Functi=
on MAKE-READ-WRITE-LOCK"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transition=
al">make-read-write-lock</b></a>, <a class=3D"xref" href=3D"#f_make-semapho=
re" title=3D"Function MAKE-SEMAPHORE"><b xmlns=3D"http://www.w3.org/TR/xhtm=
l1/transitional">make-semaphore</b></a>, <a class=3D"xref" href=3D"#f_proce=
ss-input-wait" title=3D"Function PROCESS-INPUT-WAIT"><b xmlns=3D"http://www=
.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class=3D"xre=
f" href=3D"#f_process-output-wait" title=3D"Function PROCESS-OUTPUT-WAIT"><=
b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b=
></a></span>
               </div>
@@ -9568,7 +20382,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id521419">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id679166">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">process</span></i>---a process, typically created by <a xmlns=3D"=
http://www.w3.org/1999/xhtml" class=3D"xref" href=3D"#f_process-run-functio=
n" title=3D"Function PROCESS-RUN-FUNCTION"><b xmlns=3D"http://www.w3.org/TR=
/xhtml1/transitional">process-run-function</b></a> or by <a xmlns=3D"http:/=
/www.w3.org/1999/xhtml" class=3D"xref" href=3D"#f_make-process" title=3D"Fu=
nction MAKE-PROCESS"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">=
make-process</b></a></p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">default</span></i>---A default value to be returned if the specif=
ied
@@ -9578,7 +20392,7 @@
 	      of the default argument, otherwise.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id521477">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id679232">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Waits for the sp=
ecified process to terminate.  If the
 	process terminates "normally" (if its initial function
@@ -9600,7 +20414,7 @@
         <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
           <div>
             <div>
-              <h2 class=3D"title"><a id=3D"Programming-with-Sockets"></a>C=
hapter=C3=82=C2=A07.=C3=82=C2=A0Programming with Sockets</h2>
+              <h2 class=3D"title"><a id=3D"Programming-with-Sockets"></a>C=
hapter=C3=82=C2=A08.=C3=82=C2=A0Programming with Sockets</h2>
             </div>
           </div>
         </div>
@@ -9608,12 +20422,12 @@
           <dl>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#Sockets-Overview">7.1. Overview</a>
+                <a href=3D"#Sockets-Overview">8.1. Overview</a>
               </span>
             </dt>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#Sockets-Dictionary">7.2. Sockets Dictionary</a>
+                <a href=3D"#Sockets-Dictionary">8.2. Sockets Dictionary</a>
               </span>
             </dt>
           </dl>
@@ -9622,7 +20436,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Sockets=
-Overview"></a>7.1.=C3=82=C2=A0Overview</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Sockets=
-Overview"></a>8.1.=C3=82=C2=A0Overview</h2>
               </div>
             </div>
           </div>
@@ -9698,7 +20512,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Sockets=
-Dictionary"></a>7.2.=C3=82=C2=A0Sockets Dictionary</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Sockets=
-Dictionary"></a>8.2.=C3=82=C2=A0Sockets Dictionary</h2>
               </div>
             </div>
           </div>
@@ -9719,7 +20533,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id458958">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id629854">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">address-family</span></i>---The address/protocol family of this s=
ocket. Currently
 		only :internet (the default), meaning IP, and :file,
@@ -9792,13 +20606,13 @@
 		million.  If an input operation takes longer than the
 		specified number of seconds, an
 		<code xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"literal">input-tim=
eout</code> error is signalled.
-		(see <a xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"xref" href=3D"#S=
tream-Timeouts-And-Deadlines" title=3D"9.1.4.=C3=82=C2=A0Stream Timeouts an=
d Deadlines">Section=C3=82=C2=A09.1.4, =C3=A2=C2=80=C2=9CStream Timeouts an=
d Deadlines=C3=A2=C2=80=C2=9D</a>)</p>
+		(see <a xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"xref" href=3D"#S=
tream-Timeouts-And-Deadlines" title=3D"10.1.4.=C3=82=C2=A0Stream Timeouts a=
nd Deadlines">Section=C3=82=C2=A010.1.4, =C3=A2=C2=80=C2=9CStream Timeouts =
and Deadlines=C3=A2=C2=80=C2=9D</a>)</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">output-timeout</span></i>---The number of seconds before an outpu=
t operation
 		times out.  Must be a real number between zero and one
 		million.  If an output operation takes longer than the
 		specified number of seconds, an
 		<code xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"literal">output-ti=
meout</code> error is signalled.
-		(see <a xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"xref" href=3D"#S=
tream-Timeouts-And-Deadlines" title=3D"9.1.4.=C3=82=C2=A0Stream Timeouts an=
d Deadlines">Section=C3=82=C2=A09.1.4, =C3=A2=C2=80=C2=9CStream Timeouts an=
d Deadlines=C3=A2=C2=80=C2=9D</a>)</p>
+		(see <a xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"xref" href=3D"#S=
tream-Timeouts-And-Deadlines" title=3D"10.1.4.=C3=82=C2=A0Stream Timeouts a=
nd Deadlines">Section=C3=82=C2=A010.1.4, =C3=A2=C2=80=C2=9CStream Timeouts =
and Deadlines=C3=A2=C2=80=C2=9D</a>)</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">connect-timeout</span></i>---The number of seconds before a conne=
ction
 		attempt times out. [TODO: what are acceptable values?]
 		If a connection attempt takes longer than the
@@ -9816,10 +20630,10 @@
 		stream does not complete before the deadline then a
 		<code xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"literal">COMMUNICA=
TION-DEADLINE-EXPIRED</code>
 		error is signalled.  A deadline takes precedence over
-		any input/output timeouts that may be set.  (see <a xmlns=3D"http://www.=
w3.org/1999/xhtml" class=3D"xref" href=3D"#Stream-Timeouts-And-Deadlines" t=
itle=3D"9.1.4.=C3=82=C2=A0Stream Timeouts and Deadlines">Section=C3=82=C2=
=A09.1.4, =C3=A2=C2=80=C2=9CStream Timeouts and Deadlines=C3=A2=C2=80=C2=9D=
</a>)</p>
+		any input/output timeouts that may be set.  (see <a xmlns=3D"http://www.=
w3.org/1999/xhtml" class=3D"xref" href=3D"#Stream-Timeouts-And-Deadlines" t=
itle=3D"10.1.4.=C3=82=C2=A0Stream Timeouts and Deadlines">Section=C3=82=C2=
=A010.1.4, =C3=A2=C2=80=C2=9CStream Timeouts and Deadlines=C3=A2=C2=80=C2=
=9D</a>)</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id492760">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id610203">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Creates and retu=
rns a new socket</p>
               </div>
@@ -9838,7 +20652,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id492822">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id631425">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The listener-socket to listen on.</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">wait</span></i>---If true (the default), and there are no connect=
ions
@@ -9846,7 +20660,7 @@
 		returns NIL immediately.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id492864">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id631468">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Extracts the fir=
st connection on the queue of pending
 	  connections, accepts it (i.e. completes the connection startup
@@ -9872,7 +20686,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id492929">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id652151">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">dotted</span></i>---A string representing an IP address in the
 		"nn.nn.nn.nn" format</p>
@@ -9880,7 +20694,7 @@
 		is invalid. If false, NIL is returned.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id501834">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id652192">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Converts a dotte=
d-string representation of a host address to
 	  a 32-bit unsigned IP address.</p>
@@ -9900,7 +20714,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id501896">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id652254">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">ipaddr</span></i>---A 32-bit integer representing an internet hos=
t address</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">values</span></i>---If false (the default), returns a string in t=
he form
@@ -9909,7 +20723,7 @@
 		8-bit integers.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id501938">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id658993">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Converts a 32-bi=
t unsigned IP address into octets.</p>
               </div>
@@ -9928,14 +20742,14 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id501999">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id659054">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">ipaddr</span></i>---a 32-bit integer representing an internet hos=
t address</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">ignore-cache</span></i>---This argument is ignored (it is accepte=
d for
 		compatibility with Franz Allegro)</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502039">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id659094">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Converts a 32-bi=
t unsigned IP address into a host name
 	  string</p>
@@ -9955,7 +20769,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502097">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id652025">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">host</span></i>---Specifies the host. It can be either a host name
 		string such as "clozure.com", or a dotted address
@@ -9963,7 +20777,7 @@
 		IP address such as 3232235521.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502124">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id652053">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Converts a host =
spec in any of the acceptable formats into a
 	  32-bit unsigned IP address</p>
@@ -9983,7 +20797,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502182">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id659294">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">port</span></i>---Specifies the port. It can be either a string, =
such as
 		"http" or a symbol, such as :http, or an unsigned
@@ -9992,7 +20806,7 @@
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">protocol</span></i>---Must be one of "tcp" or "udp".</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502225">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id659336">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Finds the port n=
umber for the specified port and protocol</p>
               </div>
@@ -10012,7 +20826,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id494361">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id659397">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The socket to read from</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">size</span></i>---Maximum number of bytes to read. If the packet =
is
@@ -10029,7 +20843,7 @@
 		data is to be stored. The default is 0.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id494452">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id673384">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Reads a UDP pack=
et from a socket. If no packets are
 	  available, waits for a packet to arrive. Returns four values:</p>
@@ -10066,7 +20880,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id494552">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id649408">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The socket to write to</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">buffer</span></i>---A vector containing the data to send. It must=
 be
@@ -10081,7 +20895,7 @@
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">offset</span></i>---The offset in the buffer where the packet dat=
a starts</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id494654">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id649511">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Send a UDP packe=
t over a socket.</p>
               </div>
@@ -10100,14 +20914,14 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id494716">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id684594">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The socket to shut down (typically a tcp-stre=
am)</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">direction</span></i>---One of :input to disallow further input, o=
r :output to
 		disallow further output.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id494756">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id684634">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Shuts down part =
of a bidirectional connection. This is
 	  useful if e.g. you need to read responses after sending an
@@ -10128,12 +20942,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500590">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id684693">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The socket</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500616">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id659854">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns the nati=
ve OS's representation of the socket, or
 	  NIL if the socket is closed. On Unix, this is the Unix 'file
@@ -10158,12 +20972,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500677">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id659915">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The socket</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500704">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id659941">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns the 32-b=
it unsigned IP address of the remote host,
 	  or NIL if the socket is not connected.</p>
@@ -10183,12 +20997,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500762">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id659999">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The socket</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500788">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id644038">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns the remo=
te port number, or NIL if the socket is not
 	  connected.</p>
@@ -10208,12 +21022,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500845">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id644095">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The socket</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500871">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id644122">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns 32-bit u=
nsigned IP address of the local host.</p>
               </div>
@@ -10232,12 +21046,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500928">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id644179">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The socket</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500954">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id644205">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns the loca=
l port number</p>
               </div>
@@ -10256,12 +21070,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id501012">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id659156">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The socket</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id501038">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id659182">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns :interne=
t or :file, as appropriate.</p>
               </div>
@@ -10280,12 +21094,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id501095">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id659239">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The socket</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id506532">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id659266">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns :active =
for tcp-stream, :passive for
 	  listener-socket, and NIL for udp-socket</p>
@@ -10305,12 +21119,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id506590">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id683891">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The socket</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id506616">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id683917">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns the sock=
et format as specified by the :format
 	  argument to make-socket.</p>
@@ -10330,12 +21144,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id506673">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id683975">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The socket</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id506699">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id684001">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">returns :stream =
for tcp-stream and listener-socket, and
 	  :datagram for udp-socket.</p>
@@ -10354,12 +21168,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id506742">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id684044">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">The class of OS =
errors signaled by socket functions</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id506753">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id684054">=
</a>
                 <div class=3D"header">Superclasses:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">simple-error</p>
               </div>
@@ -10378,12 +21192,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id506810">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668842">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket-error</span></i>---the condition</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id506836">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668868">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">The OS error cod=
e of the error</p>
               </div>
@@ -10402,12 +21216,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id506894">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668926">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket-error</span></i>---the condition</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id506921">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id668953">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">A symbol represe=
nting the error code in a more
 	  OS-independent way.</p>
@@ -10431,12 +21245,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id506984">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id669016">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket-error</span></i>---the condition</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id507010">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id669575">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">A string describ=
ing the context where the error happened. On
 	  Linux, this is the name of the system call which returned the
@@ -10457,7 +21271,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id507071">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id669636">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">socket</span></i>---The socket to close</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">abort</span></i>---If false (the default), closes the socket in an
@@ -10468,7 +21282,7 @@
 		clean up).</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id507114">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id669680">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">The close generi=
c function can be applied to sockets. It
 	  releases the operating system resources associated with the
@@ -10489,14 +21303,14 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id501155">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id669742">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">var</span></i>---variable to bind</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">make-socket-args</span></i>---arguments suitable for passing to m=
ake-socket</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">body</span></i>---body to execute</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id501211">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id669798">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">executes body wi=
th var bound to the result of applying
 	  make-socket to make-socket-args. The socket gets closed on exit.</p>
@@ -10509,7 +21323,7 @@
         <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
           <div>
             <div>
-              <h2 class=3D"title"><a id=3D"Running-Other-Programs-as-Subpr=
ocesses"></a>Chapter=C3=82=C2=A08.=C3=82=C2=A0Running Other Programs as Sub=
processes</h2>
+              <h2 class=3D"title"><a id=3D"Running-Other-Programs-as-Subpr=
ocesses"></a>Chapter=C3=82=C2=A09.=C3=82=C2=A0Running Other Programs as Sub=
processes</h2>
             </div>
           </div>
         </div>
@@ -10517,22 +21331,22 @@
           <dl>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#Subprocess-Overview">8.1. Overview</a>
+                <a href=3D"#Subprocess-Overview">9.1. Overview</a>
               </span>
             </dt>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#Subprocess-Examples">8.2. Examples</a>
+                <a href=3D"#Subprocess-Examples">9.2. Examples</a>
               </span>
             </dt>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#Limitations-and-known-bugs">8.3. Limitations a=
nd known bugs</a>
+                <a href=3D"#Limitations-and-known-bugs">9.3. Limitations a=
nd known bugs</a>
               </span>
             </dt>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#External-Program-Dictionary">8.4. External-Pro=
gram Dictionary</a>
+                <a href=3D"#External-Program-Dictionary">9.4. External-Pro=
gram Dictionary</a>
               </span>
             </dt>
           </dl>
@@ -10541,7 +21355,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Subproc=
ess-Overview"></a>8.1.=C3=82=C2=A0Overview</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Subproc=
ess-Overview"></a>9.1.=C3=82=C2=A0Overview</h2>
               </div>
             </div>
           </div>
@@ -10558,7 +21372,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Subproc=
ess-Examples"></a>8.2.=C3=82=C2=A0Examples</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Subproc=
ess-Examples"></a>9.2.=C3=82=C2=A0Examples</h2>
               </div>
             </div>
           </div>
@@ -10582,7 +21396,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Limitat=
ions-and-known-bugs"></a>8.3.=C3=82=C2=A0Limitations and known bugs</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Limitat=
ions-and-known-bugs"></a>9.3.=C3=82=C2=A0Limitations and known bugs</h2>
               </div>
             </div>
           </div>
@@ -10607,7 +21421,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Externa=
l-Program-Dictionary"></a>8.4.=C3=82=C2=A0External-Program Dictionary</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Externa=
l-Program-Dictionary"></a>9.4.=C3=82=C2=A0External-Program Dictionary</h2>
               </div>
             </div>
           </div>
@@ -10628,7 +21442,7 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id482804">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id613494">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">program</span></i>---A string or pathname which denotes an execut=
able file.
 		  The PATH environment variable is used to find programs whose
@@ -10679,7 +21493,7 @@
 		  </p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id483958">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id604999">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Runs the specifi=
ed program in an external (Unix) process,
 	    returning an object of type EXTERNAL-PROCESS if successful.</p>
@@ -10699,13 +21513,13 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id484017">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id641076">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">proc</span></i>---An EXTERNAL-PROCESS, as returned by RUN-PROGRAM=
.</p>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">signal</span></i>---A small integer.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id463425">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id641117">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Sends the specif=
ied "signal" to the specified
 	    external process. (Typically, it would only be useful to call
@@ -10728,12 +21542,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id463486">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id625357">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">proc</span></i>---An EXTERNAL-PROCESS, as returned by RUN-PROGRAM=
.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id463512">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id625383">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns the <spa=
n class=3D"emphasis"><em>process id</em></span> assigned to
 	    the external process by the operating system. This is typically
@@ -10755,12 +21569,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502635">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id639197">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">proc</span></i>---An EXTERNAL-PROCESS, as returned by RUN-PROGRAM=
.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id502661">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id639222">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns the stre=
am created when the input argument to
 	    run-program is specified as :STREAM.</p>
@@ -10781,12 +21595,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id458510">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id683611">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">proc</span></i>---An EXTERNAL-PROCESS, as returned by RUN-PROGRAM=
.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id458536">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id683637">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns the stre=
am created when the output argument to
 	    run-program is specified as :STREAM.</p>
@@ -10808,12 +21622,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id458597">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id625165">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">proc</span></i>---An EXTERNAL-PROCESS, as returned by RUN-PROGRAM=
.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id488650">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id625190">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns the stre=
am created when the error argument to
 	    run-program is specified as :STREAM.</p>
@@ -10835,12 +21649,12 @@
           <p>
             <div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id488710">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id625251">=
</a>
                 <div class=3D"header">Arguments and Values:</div>
                 <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">proc</span></i>---An EXTERNAL-PROCESS, as returned by RUN-PROGRAM=
.</p>
               </div>
               <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id488736">=
</a>
+                <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id617122">=
</a>
                 <div class=3D"header">Description:</div>
                 <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns, as mult=
iple values, a keyword denoting the status
 	    of the external process (one of :running, :stopped, :signaled, or
@@ -10855,7 +21669,7 @@
         <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
           <div>
             <div>
-              <h2 class=3D"title"><a id=3D"Streams"></a>Chapter=C3=82=C2=
=A09.=C3=82=C2=A0Streams</h2>
+              <h2 class=3D"title"><a id=3D"Streams"></a>Chapter=C3=82=C2=
=A010.=C3=82=C2=A0Streams</h2>
             </div>
           </div>
         </div>
@@ -10863,63 +21677,63 @@
           <dl>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#CCL-Stream-Extensions">9.1. Stream Extensions<=
/a>
+                <a href=3D"#CCL-Stream-Extensions">10.1. Stream Extensions=
</a>
               </span>
             </dt>
             <dd>
               <dl>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#id488242">9.1.1. Stream External Format</a>
+                    <a href=3D"#id612831">10.1.1. Stream External Format</=
a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Additional-Open-Keywords">9.1.2. Additiona=
l keywords for OPEN and MAKE-SOCKET</a>
+                    <a href=3D"#Additional-Open-Keywords">10.1.2. Addition=
al keywords for OPEN and MAKE-SOCKET</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Basic-Versus-Fundamental-Streams">9.1.3. B=
asic Versus Fundamental Streams</a>
+                    <a href=3D"#Basic-Versus-Fundamental-Streams">10.1.3. =
Basic Versus Fundamental Streams</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Stream-Timeouts-And-Deadlines">9.1.4. Stre=
am Timeouts and Deadlines</a>
+                    <a href=3D"#Stream-Timeouts-And-Deadlines">10.1.4. Str=
eam Timeouts and Deadlines</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Open-File-Streams">9.1.5. Open File Stream=
s</a>
+                    <a href=3D"#Open-File-Streams">10.1.5. Open File Strea=
ms</a>
                   </span>
                 </dt>
               </dl>
             </dd>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#Creating-Your-Own-Stream-Classes-with-Gray-Str=
eams">9.2. Creating Your Own Stream Classes with Gray Streams</a>
+                <a href=3D"#Creating-Your-Own-Stream-Classes-with-Gray-Str=
eams">10.2. Creating Your Own Stream Classes with Gray Streams</a>
               </span>
             </dt>
             <dd>
               <dl>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Streams-Overview">9.2.1. Overview</a>
+                    <a href=3D"#Streams-Overview">10.2.1. Overview</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Extending-READ-SEQUENCE-and-WRITE-SEQUENCE=
">9.2.2. Extending READ-SEQUENCE and WRITE-SEQUENCE</a>
+                    <a href=3D"#Extending-READ-SEQUENCE-and-WRITE-SEQUENCE=
">10.2.2. Extending READ-SEQUENCE and WRITE-SEQUENCE</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Multibyte-I-O">9.2.3. Multibyte I/O</a>
+                    <a href=3D"#Multibyte-I-O">10.2.3. Multibyte I/O</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Gray-Streams-Dictionary">9.2.4. Gray Strea=
ms Dictionary</a>
+                    <a href=3D"#Gray-Streams-Dictionary">10.2.4. Gray Stre=
ams Dictionary</a>
                   </span>
                 </dt>
               </dl>
@@ -10930,7 +21744,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"CCL-Str=
eam-Extensions"></a>9.1.=C3=82=C2=A0Stream Extensions</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"CCL-Str=
eam-Extensions"></a>10.1.=C3=82=C2=A0Stream Extensions</h2>
               </div>
             </div>
           </div>
@@ -10938,7 +21752,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"id488242"></a>9.1.1.=C3=82=
=C2=A0Stream External Format</h3>
+                  <h3 class=3D"title"><a id=3D"id612831"></a>10.1.1.=C3=82=
=C2=A0Stream External Format</h3>
                 </div>
               </div>
             </div>
@@ -10954,7 +21768,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"Additional-Open-Keywords"><=
/a>9.1.2.=C3=82=C2=A0Additional keywords for OPEN and MAKE-SOCKET</h3>
+                  <h3 class=3D"title"><a id=3D"Additional-Open-Keywords"><=
/a>10.1.2.=C3=82=C2=A0Additional keywords for OPEN and MAKE-SOCKET</h3>
                 </div>
               </div>
             </div>
@@ -11046,7 +21860,7 @@
                   <p>A boolean that indicates whether or not the stream is
 	  a Gray stream, i.e. whether or not the stream is an instance
 	  of <code class=3D"literal">FUNDAMENTAL-STREAM</code> or
-	  <code class=3D"literal">CCL::BASIC-STREAM</code>(see <a class=3D"xref" =
href=3D"#Basic-Versus-Fundamental-Streams" title=3D"9.1.3.=C3=82=C2=A0Basic=
 Versus Fundamental Streams">Section=C3=82=C2=A09.1.3, =C3=A2=C2=80=C2=9CBa=
sic Versus Fundamental Streams=C3=A2=C2=80=C2=9D</a>).  Defaults to
+	  <code class=3D"literal">CCL::BASIC-STREAM</code>(see <a class=3D"xref" =
href=3D"#Basic-Versus-Fundamental-Streams" title=3D"10.1.3.=C3=82=C2=A0Basi=
c Versus Fundamental Streams">Section=C3=82=C2=A010.1.3, =C3=A2=C2=80=C2=9C=
Basic Versus Fundamental Streams=C3=A2=C2=80=C2=9D</a>).  Defaults to
 	  <code class=3D"literal">T</code>.</p>
                 </dd>
               </dl>
@@ -11056,11 +21870,11 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"Basic-Versus-Fundamental-St=
reams"></a>9.1.3.=C3=82=C2=A0Basic Versus Fundamental Streams</h3>
-                </div>
-              </div>
-            </div>
-            <p xmlns=3D"http://www.w3.org/1999/xhtml">Gray streams (see <a=
 class=3D"xref" href=3D"#Creating-Your-Own-Stream-Classes-with-Gray-Streams=
" title=3D"9.2.=C3=82=C2=A0Creating Your Own Stream Classes with Gray Strea=
ms">Section=C3=82=C2=A09.2, =C3=A2=C2=80=C2=9CCreating Your Own Stream Clas=
ses with Gray Streams=C3=A2=C2=80=C2=9D</a>)
+                  <h3 class=3D"title"><a id=3D"Basic-Versus-Fundamental-St=
reams"></a>10.1.3.=C3=82=C2=A0Basic Versus Fundamental Streams</h3>
+                </div>
+              </div>
+            </div>
+            <p xmlns=3D"http://www.w3.org/1999/xhtml">Gray streams (see <a=
 class=3D"xref" href=3D"#Creating-Your-Own-Stream-Classes-with-Gray-Streams=
" title=3D"10.2.=C3=82=C2=A0Creating Your Own Stream Classes with Gray Stre=
ams">Section=C3=82=C2=A010.2, =C3=A2=C2=80=C2=9CCreating Your Own Stream Cl=
asses with Gray Streams=C3=A2=C2=80=C2=9D</a>)
       all inherit from <code class=3D"literal">FUNDAMENTAL-STREAM</code> w=
hereas
       basic streams inherit from <code class=3D"literal">CCL::BASIC-STREAM=
</code>.
       The tradeoff between FUNDAMENTAL and BASIC streams is entirely
@@ -11097,16 +21911,16 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"Stream-Timeouts-And-Deadlin=
es"></a>9.1.4.=C3=82=C2=A0Stream Timeouts and Deadlines</h3>
-                </div>
-              </div>
-            </div>
-            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id481519" clas=
s=3D"indexterm"></a>
-            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id481529" clas=
s=3D"indexterm"></a>
-            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id481539" clas=
s=3D"indexterm"></a>
-            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id481548" clas=
s=3D"indexterm"></a>
-            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500066" clas=
s=3D"indexterm"></a>
-            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500075" clas=
s=3D"indexterm"></a>
+                  <h3 class=3D"title"><a id=3D"Stream-Timeouts-And-Deadlin=
es"></a>10.1.4.=C3=82=C2=A0Stream Timeouts and Deadlines</h3>
+                </div>
+              </div>
+            </div>
+            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id669160" clas=
s=3D"indexterm"></a>
+            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id669170" clas=
s=3D"indexterm"></a>
+            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id669180" clas=
s=3D"indexterm"></a>
+            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id669190" clas=
s=3D"indexterm"></a>
+            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id673877" clas=
s=3D"indexterm"></a>
+            <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id673886" clas=
s=3D"indexterm"></a>
             <p xmlns=3D"http://www.w3.org/1999/xhtml">A stream that is ass=
ociated with a file descriptor has
         attributes and accessors:
         <span class=3D"function"><strong>STREAM-INPUT-TIMEOUT</strong></sp=
an>,
@@ -11131,7 +21945,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"Open-File-Streams"></a>9.1.=
5.=C3=82=C2=A0Open File Streams</h3>
+                  <h3 class=3D"title"><a id=3D"Open-File-Streams"></a>10.1=
.5.=C3=82=C2=A0Open File Streams</h3>
                 </div>
               </div>
             </div>
@@ -11159,19 +21973,19 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500241=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674052=
"></a>
                   <div class=3D"header">Values:</div>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">stream-list</span></i>---A list of open file streams.  This is a =
copy of
 		          an internal list so it may be destructively
 		          modified without ill effect.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500268=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674079=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns a list=
 of open file streams.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500279=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id674090=
"></a>
                   <div class=3D"header">See Also:</div>
                   <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"si=
mplelist"><a class=3D"xref" href=3D"#f_note-open-file-stream" title=3D"Func=
tion NOTE-OPEN-FILE-STREAM"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transit=
ional">note-open-file-stream</b></a>, <a class=3D"xref" href=3D"#f_remove-o=
pen-file-stream" title=3D"Function REMOVE-OPEN-FILE-STREAM"><b xmlns=3D"htt=
p://www.w3.org/TR/xhtml1/transitional">remove-open-file-stream</b></a></spa=
n>
                 </div>
@@ -11194,12 +22008,12 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500360=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id671998=
"></a>
                   <div class=3D"header">Arguments:</div>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">file-stream</span></i>---A file stream.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500386=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id672024=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">Adds a file st=
ream to the internal list of open
 	        file streams that is returned by
@@ -11208,7 +22022,7 @@
 	        stream code when a file-stream is created.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500405=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id672043=
"></a>
                   <div class=3D"header">See Also:</div>
                   <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"si=
mplelist"><a class=3D"xref" href=3D"#f_open-file-streams" title=3D"Function=
 OPEN-FILE-STREAMS"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">o=
pen-file-streams</b></a>, <a class=3D"xref" href=3D"#f_remove-open-file-str=
eam" title=3D"Function REMOVE-OPEN-FILE-STREAM"><b xmlns=3D"http://www.w3.o=
rg/TR/xhtml1/transitional">remove-open-file-stream</b></a></span>
                 </div>
@@ -11231,12 +22045,12 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500486=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id672124=
"></a>
                   <div class=3D"header">Arguments:</div>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">file-stream</span></i>---A file stream.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500512=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id672151=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">Remove file st=
ream from the internal list of open file
 	        streams that is returned by
@@ -11245,7 +22059,7 @@
 	        stream code when a file-stream is closed.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id500531=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id672170=
"></a>
                   <div class=3D"header">See Also:</div>
                   <span xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"si=
mplelist"><a class=3D"xref" href=3D"#f_open-file-streams" title=3D"Function=
 OPEN-FILE-STREAMS"><b xmlns=3D"http://www.w3.org/TR/xhtml1/transitional">o=
pen-file-streams</b></a>, <a class=3D"xref" href=3D"#f_note-open-file-strea=
m" title=3D"Function NOTE-OPEN-FILE-STREAM"><b xmlns=3D"http://www.w3.org/T=
R/xhtml1/transitional">note-open-file-stream</b></a></span>
                 </div>
@@ -11257,7 +22071,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Creatin=
g-Your-Own-Stream-Classes-with-Gray-Streams"></a>9.2.=C3=82=C2=A0Creating Y=
our Own Stream Classes with Gray Streams</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Creatin=
g-Your-Own-Stream-Classes-with-Gray-Streams"></a>10.2.=C3=82=C2=A0Creating =
Your Own Stream Classes with Gray Streams</h2>
               </div>
             </div>
           </div>
@@ -11265,7 +22079,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"Streams-Overview"></a>9.2.1=
.=C3=82=C2=A0Overview</h3>
+                  <h3 class=3D"title"><a id=3D"Streams-Overview"></a>10.2.=
1.=C3=82=C2=A0Overview</h3>
                 </div>
               </div>
             </div>
@@ -11566,7 +22380,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"Extending-READ-SEQUENCE-and=
-WRITE-SEQUENCE"></a>9.2.2.=C3=82=C2=A0Extending READ-SEQUENCE and WRITE-SE=
QUENCE</h3>
+                  <h3 class=3D"title"><a id=3D"Extending-READ-SEQUENCE-and=
-WRITE-SEQUENCE"></a>10.2.2.=C3=82=C2=A0Extending READ-SEQUENCE and WRITE-S=
EQUENCE</h3>
                 </div>
               </div>
             </div>
@@ -11574,7 +22388,7 @@
               <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
                 <div>
                   <div>
-                    <h4 class=3D"title"><a id=3D"extending-read-write-over=
view"></a>9.2.2.1.=C3=82=C2=A0Overview</h4>
+                    <h4 class=3D"title"><a id=3D"extending-read-write-over=
view"></a>10.2.2.1.=C3=82=C2=A0Overview</h4>
                   </div>
                 </div>
               </div>
@@ -11595,7 +22409,7 @@
               <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
                 <div>
                   <div>
-                    <h4 class=3D"title"><a id=3D"Notes"></a>9.2.2.2.=C3=82=
=C2=A0Notes</h4>
+                    <h4 class=3D"title"><a id=3D"Notes"></a>10.2.2.2.=C3=
=82=C2=A0Notes</h4>
                   </div>
                 </div>
               </div>
@@ -11609,7 +22423,7 @@
               <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepa=
ge">
                 <div>
                   <div>
-                    <h4 class=3D"title"><a id=3D"Example"></a>9.2.2.3.=C3=
=82=C2=A0Example</h4>
+                    <h4 class=3D"title"><a id=3D"Example"></a>10.2.2.3.=C3=
=82=C2=A0Example</h4>
                   </div>
                 </div>
               </div>
@@ -11637,7 +22451,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"Multibyte-I-O"></a>9.2.3.=
=C3=82=C2=A0Multibyte I/O</h3>
+                  <h3 class=3D"title"><a id=3D"Multibyte-I-O"></a>10.2.3.=
=C3=82=C2=A0Multibyte I/O</h3>
                 </div>
               </div>
             </div>
@@ -11661,7 +22475,7 @@
             <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage=
">
               <div>
                 <div>
-                  <h3 class=3D"title"><a id=3D"Gray-Streams-Dictionary"></=
a>9.2.4.=C3=82=C2=A0Gray Streams Dictionary</h3>
+                  <h3 class=3D"title"><a id=3D"Gray-Streams-Dictionary"></=
a>10.2.4.=C3=82=C2=A0Gray Streams Dictionary</h3>
                 </div>
               </div>
             </div>
@@ -11678,7 +22492,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513059=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id672756=
"></a>
                   <div class=3D"header">Arguments and Values:</div>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">stream</span></i>---a stream, presumably a fundamental-input-stre=
am.</p>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">list</span></i>---a list. When a STREAM-READ-LIST method is calle=
d by
@@ -11689,7 +22503,7 @@
 		          to be greater than the length of the list.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513117=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id672815=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">Should try to =
read up to count elements from stream into the
 	        list list, returning the number of elements actually read (which
@@ -11710,7 +22524,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513176=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id672874=
"></a>
                   <div class=3D"header">Arguments and Values:</div>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">stream</span></i>---a stream, presumably a fundamental-output-str=
eam.</p>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">list</span></i>---a list. When a STREAM-WRITE-LIST method is call=
ed by
@@ -11721,7 +22535,7 @@
 		          guaranteed not to be greater than the length of the list.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513234=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id672932=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">should try to =
write the first count elements of list to
 	        stream. The return value of this method is ignored.</p>
@@ -11741,7 +22555,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513293=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id672990=
"></a>
                   <div class=3D"header">Arguments and Values:</div>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">stream</span></i>---a stream, presumably a fundamental-input-stre=
am</p>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">vector</span></i>---a vector. When a STREAM-READ-VECTOR method is=
 called
@@ -11757,7 +22571,7 @@
 		          length of vector.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513368=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id673066=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">should try to =
read successive elements from stream into
 	        vector, starting at element start (inclusive) and continuing
@@ -11780,7 +22594,7 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513428=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id673126=
"></a>
                   <div class=3D"header">Arguments and Values:</div>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">stream</span></i>---a stream, presumably a fundamental-output-str=
eam</p>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">vector</span></i>---a vector. When a STREAM-WRITE-VECTOR method i=
s called
@@ -11796,7 +22610,7 @@
 		          length of vector.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513503=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id673201=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">should try to =
write successive elements of vector to stream,
 	        starting at element start (inclusive) and continuing through
@@ -11818,13 +22632,13 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513563=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id673261=
"></a>
                   <div class=3D"header">Method Signatures:</div>
                   <div class=3D"synopsis"><span xmlns=3D"http://www.w3.org=
/1999/xhtml" class=3D"function"><strong>ccl::stream-device</strong></span> =
<i>
 	        (s stream) direction =3D> fd</i></div>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513581=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id673279=
"></a>
                   <div class=3D"header">Arguments and Values:</div>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">s</span></i>---a stream.</p>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">direction</span></i>---either :INPUT or :OUTPUT.</p>
@@ -11835,7 +22649,7 @@
 		          <em xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"varname">d=
irection</em>.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513647=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id682159=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">Returns the fi=
le descriptor associated with
 	        <em class=3D"varname">s</em> in the direction given by
@@ -11859,14 +22673,14 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513716=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id682229=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">Reads up to ma=
x-octets octets from stream into ivector,
 	        storing them at start-octet. Returns the number of octets actually
 	        read.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513728=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id682241=
"></a>
                   <div class=3D"header">Arguments:</div>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">stream</span></i>---An input stream. The method defined on
 		          BUFFERED-INPUT-STREAMs requires that the size in octets of
@@ -11891,13 +22705,13 @@
             <p>
               <div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513848=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id682360=
"></a>
                   <div class=3D"header">Description:</div>
                   <p xmlns=3D"http://www.w3.org/1999/xhtml">Writes max-oct=
ets octets to stream from ivector, starting at
 	        start-octet. Returns max-octets.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513860=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id682372=
"></a>
                   <div class=3D"header">Arguments:</div>
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">stream</span></i>---An input stream. The method defined on
 		          BUFFERED-OUTPUT-STREAMs requires that the size in octets of
@@ -11907,7 +22721,7 @@
                   <p><i><span xmlns=3D"http://www.w3.org/1999/xhtml" class=
=3D"term">max-octet</span></i>---A non-negative integer.</p>
                 </div>
                 <div class=3D"refsect1" lang=3D"en" xml:lang=3D"en">
-                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id513932=
"></a>
+                  <a xmlns=3D"http://www.w3.org/1999/xhtml" id=3D"id682444=
"></a>
                   <div class=3D"header">Examples:</div>
                   <pre xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"pro=
gramlisting">
 ;;; Write the contents of a (SIMPLE-ARRAY(UNSIGNED-BYTE 16) 3) =

@@ -11950,7 +22764,7 @@
         <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
           <div>
             <div>
-              <h2 class=3D"title"><a id=3D"Writing-Portable-Extensions-to-=
the-Object-System-using-the-MetaObject-Protocol"></a>Chapter=C3=82=C2=A010.=
=C3=82=C2=A0Writing Portable Extensions to the Object System  using the Met=
aObject Protocol</h2>
+              <h2 class=3D"title"><a id=3D"Writing-Portable-Extensions-to-=
the-Object-System-using-the-MetaObject-Protocol"></a>Chapter=C3=82=C2=A011.=
=C3=82=C2=A0Writing Portable Extensions to the Object System  using the Met=
aObject Protocol</h2>
             </div>
           </div>
         </div>
@@ -11958,17 +22772,17 @@
           <dl>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#MOP-Overview">10.1. Overview</a>
+                <a href=3D"#MOP-Overview">11.1. Overview</a>
               </span>
             </dt>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#MOP-Implementation-status">10.2. Implementatio=
n status</a>
+                <a href=3D"#MOP-Implementation-status">11.2. Implementatio=
n status</a>
               </span>
             </dt>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#Concurrency-issues">10.3. Concurrency issues</=
a>
+                <a href=3D"#Concurrency-issues">11.3. Concurrency issues</=
a>
               </span>
             </dt>
           </dl>
@@ -11977,7 +22791,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"MOP-Ove=
rview"></a>10.1.=C3=82=C2=A0Overview</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"MOP-Ove=
rview"></a>11.1.=C3=82=C2=A0Overview</h2>
               </div>
             </div>
           </div>
@@ -11992,7 +22806,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"MOP-Imp=
lementation-status"></a>10.2.=C3=82=C2=A0Implementation status</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"MOP-Imp=
lementation-status"></a>11.2.=C3=82=C2=A0Implementation status</h2>
               </div>
             </div>
           </div>
@@ -12607,7 +23421,7 @@
           <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
             <div>
               <div>
-                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Concurr=
ency-issues"></a>10.3.=C3=82=C2=A0Concurrency issues</h2>
+                <h2 class=3D"title" style=3D"clear: both"><a id=3D"Concurr=
ency-issues"></a>11.3.=C3=82=C2=A0Concurrency issues</h2>
               </div>
             </div>
           </div>
@@ -12644,7 +23458,7 @@
         <div xmlns=3D"http://www.w3.org/1999/xhtml" class=3D"titlepage">
           <div>
             <div>
-              <h2 class=3D"title"><a id=3D"Profiling"></a>Chapter=C3=82=C2=
=A011.=C3=82=C2=A0Profiling</h2>
+              <h2 class=3D"title"><a id=3D"Profiling"></a>Chapter=C3=82=C2=
=A012.=C3=82=C2=A0Profiling</h2>
             </div>
           </div>
         </div>
@@ -12652,73 +23466,73 @@
           <dl>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#Profiling-Using-the-Linux-oprofile-system-leve=
l-profiler">11.1. Using the Linux oprofile system-level profiler</a>
+                <a href=3D"#Profiling-Using-the-Linux-oprofile-system-leve=
l-profiler">12.1. Using the Linux oprofile system-level profiler</a>
               </span>
             </dt>
             <dd>
               <dl>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Profiling-oprofile-generating-a-lisp-image=
-for-use-with-oprofile">11.1.1. Generating a lisp image for use with oprofi=
le</a>
+                    <a href=3D"#Profiling-oprofile-generating-a-lisp-image=
-for-use-with-oprofile">12.1.1. Generating a lisp image for use with oprofi=
le</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Profiling-oprofile-prerequisites">11.1.2. =
Prerequisites</a>
+                    <a href=3D"#Profiling-oprofile-prerequisites">12.1.2. =
Prerequisites</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Profiling-oprofile-generating-elf-symbols-=
for-lisp-functions">11.1.3. Generating ELF symbols for Lisp functions</a>
+                    <a href=3D"#Profiling-oprofile-generating-elf-symbols-=
for-lisp-functions">12.1.3. Generating ELF symbols for Lisp functions</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Profiling-oprofile-example">11.1.4. Exampl=
e</a>
+                    <a href=3D"#Profiling-oprofile-example">12.1.4. Exampl=
e</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Profiling-oprofile-Issues">11.1.5. Issues<=
/a>
+                    <a href=3D"#Profiling-oprofile-Issues">12.1.5. Issues<=
/a>
                   </span>
                 </dt>
               </dl>
             </dd>
             <dt>
               <span class=3D"sect1">
-                <a href=3D"#Profiling-Using-Apples-CHUD-metering-tools">11=
.2. Using Apple's CHUD metering tools</a>
+                <a href=3D"#Profiling-Using-Apples-CHUD-metering-tools">12=
.2. Using Apple's CHUD metering tools</a>
               </span>
             </dt>
             <dd>
               <dl>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Profiling-CHUD-prerequisites">11.2.1. Prer=
equisites</a>
+                    <a href=3D"#Profiling-CHUD-prerequisites">12.2.1. Prer=
equisites</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#id501560">11.2.2. Generating a lisp image =
for use with Shark</a>
+                    <a href=3D"#id637856">12.2.2. Generating a lisp image =
for use with Shark</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Profiling-CHUD-usage-synopsis">11.2.3. Usa=
ge synopsis</a>
+                    <a href=3D"#Profiling-CHUD-usage-synopsis">12.2.3. Usa=
ge synopsis</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Profiling-CHUD-profiling-configurations">1=
1.2.4. Profiling "configurations"</a>
+                    <a href=3D"#Profiling-CHUD-profiling-configurations">1=
2.2.4. Profiling "configurations"</a>
                   </span>
                 </dt>
                 <dt>
                   <span class=3D"sect2">
-                    <a href=3D"#Profiling-CHUD-Reference">11.2.5. Referenc=
e</a>
+                    <a href=3D"#Profiling-CHUD-Reference">12.2.5. Referenc=
e</a>
                   </span>