emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/hyperbole 766ac22 04/51: Large commit of RSW changes


From: Stefan Monnier
Subject: [elpa] externals/hyperbole 766ac22 04/51: Large commit of RSW changes
Date: Sun, 12 Jul 2020 18:10:07 -0400 (EDT)

branch: externals/hyperbole
commit 766ac2293ddc80be6e9f42b5ac5058b842b4fbee
Author: Bob Weiner <Bob.Weiner@DuffandPhelps.com>
Commit: Bob Weiner <Bob.Weiner@DuffandPhelps.com>

    Large commit of RSW changes
---
 Changes              |   86 +-
 DEMO                 |    8 +-
 HY-ABOUT             |    2 +-
 HY-NEWS              |   17 +-
 Makefile             |    4 +-
 README.md            |    2 +-
 README.md.html       |    2 +-
 hact.el              |   22 +-
 hactypes.el          |   13 +
 hargs.el             |    5 +-
 hbut.el              |   42 +-
 hib-kbd.el           |    2 +-
 hibtypes.el          | 1349 ++++++------
 hmouse-drv.el        |    7 +-
 hpath.el             |  141 +-
 hui-menu.el          |    1 +
 hui-mini.el          |    1 +
 hui-mouse.el         |    5 +
 hui-select.el        | 1393 ++++++------
 hui.el               |   63 +-
 hvar.el              |   56 +-
 hversion.el          |    4 +-
 hyperbole-banner.png |  Bin 28333 -> 13234 bytes
 hyperbole.el         |    4 +-
 kotl/kfill.el        |  176 +-
 man/hyperbole.html   | 5831 ++++++++++++++++++++++++--------------------------
 man/hyperbole.info   |  Bin 517448 -> 518845 bytes
 man/hyperbole.pdf    |  Bin 1278118 -> 1278484 bytes
 man/hyperbole.texi   |   71 +-
 man/version.texi     |    8 +-
 30 files changed, 4629 insertions(+), 4686 deletions(-)

diff --git a/Changes b/Changes
index 4e60f08..31dda5d 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,87 @@
+2020-01-07  Bob Weiner  <rsw@gnu.org>
+
+* hui-mini.el (hui:menus): Added Gbut/Rename.
+  hui-menu.el (infodock-hyperbole-menu): Added Global-Button/Rename.
+
+2020-01-06  Bob Weiner  <rsw@gnu.org>
+
+* hui.el (hui:gbut-modify): Changed hargs:read-match to use 'gbut' type
+    rather than 'ebut'.
+         (hui:gbut-rename): Added.
+
+2020-01-05  Bob Weiner  <rsw@gnu.org>
+
+* hbut.el (hbut:key, ebut:key, ibut:key, hbut:rename): Added.
+
+* hui.el (hui:hbut-rename, hui:hbut-operate): Added.
+         (hui:hbut-act): Rewrote to use hui:hbut-operate.
+
+2020-01-04  Bob Weiner  <rsw@gnu.org>
+
+* hibtypes.el (pathname):
+  man/hyperbole.texi (Implicit Button Types):
+  hpath.el (hpath:find): Documented allowable Emacs Lisp and env. variable 
syntax.
+
+2019-12-29  Bob Weiner  <rsw@gnu.org>
+
+* hpath.el (hpath:posix-to-mswindows-separators):
+           (hpath:mswindows-to-posix-separators):
+           (hpath:directory-expand-alist): Corrected use of this variable by 
switching
+    it to hpath:posix-to-mswindows-separators.
+
+2019-12-28  Bob Weiner  <rsw@gnu.org>
+
+* hui-select.el (hui-select-set-region): Resolved markup-pair selection when 
selecting
+    the whole buffer.
+
+* hibtypes.el (action): Ignore / don't match to unbound symbols.
+
+2019-12-18  Bob Weiner  <rsw@gnu.org>
+
+* hui-select.el (hui-select-markup-modes):
+  man/hyperbole.texi (Smart Key Thing Selection): Added XML mode support.
+
+2019-10-13  Bob Weiner  <rsw@gnu.org>
+
+* hact.el (action:path-args-rel): Limited to file-name-directory call to 'loc' 
value.
+  hpath.el (hpath:find): Added file-name-directory call wrapped around 'loc' 
value;
+    otherwise, default-directory could be set to a filename.
+
+* hpath.el (hpath:absolute-to): Resolved bug that trimmed whitespace off 
non-path args,
+    e.g. key series, thereby removing trailing C-m keys.
+
+2019-10-06  Bob Weiner  <rsw@gnu.org>
+
+* hui-mouse.el (hkey-alist): Added support for selection of bookmarks from 
bookmark menu list.
+
+2019-10-05  Bob Weiner  <rsw@gnu.org>
+
+* hactypes.el (link-to-bookmark): Added to link to an Emacs bookmark, similar 
to a
+    global button with a link action type.
+  man/hyperbole.texi (Action Types): Added link-to-bookmark.
+
+* hpath.el (hpath:cache-mswindows-mount-points): Changed mapcar to mapc since
+    not using return value.
+    (hpath:display-buffer-function, hpath:display-path-function,
+     hpath:display-where-function): Added.
+    (hpath:display-buffer): Added call to hpath:display-buffer-function.
+    (hpath:find): Added call to hpath:display-path-function.
+
+2019-10-04  Bob Weiner  <rsw@gnu.org>
+
+* hpath.el (hpath:to-markup-anchor): If anchor contains both a dash and a 
space, then
+    don't convert dashes to spaces.
+
+* hmouse-drv.el (hkey-help): Added display of ibtype or actype (for explicit 
buttons).
+
+* hact.el (actype:def-symbol):
+* hbut.el (ibtype:def-symbol): Improved doc strings.
+          (htype:def-symbol): Added.
+
+==============================================================================
+V7.0.8 changes ^^^^:
+==============================================================================
+
 2019-10-01  Bob Weiner  <rsw@gnu.org>
 
 * hact.el (htype:delete): Removed improper quote in (fboundp 'sym) call.
@@ -25,8 +109,6 @@
 
 2019-09-19  Bob Weiner  <rsw@gnu.org>
 
-* hmouse-drv.el (hkey-help): Added display of ibtype, if any.
-
 * hbut.el (ibtype:def-symbol): Added.
 
 * hact.el (actype:def-symbol): Change mislabeled 'sym-name' to 'name'.
diff --git a/DEMO b/DEMO
index e730e06..cd93c8b 100644
--- a/DEMO
+++ b/DEMO
@@ -69,7 +69,7 @@ Assist Key provides help, such as reporting on a button's 
attributes, or
 serves a complementary function to whatever the Action Key does within a
 context.  Press the Action Key within this <(button)> to see all of the
 contexts and operations of the Smart Keys.  SPACE scrolls forward and
-backwards DELETE scrolls backward within the Smart Key summary; {q} quits
+BACKWARDS DELETE scrolls backward within the Smart Key summary; {q} quits
 and returns here.
 
 See also the later section, <(Smart Mouse Keys)>.
@@ -224,10 +224,10 @@ the same thing.
 
 Once in HyControl, your minibuffer window at the bottom of the selected frame
 will display a summary of keys you may use to adjust your windows until you
-press {q} or {Q} to quit from HyControl.  If you don't see it, press {?}, to
-turn on this help display.  The key, {t}, will always switch you between
+press {q} or {Q} to quit from HyControl.  If you don't see it, press {?} to
+turn on this help display.  The key {t} will always switch you between
 controlling frames and windows, the minor modes of HyControl, with a modeline
-indicator of either "HyFrm" or HyWin" depending on which type of control is
+indicator of either "HyFrm" or "HyWin" depending on which type of control is
 active.  See "(hyperbole)HyControl" for full usage information.
 
 ** Frame Commands
diff --git a/HY-ABOUT b/HY-ABOUT
index f2939fa..93e1a22 100644
--- a/HY-ABOUT
+++ b/HY-ABOUT
@@ -3,7 +3,7 @@
                   Designed and Written by Bob Weiner
                Maintained by Mats Lidell and Bob Weiner
                 https://www.gnu.org/software/hyperbole/
-                            Version 7.0.7
+                            Version 7.0.8
 
                    Say thanks if you like Hyperbole:
                     https://saythanks.io/to/rswgnu
diff --git a/HY-NEWS b/HY-NEWS
index 6b93a7f..8fc5862 100644
--- a/HY-NEWS
+++ b/HY-NEWS
@@ -2,7 +2,7 @@
                                 by Bob Weiner
 
 ===========================================================================
-*                                   V7.0.7
+*                                   V7.0.8
 ===========================================================================
 
   BUTTONS
@@ -32,6 +32,9 @@
         debugger-source: Jump to the source of errors from the Python pytype 
package
         ipython-stack-frame: Jump to the source of ipython stack traces and 
exceptions
 
+    - Other New Action Types:
+        link-to-bookmark: Display an Emacs bookmark
+
     - Much Faster Implicit Buttons: Major speedup in implicit button 
identification
       and activation even with the new generalized Action implicit button type
       syntax, due to internal optimizations.
@@ -50,6 +53,10 @@
          "${hyperb:dir}DEMO#Smart Mouse Keys"
          "${hyperb:dir}/DEMO#Smart Mouse Keys"
 
+    - Jump Thing: Added xml-mode support for pressing the Action Key when on a 
start or
+      end tag pair to select the whole region between them.  {C-c .} also 
moves between
+      the start and matching end tag.  See "(hyperbole)Smart Key Thing 
Selection".
+
 
   DOCUMENTATION
 
@@ -67,6 +74,8 @@
 
     - DEMO (Action Buttons): Added description and examples.
 
+    - Path Variables: Better documented how these are handled.
+
     - Hyperbole Manual, DEMO (Implicit Buttons): Added description and
       example of implicit button labels.
 
@@ -103,6 +112,10 @@
     - ibut:at-type-p: Added to test if point is on a specific type of
       implicit button.
 
+    - hbut:key, ebut:key, ibut:key, hbut:rename, hui:hbut-rename,
+      hui:hbut-operate: Added to allow renaming of any type of labeled
+      Hyperbole button.
+
     - hypb:region-with-text-property-value: Added and used in hysy-org.el.
 
     - hsys-org-mode-function, hsys-org-mode-p: Added to determine when
@@ -135,6 +148,8 @@
 
   SMART (ACTION AND ASSIST) KEYS
 
+    - Emacs Bookmark Menu Mode: Jump to the bookmark at point.
+
     - hpath:find-program: Changed to prioritize hpath:native-image-suffixes
       over hpath:internal-display-alist over hpath:external-display-alist-macos
       instead of the reverse.  This prevents external viewers from being
diff --git a/Makefile b/Makefile
index 1d02daf..d2e831d 100644
--- a/Makefile
+++ b/Makefile
@@ -63,7 +63,7 @@
 
 # This ver setup won't work under any make except GNU make, so set it manually.
 #HYPB_VERSION = "`head -3 hversion.el | tail -1 | sed -e 's/.*|\(.*\)|.*/\1/'`"
-HYPB_VERSION = 7.0.7
+HYPB_VERSION = 7.0.8
 
 # Emacs executable used to byte-compile .el files into .elc's.
 # Possibilities include: emacs, infodock, etc.
@@ -260,7 +260,7 @@ elc-init:
 src: autoloads tags
 
 # Remove and then rebuild all byte-compiled .elc files, even those .elc files
-# which do not yet exist, plus built TAGS file.
+# which do not yet exist, plus build TAGS file.
 bin: src
        $(RM) *.elc kotl/*.elc
        $(EMACS) $(BATCHFLAGS) $(PRELOADS) -f batch-byte-compile $(EL_KOTL) 
$(EL_COMPILE)
diff --git a/README.md b/README.md
index f0bdb90..786d684 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# GNU Hyperbole 7.0.7 - The Everyday Hypertextual Information Manager
+# GNU Hyperbole 7.0.8 - The Everyday Hypertextual Information Manager
 
 [Say thanks if you like Hyperbole.(https://saythanks.io/to/rswgnu)]
 
diff --git a/README.md.html b/README.md.html
index 2f60fe4..bddef2b 100644
--- a/README.md.html
+++ b/README.md.html
@@ -1,5 +1,5 @@
 <h1>
-<a 
id="user-content-gnu-hyperbole-707---the-everyday-hypertextual-information-manager"
 class="anchor" 
href="#gnu-hyperbole-707---the-everyday-hypertextual-information-manager" 
aria-hidden="true"><span aria-hidden="true" class="octicon 
octicon-link"></span></a>GNU Hyperbole 7.0.7 - The Everyday Hypertextual 
Information Manager</h1>
+<a 
id="user-content-gnu-hyperbole-708---the-everyday-hypertextual-information-manager"
 class="anchor" 
href="#gnu-hyperbole-708---the-everyday-hypertextual-information-manager" 
aria-hidden="true"><span aria-hidden="true" class="octicon 
octicon-link"></span></a>GNU Hyperbole 7.0.8 - The Everyday Hypertextual 
Information Manager</h1>
 <p>[Say thanks if you like Hyperbole.(<a href="https://saythanks.io/to/rswgnu"; 
rel="nofollow">https://saythanks.io/to/rswgnu</a>)]</p>
 
 <p><strong>Table of Contents</strong></p>
diff --git a/hact.el b/hact.el
index fd87af9..e1abfd7 100644
--- a/hact.el
+++ b/hact.el
@@ -212,6 +212,16 @@ Return the new function symbol derived from TYPE."
        (run-hooks 'htype-create-hook)
        ',sym)))
 
+(defun    htype:def-symbol (type)
+  "Return the abbreviated symbol used in the definition of a Hyperbole TYPE.
+TYPE may be either an implicit button type or action type.  It may be
+given as a string or a symbol."
+  (let ((name (if (stringp type)
+                 type
+               (symbol-name type))))
+    (when (string-match "\\`\\(ib\\|ac\\)types::" name)
+      (make-symbol (substring name (match-end 0))))))
+
 (defun    htype:delete (type type-category)
   "Delete a Hyperbole TYPE derived from TYPE-CATEGORY (both symbols).
 Return the Hyperbole symbol for the TYPE if it existed, else nil."
@@ -372,11 +382,9 @@ Other arguments are returned unchanged."
 Other paths are simply expanded.  Non-path arguments are returned unchanged."
   (let ((loc (hattr:get 'hbut:current 'loc)))
     (mapcar (lambda (arg)
-             (hpath:relative-to arg
-                                (file-name-directory
-                                 (if (stringp loc)
-                                     loc
-                                   (buffer-local-value 'default-directory 
loc)))))
+             (hpath:relative-to arg (if (stringp loc)
+                                        (file-name-directory loc)
+                                      (buffer-local-value 'default-directory 
loc))))
            args-list)))
 
 
@@ -425,7 +433,9 @@ performing ACTION."
 (defalias   'actype:elisp-symbol 'symtable:actype-p)
 
 (defun    actype:def-symbol (actype)
-  "Return the abbreviated symbol for ACTYPE used in its `defact'; ACTYPE may 
be a string or symbol."
+  "Return the abbreviated symbol for ACTYPE used in its `defact'.
+ACTYPE must be a symbol or string that begins with 'actype::' or nil
+is returned."
   (let ((name (if (stringp actype)
                  actype
                (symbol-name actype))))
diff --git a/hactypes.el b/hactypes.el
index 1b66216..eb99b55 100644
--- a/hactypes.el
+++ b/hactypes.el
@@ -247,6 +247,19 @@ For example:  To: hyperbole-users-join@gnu.org\n")))
            (t (hpath:find buf-str-or-file)))
     (hypb:error "(hyp-source): Non-string argument: %s" buf-str-or-file)))
 
+(defact link-to-bookmark (bookmark)
+  "Display an Emacs BOOKMARK.
+When creating the button, if in Bookmark Menu mode, use the bookmark
+nearest point as the default.  Otherwise, utilize the most recently used
+bookmark in the current file (bookmark-current-bookmark) as the default,
+if any."
+  (interactive
+   (list (bookmark-completing-read "Bookmark to link to"
+                                  (if (eq major-mode 'bookmark-bmenu-mode)
+                                      (bookmark-bmenu-bookmark)
+                                    bookmark-current-bookmark))))
+  (bookmark-jump bookmark (hpath:display-buffer-function)))
+
 (defact link-to-buffer-tmp (buffer &optional point)
   "Display a BUFFER scrolled to optional POINT.
 If POINT is given, the buffer is displayed with POINT at the top of
diff --git a/hargs.el b/hargs.el
index 291f143..26bb614 100644
--- a/hargs.el
+++ b/hargs.el
@@ -325,8 +325,7 @@ Handles all of the interactive argument types that 
`hargs:iform-read' does."
        ((eq hargs:reading-p 'gbut)
         (when (eq (current-buffer) (get-file-buffer gbut:file))
           (hbut:label-p 'as-label)))
-       ((eq hargs:reading-p 'hbut) (or (ebut:label-p 'as-label)
-                                       (ibut:label-p 'as-label)))
+       ((eq hargs:reading-p 'hbut) (hbut:label-p 'as-label))
        ((hbut:label-p) nil)
        ((eq hargs:reading-p 'file)
         (cond ((derived-mode-p 'dired-mode)
@@ -403,7 +402,7 @@ Handles all of the interactive argument types that 
`hargs:iform-read' does."
        ((eq hargs:reading-p 'key)
         (require 'hib-kbd)
         (let ((key-seq (hbut:label-p 'as-label "{" "}")))
-          (and key-seq (kbd-key:normalize key-seq))))
+          (when key-seq (kbd-key:normalize key-seq))))
        ((eq hargs:reading-p 'integer)
         (save-excursion (skip-chars-backward "-0-9")
                         (if (looking-at "-?[0-9]+")
diff --git a/hbut.el b/hbut.el
index 0a729b6..a1b2c16 100644
--- a/hbut.el
+++ b/hbut.el
@@ -153,6 +153,13 @@ buffer."
   (and (symbolp object)
        (eq (hattr:get object 'categ) 'explicit)))
 
+(defun    ebut:key (ebut)
+  "Return the key for Hyperbole explicit button symbol EBUT."
+  (if (ebut:is-p ebut)
+      (hattr:get ebut 'lbl-key)
+    (error "(ebut:key): Argument is not a Hyperbole explicit button symbol, 
`%s'"
+          ebut)))
+
 (defun    ebut:key-of-label-p (key label)
   "Return t iff KEY matches to LABEL in a case insensitive manner."
   (and (stringp key) (stringp label)
@@ -165,6 +172,8 @@ buffer."
 
 (defun    ebut:label-p (&optional as-label start-delim end-delim pos-flag 
two-lines-flag)
   "Return key for the Hyperbole explicit button label that point is within, 
else nil.
+This is the normalized key form of the explicit button's label.
+
 Assumes point is within the first line of any button label.  All
 following arguments are optional.  If AS-LABEL is non-nil, label
 is returned rather than the key derived from the label.
@@ -837,6 +846,13 @@ nil.  BUFFER defaults to the current buffer."
   "Return non-nil if OBJECT denotes a Hyperbole button."
  (and (symbolp object) (hattr:get object 'categ)))
 
+(defun    hbut:key (hbut)
+  "Return the key for Hyperbole button symbol HBUT."
+  (if (hbut:is-p hbut)
+      (hattr:get hbut 'lbl-key)
+    (error "(hbut:key): Argument is not a Hyperbole button symbol, `%s'"
+          hbut)))
+
 (defun    hbut:key-src (&optional full)
   "Return key source (usually unqualified) for current Hyperbole button.
 Also sets current buffer to key source.
@@ -901,7 +917,7 @@ represent the output of particular document formatters."
                (concat src ".texinfo"))
               ((current-buffer))))))
 
-(defun hbut:key-src-set-buffer (src)
+(defun    hbut:key-src-set-buffer (src)
   "Set buffer to SRC, a buffer, file, directory or symlink and return SRC or 
nil if invalid."
   (cond ((null src) nil)
        ((bufferp src)
@@ -1046,6 +1062,17 @@ include delimiters when INCLUDE-DELIMS is non-nil)."
     ;; Match is outside of a programming language comment
     (not (nth 4 (syntax-ppss)))))
 
+(defun hbut:rename (but)
+  "Interactively rename the Hyperbole button BUT from the current buffer."
+  (cond ((ebut:is-p but)
+         (ebut:to (ebut:key but))
+         (call-interactively #'hui:ebut-rename))
+        ((ibut:is-p but)
+         (ibut:to (ibut:key but))
+         (call-interactively #'hui:ibut-rename))
+        (t
+            (hypb:error "(hbut:rename): Button is invalid; it has no 
attributes"))))
+
 (defun    hbut:report (&optional arg)
   "Pretty print the attributes of a button or buttons.
 
@@ -1329,7 +1356,7 @@ current."
 
 (defun    ibut:label-p (&optional as-label start-delim end-delim pos-flag 
two-lines-flag)
   "Return key for the Hyperbole implicit button label that point is within, 
else nil.
-This is an optional label that may precede an implicit button.
+This is the normalized key form of an optional label that may precede an 
implicit button.
 Use `ibut:at-p' instead to test if point is on either the
 implicit button itself or the label.  Assumes point is within the
 first line of any button label.
@@ -1386,6 +1413,13 @@ positions at which the button label delimiter begins and 
ends."
                              (ibut:key-to-label (ibut:label-to-key lbl)))))))
       (if loc-p buts (when buts (apply #'set:create buts))))))
 
+(defun    ibut:key (ibut)
+  "Return the key for Hyperbole implicit button symbol IBUT."
+  (if (ibut:is-p ibut)
+      (hattr:get ibut 'lbl-key)
+    (error "(ibut:key): Argument is not a Hyperbole implicit button symbol, 
`%s'"
+          ibut)))
+
 (defalias 'ibut:key-src      'hbut:key-src)
 (defalias 'ibut:key-to-label 'hbut:key-to-label)
 (defalias 'ibut:label-to-key 'hbut:label-to-key)
@@ -1497,7 +1531,9 @@ type for ibtype is presently undefined."
                            '(to-p ,to-func style ,style))))))
 
 (defun    ibtype:def-symbol (ibtype)
-  "Return the abbreviated symbol for IBTYPE used in its `defib'; IBTYPE may be 
a string or symbol."
+  "Return the abbreviated symbol for IBTYPE used in its `defib'.
+IBTYPE must be a symbol or string that begins with 'ibtype::' or nil
+is returned."
   (let ((name (if (stringp ibtype)
                  ibtype
                (symbol-name ibtype))))
diff --git a/hib-kbd.el b/hib-kbd.el
index 40166f3..eada6e8 100644
--- a/hib-kbd.el
+++ b/hib-kbd.el
@@ -49,7 +49,7 @@ Return t if the sequence appears to be valid, else nil."
 (defib kbd-key ()
   "Execute a key sequence found around point, delimited by curly braces, {}, 
if any.
 Key sequences should be in human readable form, e.g. {C-x C-b}, or what 
`key-description' returns.
-Forms such as {\C-b}, {\^b}, and {^b} will not be recognized.
+Forms such as {\C-b}, {\^b}, and {^M} will not be recognized.
 
 Any key sequence must be a string of one of the following:
   a Hyperbole minibuffer menu item key sequence,
diff --git a/hibtypes.el b/hibtypes.el
index af3e85a..1ffd1d5 100644
--- a/hibtypes.el
+++ b/hibtypes.el
@@ -28,30 +28,30 @@
 
 (defconst mail-address-tld-regexp
   (format "\\.%s\\'"
-         (regexp-opt
-          '("aero" "arpa" "asia" "biz" "cat" "com" "coop" "edu" "gov" "info"
-            "int" "jobs" "mil" "mobi" "museum" "name" "net" "org" "pro" "tel"
-            "travel" "uucp"
-            "ac" "ad" "ae" "af" "ag" "ai" "al" "am" "an" "ao" "aq"
-            "ar" "as" "at" "au" "aw" "ax" "az" "ba" "bb" "bd" "be" "bf" "bg" 
"bh"
-            "bi" "bj" "bl" "bm" "bn" "bo" "br" "bs" "bt" "bv" "bw" "by" "bz" 
"ca"
-            "cc" "cd" "cf" "cg" "ch" "ci" "ck" "cl" "cm" "cn" "co" "cr" "cu" 
"cv"
-            "cx" "cy" "cz" "de" "dj" "dk" "dm" "do" "dz" "ec" "ee" "eg" "eh" 
"er"
-            "es" "et" "eu" "fi" "fj" "fk" "fm" "fo" "fr" "ga" "gb" "gd" "ge" 
"gf"
-            "gg" "gh" "gi" "gl" "gm" "gn" "gp" "gq" "gr" "gs" "gt" "gu" "gw" 
"gy"
-            "hk" "hm" "hn" "hr" "ht" "hu" "id" "ie" "il" "im" "in" "io" "iq" 
"ir"
-            "is" "it" "je" "jm" "jo" "jp" "ke" "kg" "kh" "ki" "km" "kn" "kp" 
"kr"
-            "kw" "ky" "kz" "la" "lb" "lc" "li" "lk" "lr" "ls" "lt" "lu" "lv" 
"ly"
-            "ma" "mc" "md" "me" "mf" "mg" "mh" "mk" "ml" "mm" "mn" "mo" "mp" 
"mq"
-            "mr" "ms" "mt" "mu" "mv" "mw" "mx" "my" "mz" "na" "nc" "ne" "nf" 
"ng"
-            "ni" "nl" "no" "np" "nr" "nu" "nz" "om" "pa" "pe" "pf" "pg" "ph" 
"pk"
-            "pl" "pm" "pn" "pr" "ps" "pt" "pw" "py" "qa" "re" "ro" "rs" "ru" 
"rw"
-            "sa" "sb" "sc" "sd" "se" "sg" "sh" "si" "sj" "sk" "sl" "sm" "sn" 
"so"
-            "sr" "st" "su" "sv" "sy" "sz" "tc" "td" "tf" "tg" "th" "tj" "tk" 
"tl"
-            "tm" "tn" "to" "tp" "tr" "tt" "tv" "tw" "tz" "ua" "ug" "uk" "um" 
"us"
-            "uy" "uz" "va" "vc" "ve" "vg" "vi" "vn" "vu" "wf" "ws" "ye" "yt" 
"yu"
-            "za" "zm" "zw")
-          t))
+             (regexp-opt
+              '("aero" "arpa" "asia" "biz" "cat" "com" "coop" "edu" "gov" 
"info"
+                "int" "jobs" "mil" "mobi" "museum" "name" "net" "org" "pro" 
"tel"
+                "travel" "uucp"
+                "ac" "ad" "ae" "af" "ag" "ai" "al" "am" "an" "ao" "aq"
+                "ar" "as" "at" "au" "aw" "ax" "az" "ba" "bb" "bd" "be" "bf" 
"bg" "bh"
+                "bi" "bj" "bl" "bm" "bn" "bo" "br" "bs" "bt" "bv" "bw" "by" 
"bz" "ca"
+                "cc" "cd" "cf" "cg" "ch" "ci" "ck" "cl" "cm" "cn" "co" "cr" 
"cu" "cv"
+                "cx" "cy" "cz" "de" "dj" "dk" "dm" "do" "dz" "ec" "ee" "eg" 
"eh" "er"
+                "es" "et" "eu" "fi" "fj" "fk" "fm" "fo" "fr" "ga" "gb" "gd" 
"ge" "gf"
+                "gg" "gh" "gi" "gl" "gm" "gn" "gp" "gq" "gr" "gs" "gt" "gu" 
"gw" "gy"
+                "hk" "hm" "hn" "hr" "ht" "hu" "id" "ie" "il" "im" "in" "io" 
"iq" "ir"
+                "is" "it" "je" "jm" "jo" "jp" "ke" "kg" "kh" "ki" "km" "kn" 
"kp" "kr"
+                "kw" "ky" "kz" "la" "lb" "lc" "li" "lk" "lr" "ls" "lt" "lu" 
"lv" "ly"
+                "ma" "mc" "md" "me" "mf" "mg" "mh" "mk" "ml" "mm" "mn" "mo" 
"mp" "mq"
+                "mr" "ms" "mt" "mu" "mv" "mw" "mx" "my" "mz" "na" "nc" "ne" 
"nf" "ng"
+                "ni" "nl" "no" "np" "nr" "nu" "nz" "om" "pa" "pe" "pf" "pg" 
"ph" "pk"
+                "pl" "pm" "pn" "pr" "ps" "pt" "pw" "py" "qa" "re" "ro" "rs" 
"ru" "rw"
+                "sa" "sb" "sc" "sd" "se" "sg" "sh" "si" "sj" "sk" "sl" "sm" 
"sn" "so"
+                "sr" "st" "su" "sv" "sy" "sz" "tc" "td" "tf" "tg" "th" "tj" 
"tk" "tl"
+                "tm" "tn" "to" "tp" "tr" "tt" "tv" "tw" "tz" "ua" "ug" "uk" 
"um" "us"
+                "uy" "uz" "va" "vc" "ve" "vg" "vi" "vn" "vu" "wf" "ws" "ye" 
"yt" "yu"
+                "za" "zm" "zw")
+              t))
   "Regular expression of most common Internet top level domain names.")
 
 (defconst mail-address-regexp
@@ -76,9 +76,9 @@
 
 (defvar mail-address-mode-list
   '(emacs-lisp-mode lisp-interaction-mode lisp-mode scheme-mode
-    c-mode c++-mode html-mode java-mode js2-mode objc-mode
-    python-mode smalltalk-mode fundamental-mode text-mode
-    indented-text-mode web-mode)
+                    c-mode c++-mode html-mode java-mode js2-mode objc-mode
+                    python-mode smalltalk-mode fundamental-mode text-mode
+                    indented-text-mode web-mode)
   "List of major modes in which mail address implicit buttons are active.")
 
 (defun mail-address-at-p ()
@@ -87,39 +87,38 @@
     (save-excursion
       (skip-chars-backward "^ \t\n\r\f\"\'(){}[];:<>|")
       (and (or (looking-at mail-address-regexp)
-              (looking-at (concat "mailto:"; mail-address-regexp)))
-          (save-match-data
-            (string-match mail-address-tld-regexp (match-string-no-properties 
1)))
-          (match-string-no-properties 1)))))
+                  (looking-at (concat "mailto:"; mail-address-regexp)))
+              (save-match-data
+                (string-match mail-address-tld-regexp 
(match-string-no-properties 1)))
+              (match-string-no-properties 1)))))
 
 (defib mail-address ()
   "If on an e-mail address in a specific buffer type, compose mail to that 
address in another window.
 Applies to any major mode in `mail-address-mode-list', the HyRolo match buffer,
 any buffer attached to a file in `hyrolo-file-list', or any buffer with
 \"mail\" or \"rolo\" (case-insensitive) within its name."
-  (if (let ((case-fold-search t))
-       (or
-        (and (memq major-mode mail-address-mode-list)
-             (not (string-match "-Elements\\'" (buffer-name)))
-             ;; Don't want this to trigger within an OOBR-FTR buffer.
-             (not (string-match "\\`\\(OOBR.*-FTR\\|oobr.*-ftr\\)"
-                                (buffer-name)))
-             (not (string-equal "*Implementors*" (buffer-name))))
-        (and
-         (string-match "mail\\|rolo" (buffer-name))
-         ;; Don't want this to trigger in a mail/news summary buffer.
-         (not (or (hmail:lister-p) (hnews:lister-p))))
-        (if (boundp 'hyrolo-display-buffer)
-            (equal (buffer-name) hyrolo-display-buffer))
-        (and buffer-file-name
-             (boundp 'hyrolo-file-list)
-             (set:member (current-buffer)
-                         (mapcar 'get-file-buffer hyrolo-file-list)))))
-      (let ((address (mail-address-at-p)))
-       (if address
-           (progn
-             (ibut:label-set address (match-beginning 1) (match-end 1))
-             (hact 'mail-other-window nil address))))))
+  (when (let ((case-fold-search t))
+             (or
+              (and (memq major-mode mail-address-mode-list)
+                   (not (string-match "-Elements\\'" (buffer-name)))
+                   ;; Don't want this to trigger within an OOBR-FTR buffer.
+                   (not (string-match "\\`\\(OOBR.*-FTR\\|oobr.*-ftr\\)"
+                                                  (buffer-name)))
+                   (not (string-equal "*Implementors*" (buffer-name))))
+              (and
+               (string-match "mail\\|rolo" (buffer-name))
+               ;; Don't want this to trigger in a mail/news summary buffer.
+               (not (or (hmail:lister-p) (hnews:lister-p))))
+              (when (boundp 'hyrolo-display-buffer)
+                (equal (buffer-name) hyrolo-display-buffer))
+              (and buffer-file-name
+                   (boundp 'hyrolo-file-list)
+                   (set:member (current-buffer)
+                                       (mapcar 'get-file-buffer 
hyrolo-file-list)))))
+    (let ((address (mail-address-at-p)))
+         (when address
+           (ibut:label-set address (match-beginning 1) (match-end 1))
+           (hact 'mail-other-window nil address)))))
 
 ;;; ========================================================================
 ;;; Displays files and directories when a valid pathname is activated.
@@ -129,11 +128,14 @@ any buffer attached to a file in `hyrolo-file-list', or 
any buffer with
   "Make a valid pathname display the path entry.
 Also works for delimited and non-delimited remote pathnames,
 Texinfo @file{} entries, and hash-style link references to HTML,
-Markdown or Emacs outline headings, and MSWindows paths (see
-\"${hyperb:dir}/DEMO#POSIX and MSWindows Paths\" for details).
-Emacs Lisp library files (filenames without any directory
-component that end in .el and .elc) are looked up using the
-`load-path' directory list.
+XML, SGML, Markdown or Emacs outline headings, shell script
+comments, and MSWindows paths (see \"${hyperb:dir}/DEMO#POSIX and
+MSWindows Paths\" for details).  Emacs Lisp library
+files (filenames without any directory component that end in .el
+and .elc) are looked up using the `load-path' directory list.
+
+The pathname may contain references to Emacs Lisp variables or
+shell environment variables using the syntax, \"${variable-name}\".
 
 See `hpath:at-p' function documentation for possible delimiters.
 See `hpath:suffixes' variable documentation for suffixes that are
@@ -143,41 +145,41 @@ display options."
   ;;
   ;; Ignore paths in Buffer menu, dired and helm modes.
   (unless (or (eq major-mode 'helm-major-mode)
-             (delq nil (mapcar (lambda (substring)
-                                 (string-match substring (format-mode-line 
mode-name)))
-                               '("Buffer Menu" "IBuffer" "Dired"))))
+                 (delq nil (mapcar (lambda (substring)
+                                                 (string-match substring 
(format-mode-line mode-name)))
+                                               '("Buffer Menu" "IBuffer" 
"Dired"))))
     (let ((path (hpath:at-p))
-         full-path)
+             full-path)
       (if path
-         (progn (apply #'ibut:label-set path (hpath:start-end path))
-                (hact 'link-to-file path))
-       ;;
-       ;; Match to Emacs Lisp and Info files without any directory component.
-       (if (setq path (hpath:delimited-possible-path))
-           (cond ((string-match "\\`[^\\\\/~]+\\.elc?\\(\\.gz\\)?\\'" path)
-                  (apply #'ibut:label-set path (hpath:start-end path))
-                  (if (string-match hpath:prefix-regexp path)
-                      (hact 'hpath:find path)
-                    (setq full-path (locate-library path))
-                    (if full-path
-                        (hact 'link-to-file full-path)
-                      (hact 'error "(pathname): \"%s\" not found in 
`load-path'"
-                            path))))
-                 ;; Match only if "(filename)" references a valid Info file
-                 ;; and point is within the filename, not on any delimiters
-                 ;; so that delimited thing matches trigger later.
-                 ((and (not (looking-at "[\"()]"))
-                       (string-match "\\`(\\([^ \t\n\r\f]+\\))\\'" path)
-                       (save-match-data (require 'info))
-                       (Info-find-file (match-string 1 path) t))
-                  (apply #'ibut:label-set path (hpath:start-end path))
-                  (hact 'link-to-Info-node (format "%sTop" path)))
-                 ((string-match hpath:info-suffix path)
-                  (apply #'ibut:label-set path (hpath:start-end path))
-                  (hact 'link-to-Info-node (format "(%s)Top" path)))
-                 ;; Otherwise, fall through and allow other implicit
-                 ;; button types to handle this context.
-                 ))))))
+             (progn (apply #'ibut:label-set path (hpath:start-end path))
+                        (hact 'link-to-file path))
+           ;;
+           ;; Match to Emacs Lisp and Info files without any directory 
component.
+           (when (setq path (hpath:delimited-possible-path))
+             (cond ((string-match "\\`[^\\\\/~]+\\.elc?\\(\\.gz\\)?\\'" path)
+                        (apply #'ibut:label-set path (hpath:start-end path))
+                        (if (string-match hpath:prefix-regexp path)
+                            (hact 'hpath:find path)
+                          (setq full-path (locate-library path))
+                          (if full-path
+                                  (hact 'link-to-file full-path)
+                            (hact 'error "(pathname): \"%s\" not found in 
`load-path'"
+                                      path))))
+                       ;; Match only if "(filename)" references a valid Info 
file
+                       ;; and point is within the filename, not on any 
delimiters
+                       ;; so that delimited thing matches trigger later.
+                       ((and (not (looking-at "[\"()]"))
+                                 (string-match "\\`(\\([^ \t\n\r\f]+\\))\\'" 
path)
+                                 (save-match-data (require 'info))
+                                 (Info-find-file (match-string 1 path) t))
+                        (apply #'ibut:label-set path (hpath:start-end path))
+                        (hact 'link-to-Info-node (format "%sTop" path)))
+                       ((string-match hpath:info-suffix path)
+                        (apply #'ibut:label-set path (hpath:start-end path))
+                        (hact 'link-to-Info-node (format "(%s)Top" path)))
+                       ;; Otherwise, fall through and allow other implicit
+                       ;; button types to handle this context.
+                       ))))))
 
 ;;; ========================================================================
 ;;; Use the XEmacs func-menu library to jump to a function referred to
@@ -190,35 +192,35 @@ display options."
   "Display the in-buffer definition of a function name that point is within or 
after, else nil.
 Trigger only when the \"func-menu.el\" library has been loaded and the
 current major mode is one handled by func-menu."
-  (if (and (boundp 'fume-function-name-regexp-alist)
-          (assq major-mode fume-function-name-regexp-alist)
-          (not (derived-mode-p 'dired-mode))
-          ;; Not sure if this is defined in early versions of Emacs.
-          (fboundp 'skip-syntax-backward)
-          ;; Prevent triggering when on method, class or function definition
-          ;; lines under InfoDock where outlining in programming modes is used.
-          (if (and (featurep 'infodock)
-                   (boundp 'id-outline-in-programming-modes)
-                   id-outline-in-programming-modes
-                   (boundp 'outline-regexp) (stringp outline-regexp))
-              (save-excursion (beginning-of-line)
-                              (not (looking-at outline-regexp)))
-            t))
+  (when (and (boundp 'fume-function-name-regexp-alist)
+                (assq major-mode fume-function-name-regexp-alist)
+                (not (derived-mode-p 'dired-mode))
+                ;; Not sure if this is defined in early versions of Emacs.
+                (fboundp 'skip-syntax-backward)
+                ;; Prevent triggering when on method, class or function 
definition
+                ;; lines under InfoDock where outlining in programming modes 
is used.
+                (if (and (featurep 'infodock)
+                             (boundp 'id-outline-in-programming-modes)
+                             id-outline-in-programming-modes
+                             (boundp 'outline-regexp) (stringp outline-regexp))
+                    (save-excursion (beginning-of-line)
+                                            (not (looking-at outline-regexp)))
+                  t))
       (save-excursion
-       (skip-syntax-backward "w_")
-       (if (looking-at "\\(\\sw\\|\\s_\\)+")
-           (let ((function-name (buffer-substring-no-properties (point) 
(match-end 0)))
-                 (start (point))
-                 (end (match-end 0))
-                 function-pos)
-             (unless fume-funclist
-               (fume-set-defaults)
-               (let ((fume-scanning-message nil))
-                 (fume-rescan-buffer)))
-             (setq function-pos (cdr-safe (assoc function-name fume-funclist)))
-             (when function-pos
-               (ibut:label-set function-name start end)
-               (hact 'function-in-buffer function-name function-pos)))))))
+           (skip-syntax-backward "w_")
+           (when (looking-at "\\(\\sw\\|\\s_\\)+")
+             (let ((function-name (buffer-substring-no-properties (point) 
(match-end 0)))
+                       (start (point))
+                       (end (match-end 0))
+                       function-pos)
+               (unless fume-funclist
+                     (fume-set-defaults)
+                     (let ((fume-scanning-message nil))
+                       (fume-rescan-buffer)))
+               (setq function-pos (cdr-safe (assoc function-name 
fume-funclist)))
+               (when function-pos
+                     (ibut:label-set function-name start end)
+                     (hact 'function-in-buffer function-name 
function-pos)))))))
 
 ;;; ========================================================================
 ;;; Handles internal references within an annotated bibliography, delimiters=[]
@@ -233,15 +235,15 @@ must have an attached file."
   (and (not (bolp))
        buffer-file-name
        (let ((chr (aref (buffer-name) 0)))
-        (not (or (eq chr ?\ ) (eq chr ?*))))
+            (not (or (eq chr ?\ ) (eq chr ?*))))
        (not (or (derived-mode-p 'prog-mode)
-               (apply #'derived-mode-p '(c-mode objc-mode c++-mode java-mode 
markdown-mode org-mode))))
+                       (apply #'derived-mode-p '(c-mode objc-mode c++-mode 
java-mode markdown-mode org-mode))))
        (let* ((ref-and-pos (hbut:label-p t "[" "]" t))
-             (ref (car ref-and-pos)))
-        (and ref (eq ?w (char-syntax (aref ref 0)))
-             (not (string-match "[#@]" ref))
-             (progn (ibut:label-set ref-and-pos)
-                    (hact 'annot-bib ref))))))
+                 (ref (car ref-and-pos)))
+            (and ref (eq ?w (char-syntax (aref ref 0)))
+                 (not (string-match "[#@]" ref))
+                 (progn (ibut:label-set ref-and-pos)
+                            (hact 'annot-bib ref))))))
 
 ;;; ========================================================================
 ;;; Handles Gnu debbugs issue ids, e.g. bug#45678 or just 45678.
@@ -260,42 +262,42 @@ must have an attached file."
 ;;; ========================================================================
 
 (defun markdown-follow-link-p ()
-    "Jump between reference links and definitions; between footnote markers 
and footnote text.
+  "Jump between reference links and definitions; between footnote markers and 
footnote text.
 Return t if jump and nil otherwise."
-    (cond
-     ;; Footnote definition
-     ((markdown-footnote-text-positions)
-      (markdown-footnote-return)
-      t)
-     ;; Footnote marker
-     ((markdown-footnote-marker-positions)
-      (markdown-footnote-goto-text)
-      t)
-     ;; Reference link
-     ((thing-at-point-looking-at markdown-regex-link-reference)
-      (markdown-reference-goto-definition)
-      t)
-     ;; Reference definition
-     ((thing-at-point-looking-at markdown-regex-reference-definition)
-      (markdown-reference-goto-link (match-string-no-properties 2))
-      t)))
+  (cond
+   ;; Footnote definition
+   ((markdown-footnote-text-positions)
+    (markdown-footnote-return)
+    t)
+   ;; Footnote marker
+   ((markdown-footnote-marker-positions)
+    (markdown-footnote-goto-text)
+    t)
+   ;; Reference link
+   ((thing-at-point-looking-at markdown-regex-link-reference)
+    (markdown-reference-goto-definition)
+    t)
+   ;; Reference definition
+   ((thing-at-point-looking-at markdown-regex-reference-definition)
+    (markdown-reference-goto-link (match-string-no-properties 2))
+    t)))
 
 (defun markdown-follow-inline-link-p (opoint)
   "Test to see if on an inline link, jump to its referent if it is absolute 
(not relative within the file), otherwise return to OPOINT."
   (skip-chars-forward "^\]\[()")
   (if (looking-at "\][\[()]")
       (progn (if (looking-at "\(")
-                (skip-chars-backward "^\]\[()")
-              (skip-chars-forward "\]\[\("))
-            ;; Leave point on the link even if not activated
-            ;; here, so that code elsewhere activates it.
-            (if (and (markdown-link-p)
-                     (save-match-data (not (or (hpath:www-at-p) 
(hpath:at-p)))))
-                ;; In-file referents are handled by the 
'markdown-internal-link'
-                ;; implicit button type, not here.
-                (progn (ibut:label-set (match-string-no-properties 0) 
(match-beginning 0) (match-end 0))
-                       (hpath:display-buffer (current-buffer))
-                       (hact 'markdown-follow-link-at-point))))
+                        (skip-chars-backward "^\]\[()")
+                  (skip-chars-forward "\]\[\("))
+                ;; Leave point on the link even if not activated
+                ;; here, so that code elsewhere activates it.
+                (when (and (markdown-link-p)
+                               (save-match-data (not (or (hpath:www-at-p) 
(hpath:at-p)))))
+                      ;; In-file referents are handled by the 
'markdown-internal-link'
+                      ;; implicit button type, not here.
+                      (ibut:label-set (match-string-no-properties 0) 
(match-beginning 0) (match-end 0))
+                          (hpath:display-buffer (current-buffer))
+                          (hact 'markdown-follow-link-at-point)))
     (goto-char opoint)
     nil))
 
@@ -303,27 +305,27 @@ Return t if jump and nil otherwise."
   "Display any in-file Markdown link referent at point.
 Pathnames and urls are handled elsewhere."
   (when (and (eq major-mode 'markdown-mode)
-            (not (hpath:www-at-p)))
+                (not (hpath:www-at-p)))
     (let ((opoint (point))
-         npoint)
+             npoint)
       (cond ((markdown-link-p)
-            (condition-case ()
-                ;; Follows a reference link or footnote to its referent.
-                (if (markdown-follow-link-p)
-                    (when (/= opoint (point))
-                      (ibut:label-set (match-string-no-properties 0) 
(match-beginning 0) (match-end 0))
-                      (setq npoint (point))
-                      (goto-char opoint)
-                      (hact 'link-to-file buffer-file-name npoint))
-                  ;; Follows an infile link.
-                  (markdown-follow-inline-link-p opoint))
-              ;; May be on the name of an inline link, so move to the
-              ;; link itself and follow that.
-              (error (markdown-follow-inline-link-p opoint))))
-           ((markdown-wiki-link-p)
-            (ibut:label-set (match-string-no-properties 0) (match-beginning 0) 
(match-end 0))
-            (hpath:display-buffer (current-buffer))
-            (hact 'markdown-follow-wiki-link-at-point))))))
+                (condition-case ()
+                        ;; Follows a reference link or footnote to its 
referent.
+                        (if (markdown-follow-link-p)
+                            (when (/= opoint (point))
+                              (ibut:label-set (match-string-no-properties 0) 
(match-beginning 0) (match-end 0))
+                              (setq npoint (point))
+                              (goto-char opoint)
+                              (hact 'link-to-file buffer-file-name npoint))
+                          ;; Follows an infile link.
+                      (markdown-follow-inline-link-p opoint))
+                  ;; May be on the name of an inline link, so move to the
+                  ;; link itself and follow that.
+                  (error (markdown-follow-inline-link-p opoint))))
+               ((markdown-wiki-link-p)
+                (ibut:label-set (match-string-no-properties 0) 
(match-beginning 0) (match-end 0))
+                (hpath:display-buffer (current-buffer))
+                (hact 'markdown-follow-wiki-link-at-point))))))
 
 ;;; ========================================================================
 ;;; Summarizes an Internet rfc for random access browsing by section.
@@ -333,16 +335,16 @@ Pathnames and urls are handled elsewhere."
   "Summarize the contents of an Internet rfc from anywhere within an rfc 
buffer.
 Each line in the summary may be selected to jump to a section."
   (let ((case-fold-search t)
-       (toc)
-       (opoint (point)))
+           (toc)
+           (opoint (point)))
     (if (and (string-match "rfc" (buffer-name))
-            (goto-char (point-min))
-            (progn (setq toc (search-forward "Table of Contents" nil t))
-                   (re-search-forward "^[ \t]*1.0?[ \t]+[^ \t\n\r]" nil t
-                                      (and toc 2))))
-       (progn (beginning-of-line)
-              (ibut:label-set (buffer-name))
-              (hact 'rfc-toc (buffer-name) opoint))
+                (goto-char (point-min))
+                (progn (setq toc (search-forward "Table of Contents" nil t))
+                           (re-search-forward "^[ \t]*1.0?[ \t]+[^ \t\n\r]" 
nil t
+                                                      (and toc 2))))
+           (progn (beginning-of-line)
+                  (ibut:label-set (buffer-name))
+                  (hact 'rfc-toc (buffer-name) opoint))
       (goto-char opoint)
       nil)))
 
@@ -353,45 +355,45 @@ Each line in the summary may be selected to jump to a 
section."
 (defib id-cflow ()
   "Expand or collapse C call trees and jump to code definitions.
 Require cross-reference tables built by the external `cxref' program of Cflow."
-  (if (and (eq major-mode 'id-cflow-mode)
-          (not (eolp)))
-      (let ((pnt (point)))
-       (save-excursion
-         (cond
-          ;; If on a repeated function mark, display its previously
-          ;; expanded tree.
-          ((progn (skip-chars-backward " ")
-                  (looking-at id-cflow-repeated-indicator))
-           (let ((end (point))
-                 start entry)
-             (beginning-of-line)
-             (skip-chars-forward "| ")
-             (setq start (point)
-                   entry (buffer-substring-no-properties start end))
-             (ibut:label-set entry start end)
-             (condition-case ()
-                 (hact 'link-to-regexp-match
-                       (concat "^[| ]*[&%%]*" (regexp-quote entry) "$")
-                       1 (current-buffer) t)
-               (error
-                (goto-char end)
-                (error "(id-cflow): No prior expansion found")))))
-          ;; If to the left of an entry, expand or contract its tree.
-          ((progn (beginning-of-line)
-                  (or (= pnt (point))
-                      (and (looking-at "[| ]+")
-                           (<= pnt (match-end 0)))))
-           (hact 'id-cflow-expand-or-contract current-prefix-arg))
-          ;; Within an entry's filename, display the file.
-          ((search-forward "\(" pnt t)
-           (let* ((start (point))
-                  (end (1- (search-forward "\)" nil t)))
-                  (file (buffer-substring-no-properties start end)))
-             (ibut:label-set file start end)
-             (hact 'link-to-file file)))
-          ;; Within an entry's function name, jump to its definition.
-          (t
-           (hact 'smart-c)))))))
+  (when (and (eq major-mode 'id-cflow-mode)
+                (not (eolp)))
+    (let ((pnt (point)))
+         (save-excursion
+           (cond
+            ;; If on a repeated function mark, display its previously
+            ;; expanded tree.
+            ((progn (skip-chars-backward " ")
+                        (looking-at id-cflow-repeated-indicator))
+             (let ((end (point))
+                       start entry)
+               (beginning-of-line)
+               (skip-chars-forward "| ")
+               (setq start (point)
+                         entry (buffer-substring-no-properties start end))
+               (ibut:label-set entry start end)
+               (condition-case ()
+                       (hact 'link-to-regexp-match
+                                 (concat "^[| ]*[&%%]*" (regexp-quote entry) 
"$")
+                                 1 (current-buffer) t)
+                     (error
+                      (goto-char end)
+                      (error "(id-cflow): No prior expansion found")))))
+            ;; If to the left of an entry, expand or contract its tree.
+            ((progn (beginning-of-line)
+                        (or (= pnt (point))
+                            (and (looking-at "[| ]+")
+                                     (<= pnt (match-end 0)))))
+             (hact 'id-cflow-expand-or-contract current-prefix-arg))
+            ;; Within an entry's filename, display the file.
+            ((search-forward "\(" pnt t)
+             (let* ((start (point))
+                        (end (1- (search-forward "\)" nil t)))
+                        (file (buffer-substring-no-properties start end)))
+               (ibut:label-set file start end)
+               (hact 'link-to-file file)))
+            ;; Within an entry's function name, jump to its definition.
+            (t
+             (hact 'smart-c)))))))
 
 ;;; ========================================================================
 ;;; Jumps to the source line associated with a ctags file entry.
@@ -406,18 +408,18 @@ Require cross-reference tables built by the external 
`cxref' program of Cflow."
       ;;             identifier       pathname              line-number
       ;; ctags vgrind output format entry
       (let ((identifier (match-string-no-properties 1))
-           (file (expand-file-name (match-string-no-properties 2)))
-           (line-num (string-to-number (match-string-no-properties 3))))
-       (ibut:label-set identifier (match-beginning 1) (match-end 1))
-       (hact 'link-to-file-line file line-num)))
+               (file (expand-file-name (match-string-no-properties 2)))
+               (line-num (string-to-number (match-string-no-properties 3))))
+           (ibut:label-set identifier (match-beginning 1) (match-end 1))
+           (hact 'link-to-file-line file line-num)))
      ((looking-at "^\\(\\S-+\\) +\\([1-9][0-9]*\\) \\(\\S-+\\.[a-zA-Z]+\\) ")
       ;; ctags cxref output format entry
       ;;             identifier    line-number           pathname
       (let ((identifier (match-string-no-properties 1))
-           (line-num (string-to-number (match-string-no-properties 2)))
-           (file (expand-file-name (match-string-no-properties 3))))
-       (ibut:label-set identifier (match-beginning 1) (match-end 1))
-       (hact 'link-to-file-line file line-num))))))
+               (line-num (string-to-number (match-string-no-properties 2)))
+               (file (expand-file-name (match-string-no-properties 3))))
+           (ibut:label-set identifier (match-beginning 1) (match-end 1))
+           (hact 'link-to-file-line file line-num))))))
 
 ;;; ========================================================================
 ;;; Jumps to the source line associated with an etags file entry in a TAGS 
buffer.
@@ -427,34 +429,34 @@ Require cross-reference tables built by the external 
`cxref' program of Cflow."
   "Jump to the source line associated with an etags file entry in a TAGS 
buffer.
 If on a tag entry line, jump to the source line for the tag.  If on a
 pathname line or line preceding it, jump to the associated file."
-  (if (let (case-fold-search) (string-match "^TAGS" (buffer-name)))
-      (save-excursion
-       (beginning-of-line)
-       (cond
-        ((save-excursion
-           (and (or (and (eq (following-char) ?\^L)
-                         (zerop (forward-line 1)))
-                    (and (zerop (forward-line -1))
-                         (eq (following-char) ?\^L)
-                         (zerop (forward-line 1))))
-                (looking-at "\\([^,\n\r]+\\),[0-9]+$")))
-         (let ((file (match-string-no-properties 1)))
-           (ibut:label-set file (match-beginning 1) (match-end 1))
-           (hact 'link-to-file file)))
-        ((looking-at
-          "\\([^\^?\n\r]+\\)[ ]*\^?\\([^\^A\n\r]+\^A\\)?\\([1-9][0-9]+\\),")
-         (let* ((tag-grouping (if (match-beginning 2) 2 1))
-                (tag (buffer-substring-no-properties (match-beginning 
tag-grouping)
-                                                     (1- (match-end 
tag-grouping))))
-                (line (string-to-number (match-string-no-properties 3)))
-                file)
-           (ibut:label-set tag (match-beginning tag-grouping)
-                           (1- (match-end tag-grouping)))
-           (save-excursion
-             (if (re-search-backward "\^L\r?\n\\([^,\n\r]+\\),[0-9]+$" nil t)
-                 (setq file (expand-file-name (match-string-no-properties 1)))
-               (setq file "No associated file name")))
-           (hact 'link-to-file-line file line)))))))
+  (when (let (case-fold-search) (string-match "^TAGS" (buffer-name)))
+    (save-excursion
+         (beginning-of-line)
+         (cond
+          ((save-excursion
+             (and (or (and (eq (following-char) ?\^L)
+                                   (zerop (forward-line 1)))
+                          (and (zerop (forward-line -1))
+                                   (eq (following-char) ?\^L)
+                                   (zerop (forward-line 1))))
+                      (looking-at "\\([^,\n\r]+\\),[0-9]+$")))
+           (let ((file (match-string-no-properties 1)))
+             (ibut:label-set file (match-beginning 1) (match-end 1))
+             (hact 'link-to-file file)))
+          ((looking-at
+            "\\([^\^?\n\r]+\\)[ ]*\^?\\([^\^A\n\r]+\^A\\)?\\([1-9][0-9]+\\),")
+           (let* ((tag-grouping (if (match-beginning 2) 2 1))
+                      (tag (buffer-substring-no-properties (match-beginning 
tag-grouping)
+                                                                           (1- 
(match-end tag-grouping))))
+                      (line (string-to-number (match-string-no-properties 3)))
+                      file)
+             (ibut:label-set tag (match-beginning tag-grouping)
+                                     (1- (match-end tag-grouping)))
+             (save-excursion
+               (if (re-search-backward "\^L\r?\n\\([^,\n\r]+\\),[0-9]+$" nil t)
+                       (setq file (expand-file-name 
(match-string-no-properties 1)))
+                     (setq file "No associated file name")))
+             (hact 'link-to-file-line file line)))))))
 
 ;;; ========================================================================
 ;;; Jumps to C/C++ source line associated with Cscope C analyzer output line.
@@ -469,19 +471,19 @@ anything."
   (and (boundp 'cscope:bname-prefix)  ;; (featurep 'cscope)
        (stringp cscope:bname-prefix)
        (string-match (regexp-quote cscope:bname-prefix)
-                    (buffer-name))
+                            (buffer-name))
        (= (match-beginning 0) 0)
        (save-excursion
-        (beginning-of-line)
-        (looking-at cscope-output-line-regexp))
+            (beginning-of-line)
+            (looking-at cscope-output-line-regexp))
        (let (start end)
-        (skip-chars-backward "^\n\r")
-        (setq start (point))
-        (skip-chars-forward "^\n\r")
-        (setq end (point))
-        (ibut:label-set (buffer-substring start end)
-                        start end)
-        (hact 'cscope-interpret-output-line))))
+            (skip-chars-backward "^\n\r")
+            (setq start (point))
+            (skip-chars-forward "^\n\r")
+            (setq end (point))
+            (ibut:label-set (buffer-substring start end)
+                                    start end)
+            (hact 'cscope-interpret-output-line))))
 
 ;;; ========================================================================
 ;;; Makes README table of contents entries jump to associated sections.
@@ -496,18 +498,18 @@ with some whitespace followed by one or more asterisk 
characters.  Each
 file section name line must start with one or more asterisk characters at
 the very beginning of the line."
   (let (section)
-    (if (and (string-match "DEMO\\|README\\|TUTORIAL" (buffer-name))
-            (save-excursion
-              (beginning-of-line)
-              ;; Entry line within a TOC
-              (if (looking-at "[ \t]+\\*+[ \t]+\\(.*[^ \t]\\)[ \t]*$")
-                  (setq section (match-string-no-properties 1))))
-            (progn (ibut:label-set section (match-beginning 1) (match-end 1))
-                   t)
-            (save-excursion (re-search-backward
-                             "^\\*?*[ \t]*\\(Table of \\)?Contents[ \t]*$"
-                             nil t)))
-       (hact 'text-toc section))))
+    (when (and (string-match "DEMO\\|README\\|TUTORIAL" (buffer-name))
+                  (save-excursion
+                    (beginning-of-line)
+                    ;; Entry line within a TOC
+                    (if (looking-at "[ \t]+\\*+[ \t]+\\(.*[^ \t]\\)[ \t]*$")
+                            (setq section (match-string-no-properties 1))))
+                  (progn (ibut:label-set section (match-beginning 1) 
(match-end 1))
+                             t)
+                  (save-excursion (re-search-backward
+                                           "^\\*?*[ \t]*\\(Table of 
\\)?Contents[ \t]*$"
+                                           nil t)))
+         (hact 'text-toc section))))
 
 ;;; ========================================================================
 ;;; Makes directory summaries into file list menus.
@@ -518,21 +520,20 @@ the very beginning of the line."
 Display selected files.  Each file name must be at the beginning of the line
 or may be preceded by some semicolons and must be followed by one or more
 spaces and then another non-space, non-parenthesis, non-brace character."
-  (if buffer-file-name
-      (let ((file (file-name-nondirectory buffer-file-name))
-           entry start end)
-       (if (or (string-equal file "DIR")
-               (string-match "\\`MANIFEST\\(\\..+\\)?\\'" file))
+  (when buffer-file-name
+    (let ((file (file-name-nondirectory buffer-file-name))
+             entry start end)
+         (when (or (string-equal file "DIR")
+                       (string-match "\\`MANIFEST\\(\\..+\\)?\\'" file))
            (save-excursion
              (beginning-of-line)
-             (if (looking-at "\\(;+[ \t]*\\)?\\([^(){}* \t\n\r]+\\)")
-                 (progn
+             (when (looking-at "\\(;+[ \t]*\\)?\\([^(){}* \t\n\r]+\\)")
                    (setq entry (match-string-no-properties 2)
-                         start (match-beginning 2)
-                         end (match-end 2))
-                   (if (file-exists-p entry)
-                       (progn (ibut:label-set entry start end)
-                              (hact 'link-to-file entry))))))))))
+                             start (match-beginning 2)
+                             end (match-end 2))
+                   (when (file-exists-p entry)
+                         (ibut:label-set entry start end)
+                         (hact 'link-to-file entry))))))))
 
 ;;; ========================================================================
 ;;; Executes or documents command bindings of brace delimited key sequences.
@@ -550,27 +551,27 @@ The following formats are recognized: RFC822, rfc-822, 
and RFC 822.  The
 `hpath:rfc' variable specifies the location from which to retrieve RFCs.
 Requires the Emacs builtin Tramp library for ftp file retrievals."
   (let ((case-fold-search t)
-       (rfc-num nil))
+           (rfc-num nil))
     (and (not (memq major-mode '(dired-mode monkey-mode)))
-        (boundp 'hpath:rfc)
-        (stringp hpath:rfc)
-        (or (looking-at " *\\(rfc[- ]?\\([0-9]+\\)\\)")
-            (save-excursion
-              (skip-chars-backward "0-9")
-              (skip-chars-backward "- ")
-              (skip-chars-backward "rRfFcC")
-              (looking-at " *\\(rfc[- ]?\\([0-9]+\\)\\)")))
-        (progn (setq rfc-num (match-string-no-properties 2))
-               (ibut:label-set (match-string-no-properties 1))
-               t)
-        ;; Ensure remote file access is available for retrieving a remote
-        ;; RFC, if need be.
-        (if (string-match "^/.+:" hpath:rfc)
-            ;; This is a remote path.
-            (hpath:remote-available-p)
-          ;; local path
-          t)
-        (hact 'link-to-rfc rfc-num))))
+            (boundp 'hpath:rfc)
+            (stringp hpath:rfc)
+            (or (looking-at " *\\(rfc[- ]?\\([0-9]+\\)\\)")
+                (save-excursion
+                  (skip-chars-backward "0-9")
+                  (skip-chars-backward "- ")
+                  (skip-chars-backward "rRfFcC")
+                  (looking-at " *\\(rfc[- ]?\\([0-9]+\\)\\)")))
+            (progn (setq rfc-num (match-string-no-properties 2))
+                       (ibut:label-set (match-string-no-properties 1))
+                       t)
+            ;; Ensure remote file access is available for retrieving a remote
+            ;; RFC, if need be.
+            (if (string-match "^/.+:" hpath:rfc)
+                ;; This is a remote path.
+                (hpath:remote-available-p)
+              ;; local path
+              t)
+            (hact 'link-to-rfc rfc-num))))
 
 ;;; ========================================================================
 ;;; Shows man page associated with a man apropos entry.
@@ -581,15 +582,15 @@ Requires the Emacs builtin Tramp library for ftp file 
retrievals."
   (save-excursion
     (beginning-of-line)
     (let ((nm "[^ \t\n\r!@,][^ \t\n\r,]*")
-         topic)
+             topic)
       (and (looking-at
-           (concat
-            "^\\(\\*[ \t]+[!@]\\)?\\(" nm "[ \t]*,[ \t]*\\)*\\(" nm "\\)[ \t]*"
-            "\\(([-0-9a-zA-z]+)\\)\\(::\\)?[ \t]+-[ \t]+[^ \t\n\r]"))
-          (setq topic (concat (match-string-no-properties 3)
-                              (match-string-no-properties 4)))
-          (ibut:label-set topic (match-beginning 3) (match-end 4))
-          (hact 'man topic)))))
+               (concat
+                "^\\(\\*[ \t]+[!@]\\)?\\(" nm "[ \t]*,[ \t]*\\)*\\(" nm "\\)[ 
\t]*"
+                "\\(([-0-9a-zA-z]+)\\)\\(::\\)?[ \t]+-[ \t]+[^ \t\n\r]"))
+              (setq topic (concat (match-string-no-properties 3)
+                                          (match-string-no-properties 4)))
+              (ibut:label-set topic (match-beginning 3) (match-end 4))
+              (hact 'man topic)))))
 
 ;;; ========================================================================
 ;;; Follows links to Hyperbole Koutliner cells.
@@ -605,16 +606,16 @@ Requires the Emacs builtin Tramp library for ftp file 
retrievals."
   "Call LINK-ACTYPE as the action type and prefix button with LABEL-PREFIX if 
point is within an implicit button delimited by START-DELIM and END-DELIM."
   ;; Used by e/g/ilink implicit buttons."
   (let* ((label-start-end (hbut:label-p t start-delim end-delim t t))
-        (label-and-file (nth 0 label-start-end))
-        (start-pos (nth 1 label-start-end))
-        (end-pos (nth 2 label-start-end))
-        lbl but-key lbl-key key-file)
+            (label-and-file (nth 0 label-start-end))
+            (start-pos (nth 1 label-start-end))
+            (end-pos (nth 2 label-start-end))
+            lbl but-key lbl-key key-file)
     (when label-and-file
       (setq label-and-file (parse-label-and-file label-and-file)
-           partial-lbl (nth 0 label-and-file)
-           but-key (hbut:label-to-key partial-lbl)
-           key-file (nth 1 label-and-file)
-           lbl-key (when but-key (concat label-prefix but-key)))
+               partial-lbl (nth 0 label-and-file)
+               but-key (hbut:label-to-key partial-lbl)
+               key-file (nth 1 label-and-file)
+               lbl-key (when but-key (concat label-prefix but-key)))
       (ibut:label-set (hbut:key-to-label lbl-key) start-pos end-pos)
       (hact link-actype but-key key-file))))
 
@@ -623,18 +624,18 @@ Requires the Emacs builtin Tramp library for ftp file 
retrievals."
   ;; Can't use split-string here because file path may contain colons;
   ;; we want to split only on the first colon.
   (let ((i 0)
-       (len (length label-and-file))
-       label
-       file)
+           (len (length label-and-file))
+           label
+           file)
     (while (< i len)
       (when (= ?: (aref label-and-file i))
-       (when (zerop i)
-         (error "(parse-label-and-file): Missing label: '%s'" label-and-file))
-       (setq label (hpath:trim (substring label-and-file 0 i))
-             file (hpath:trim (substring label-and-file (1+ i))))
-       (when (string-empty-p label) (setq label nil))
-       (when (string-empty-p file) (setq file nil))
-       (setq i len))
+           (when (zerop i)
+             (error "(parse-label-and-file): Missing label: '%s'" 
label-and-file))
+           (setq label (hpath:trim (substring label-and-file 0 i))
+                 file (hpath:trim (substring label-and-file (1+ i))))
+           (when (string-empty-p label) (setq label nil))
+           (when (string-empty-p file) (setq file nil))
+           (setq i len))
       (setq i (1+ i)))
     (unless (or label (string-empty-p label-and-file))
       (setq label label-and-file))
@@ -706,28 +707,27 @@ buffer)."
     (save-excursion
       (beginning-of-line)
       (let ((line-num-regexp "\\( *\\|-+> \\)?\\([1-9][0-9]*\\) ")
-           line-num
-           file)
-       (when (looking-at line-num-regexp)
-         ;; ipython stack trace matches and context lines (-A<num> option)
-         (setq line-num (match-string-no-properties 2)
-               file nil)
-         (while (and (= (forward-line -1) 0)
-                     (looking-at line-num-regexp)))
-         (unless (or (looking-at line-num-regexp)
-                     (not (re-search-forward " in " nil (point-at-eol)))
-                     (and (setq file (buffer-substring-no-properties 
(point-at-bol) (match-beginning 0)))
-                          (string-empty-p (string-trim file))))
-           (let* ((but-label (concat file ":" line-num))
-                  (source-loc (if (file-name-absolute-p file)
-                                  nil
-                                (hbut:key-src t))))
-             (if (stringp source-loc)
-                 (setq file (expand-file-name file (file-name-directory 
source-loc))))
-             (when (file-readable-p file)
-               (setq line-num (string-to-number line-num))
-               (ibut:label-set but-label)
-               (hact 'link-to-file-line file line-num)))))))))
+               line-num
+               file)
+           (when (looking-at line-num-regexp)
+             ;; ipython stack trace matches and context lines (-A<num> option)
+             (setq line-num (match-string-no-properties 2)
+                       file nil)
+             (while (and (= (forward-line -1) 0)
+                             (looking-at line-num-regexp)))
+             (unless (or (looking-at line-num-regexp)
+                             (not (re-search-forward " in " nil 
(point-at-eol)))
+                             (and (setq file (buffer-substring-no-properties 
(point-at-bol) (match-beginning 0)))
+                                      (string-empty-p (string-trim file))))
+               (let* ((but-label (concat file ":" line-num))
+                          (source-loc (unless (file-name-absolute-p file)
+                                                (hbut:key-src t))))
+                 (when (stringp source-loc)
+                       (setq file (expand-file-name file (file-name-directory 
source-loc))))
+                 (when (file-readable-p file)
+                       (setq line-num (string-to-number line-num))
+                       (ibut:label-set but-label)
+                       (hact 'link-to-file-line file line-num)))))))))
 
 (defib ripgrep-msg ()
   "Jump to line associated with a ripgrep (rg) line numbered msg.
@@ -754,23 +754,23 @@ buffer)."
     (save-excursion
       (beginning-of-line)
       (when (looking-at "\\([1-9][0-9]*\\)[-:]")
-       ;; Ripgrep matches and context lines (-A<num> option)
-       (let ((line-num (match-string-no-properties 1))
-             file)
-         (while (and (= (forward-line -1) 0)
-                     (looking-at "[1-9][0-9]*[-:]\\|--$")))
-         (unless (or (looking-at "[1-9][0-9]*[-:]\\|--$")
-                     (and (setq file (buffer-substring-no-properties 
(point-at-bol) (point-at-eol)))
-                          (string-empty-p (string-trim file))))
-           (let* ((but-label (concat file ":" line-num))
-                  (source-loc (if (file-name-absolute-p file) nil
-                                (hbut:key-src t))))
-             (if (stringp source-loc)
-                 (setq file (expand-file-name file (file-name-directory 
source-loc))))
-             (when (file-readable-p file)
-               (setq line-num (string-to-number line-num))
-               (ibut:label-set but-label)
-               (hact 'link-to-file-line file line-num)))))))))
+           ;; Ripgrep matches and context lines (-A<num> option)
+           (let ((line-num (match-string-no-properties 1))
+                 file)
+             (while (and (= (forward-line -1) 0)
+                             (looking-at "[1-9][0-9]*[-:]\\|--$")))
+             (unless (or (looking-at "[1-9][0-9]*[-:]\\|--$")
+                             (and (setq file (buffer-substring-no-properties 
(point-at-bol) (point-at-eol)))
+                                      (string-empty-p (string-trim file))))
+               (let* ((but-label (concat file ":" line-num))
+                          (source-loc (unless (file-name-absolute-p file)
+                                                (hbut:key-src t))))
+                 (when (stringp source-loc)
+                       (setq file (expand-file-name file (file-name-directory 
source-loc))))
+                 (when (file-readable-p file)
+                       (setq line-num (string-to-number line-num))
+                       (ibut:label-set but-label)
+                       (hact 'link-to-file-line file line-num)))))))))
 
 (defib grep-msg ()
   "Jump to line associated with line numbered grep or compilation error msgs.
@@ -782,41 +782,41 @@ in grep and shell buffers."
   (unless (eq major-mode 'helm-major-mode)
     (save-excursion
       (beginning-of-line)
-      (if (or
-          ;; Grep matches, UNIX C compiler and Introl 68HC11 C compiler errors
-          (looking-at "\\([^ \t\n\r:]+\\)[:\^@] ?\\([1-9][0-9]*\\)[ :]")
-          ;; HP C compiler errors
-          (looking-at "[a-zA-Z0-9]+: \"\\([^\t\n\r\",]+\\)\", line 
\\([0-9]+\\):")
-          ;; BSO/Tasking 68HC08 C compiler errors
-          (looking-at
-           "[a-zA-Z 0-9]+: \\([^ \t\n\r\",]+\\) line \\([0-9]+\\)[ \t]*:")
-          ;; UNIX Lint errors
-          (looking-at "[^:]+: \\([^ \t\n\r:]+\\): line \\([0-9]+\\):")
-          ;; SparcWorks C compiler errors (ends with :)
-          ;; IBM AIX xlc C compiler errors (ends with .)
-          (looking-at "\"\\([^\"]+\\)\", line \\([0-9]+\\)[:.]")
-          ;; Introl as11 assembler errors
-          (looking-at " \\*+ \\([^ \t\n\r]+\\) - \\([0-9]+\\) ")
-          ;; perl5: ... at file.c line 10
-          (looking-at ".+ at \\([^ \t\n\r]+\\) line +\\([0-9]+\\)")
-          ;; Weblint
-          (looking-at "\\([^ \t\n\r:()]+\\)(\\([0-9]+\\)): ")
-          ;; Microsoft JVC
-          ;; file.java(6,1) : error J0020: Expected 'class' or 'interface'
-          (looking-at "^\\(\\([a-zA-Z]:\\)?[^:\( \t\n\r-]+\\)[:\(][ 
\t]*\\([0-9]+\\),")
-          ;; Grep match context lines (-A<num> option)
-          (and (string-match "grep\\|shell" (buffer-name))
-               (looking-at "\\([^ \t\n\r:]+\\)-\\([1-9][0-9]*\\)-")))
-         (let* ((file (match-string-no-properties 1))
-                (line-num  (match-string-no-properties 2))
-                (but-label (concat file ":" line-num))
-                (source-loc (if (file-name-absolute-p file) nil
-                              (hbut:key-src t))))
-           (if (stringp source-loc)
-               (setq file (expand-file-name file (file-name-directory 
source-loc))))
-           (setq line-num (string-to-number line-num))
-           (ibut:label-set but-label)
-           (hact 'link-to-file-line file line-num))))))
+      (when (or
+                ;; Grep matches, UNIX C compiler and Introl 68HC11 C compiler 
errors
+                (looking-at "\\([^ \t\n\r:]+\\)[:\^@] ?\\([1-9][0-9]*\\)[ :]")
+                ;; HP C compiler errors
+                (looking-at "[a-zA-Z0-9]+: \"\\([^\t\n\r\",]+\\)\", line 
\\([0-9]+\\):")
+                ;; BSO/Tasking 68HC08 C compiler errors
+                (looking-at
+                 "[a-zA-Z 0-9]+: \\([^ \t\n\r\",]+\\) line \\([0-9]+\\)[ 
\t]*:")
+                ;; UNIX Lint errors
+                (looking-at "[^:]+: \\([^ \t\n\r:]+\\): line \\([0-9]+\\):")
+                ;; SparcWorks C compiler errors (ends with :)
+                ;; IBM AIX xlc C compiler errors (ends with .)
+                (looking-at "\"\\([^\"]+\\)\", line \\([0-9]+\\)[:.]")
+                ;; Introl as11 assembler errors
+                (looking-at " \\*+ \\([^ \t\n\r]+\\) - \\([0-9]+\\) ")
+                ;; perl5: ... at file.c line 10
+                (looking-at ".+ at \\([^ \t\n\r]+\\) line +\\([0-9]+\\)")
+                ;; Weblint
+                (looking-at "\\([^ \t\n\r:()]+\\)(\\([0-9]+\\)): ")
+                ;; Microsoft JVC
+                ;; file.java(6,1) : error J0020: Expected 'class' or 
'interface'
+                (looking-at "^\\(\\([a-zA-Z]:\\)?[^:\( \t\n\r-]+\\)[:\(][ 
\t]*\\([0-9]+\\),")
+                ;; Grep match context lines (-A<num> option)
+                (and (string-match "grep\\|shell" (buffer-name))
+                         (looking-at "\\([^ \t\n\r:]+\\)-\\([1-9][0-9]*\\)-")))
+           (let* ((file (match-string-no-properties 1))
+                      (line-num  (match-string-no-properties 2))
+                      (but-label (concat file ":" line-num))
+                      (source-loc (unless (file-name-absolute-p file)
+                                        (hbut:key-src t))))
+             (when (stringp source-loc)
+                   (setq file (expand-file-name file (file-name-directory 
source-loc))))
+             (setq line-num (string-to-number line-num))
+             (ibut:label-set but-label)
+             (hact 'link-to-file-line file line-num))))))
 
 ;;; ========================================================================
 ;;; Jumps to source line associated with debugger stack frame or breakpoint
@@ -831,84 +831,83 @@ This works with JavaScript and Python tracebacks, gdb, 
dbx, and xdb.  Such lines
     (cond
      ;; Python pdb or traceback, pytype error
      ((or (looking-at "\\(^\\|.+ \\)File \"\\([^\"\n\r]+\\)\", line 
\\([0-9]+\\)")
-         (looking-at ">?\\(\\s-+\\)\\([^\"()\n\r]+\\)(\\([0-9]+\\))\\S-"))
+             (looking-at ">?\\(\\s-+\\)\\([^\"()\n\r]+\\)(\\([0-9]+\\))\\S-"))
       (let* ((file (match-string-no-properties 2))
-            (line-num (match-string-no-properties 3))
-            (but-label (concat file ":" line-num)))
-       (setq line-num (string-to-number line-num))
-       (ibut:label-set but-label (match-beginning 2) (match-end 2))
-       (hact 'link-to-file-line file line-num)))
+                (line-num (match-string-no-properties 3))
+                (but-label (concat file ":" line-num)))
+           (setq line-num (string-to-number line-num))
+           (ibut:label-set but-label (match-beginning 2) (match-end 2))
+           (hact 'link-to-file-line file line-num)))
 
      ;; JavaScript traceback
      ((or (looking-at "[a-zA-Z0-9-:.()? ]+? +at \\([^() \t]+\\) (\\([^:, 
\t()]+\\):\\([0-9]+\\):\\([0-9]+\\))$")
-         (looking-at "[a-zA-Z0-9-:.()? ]+? +at\\( \\)\\([^:, 
\t()]+\\):\\([0-9]+\\):\\([0-9]+\\)$")
-         (looking-at "[a-zA-Z0-9-:.()? ]+?\\( \\)\\([^:, 
\t()]+\\):\\([0-9]+\\)\\(\\)$"))
+             (looking-at "[a-zA-Z0-9-:.()? ]+? +at\\( \\)\\([^:, 
\t()]+\\):\\([0-9]+\\):\\([0-9]+\\)$")
+             (looking-at "[a-zA-Z0-9-:.()? ]+?\\( \\)\\([^:, 
\t()]+\\):\\([0-9]+\\)\\(\\)$"))
       (let* ((file (match-string-no-properties 2))
-            (line-num (match-string-no-properties 3))
-            (col-num (match-string-no-properties 4))
-            but-label)
-
-       ;; For Meteor app errors, remove the "app/" prefix which
-       ;; is part of the build subdirectory and not part of the
-       ;; source tree.
-       (if (and (not (eq col-num "")) (string-match "^app/" file))
-           (setq file (substring file (match-end 0))))
-
-       (setq but-label (concat file ":" line-num)
-             line-num (string-to-number line-num))
-       (ibut:label-set but-label)
-       (hact 'link-to-file-line file line-num)))
+                (line-num (match-string-no-properties 3))
+                (col-num (match-string-no-properties 4))
+                but-label)
+
+           ;; For Meteor app errors, remove the "app/" prefix which
+           ;; is part of the build subdirectory and not part of the
+           ;; source tree.
+           (when (and (not (eq col-num "")) (string-match "^app/" file))
+             (setq file (substring file (match-end 0))))
+
+           (setq but-label (concat file ":" line-num)
+                 line-num (string-to-number line-num))
+           (ibut:label-set but-label)
+           (hact 'link-to-file-line file line-num)))
 
      ;; GDB or WDB
      ((looking-at
        ".+ \\(at\\|file\\) \\([^ :,]+\\)\\(:\\|, line \\)\\([0-9]+\\)\\.?$")
       (let* ((file (match-string-no-properties 2))
-            (line-num (match-string-no-properties 4))
-            (but-label (concat file ":" line-num))
-            (gdb-last-file (or (and (boundp 'gud-last-frame)
-                                    (stringp (car gud-last-frame))
-                                    (car gud-last-frame))
-                               (and (boundp 'gdb-last-frame)
-                                    (stringp (car gdb-last-frame))
-                                    (car gdb-last-frame)))))
-       (setq line-num (string-to-number line-num))
-       ;; The `file' typically has no directory component and so may
-       ;; not be resolvable.  `gdb-last-file' is the last file
-       ;; displayed by gdb.  Use its directory if available as a best
-       ;; guess.
-       (if gdb-last-file
-           (setq file (expand-file-name
-                       file (file-name-directory gdb-last-file))))
-       (ibut:label-set but-label)
-       (hact 'link-to-file-line file line-num)))
+                (line-num (match-string-no-properties 4))
+                (but-label (concat file ":" line-num))
+                (gdb-last-file (or (and (boundp 'gud-last-frame)
+                                                    (stringp (car 
gud-last-frame))
+                                                    (car gud-last-frame))
+                                               (and (boundp 'gdb-last-frame)
+                                                    (stringp (car 
gdb-last-frame))
+                                                    (car gdb-last-frame)))))
+           (setq line-num (string-to-number line-num))
+           ;; The `file' typically has no directory component and so may
+           ;; not be resolvable.  `gdb-last-file' is the last file
+           ;; displayed by gdb.  Use its directory if available as a best
+           ;; guess.
+           (when gdb-last-file
+             (setq file (expand-file-name file (file-name-directory 
gdb-last-file))))
+           (ibut:label-set but-label)
+           (hact 'link-to-file-line file line-num)))
 
      ;; XEmacs assertion failure
      ((looking-at ".+ (file=[^\"\n\r]+\"\\([^\"\n\r]+\\)\", 
line=\\([0-9]+\\),")
       (let* ((file (match-string-no-properties 1))
-            (line-num (match-string-no-properties 2))
-            (but-label (concat file ":" line-num)))
-       (setq line-num (string-to-number line-num))
-       (ibut:label-set but-label)
-       (hact 'link-to-file-line file line-num)))
+                (line-num (match-string-no-properties 2))
+                (but-label (concat file ":" line-num)))
+           (setq line-num (string-to-number line-num))
+           (ibut:label-set but-label)
+           (hact 'link-to-file-line file line-num)))
 
      ;; New DBX
      ((looking-at ".+ line \\([0-9]+\\) in \"\\([^\"]+\\)\"$")
       (let* ((file (match-string-no-properties 2))
-            (line-num (match-string-no-properties 1))
-            (but-label (concat file ":" line-num)))
-       (setq line-num (string-to-number line-num))
-       (ibut:label-set but-label)
-       (hact 'link-to-file-line file line-num)))
+                (line-num (match-string-no-properties 1))
+                (but-label (concat file ":" line-num)))
+           (setq line-num (string-to-number line-num))
+           (ibut:label-set but-label)
+           (hact 'link-to-file-line file line-num)))
 
      ;; Old DBX and HP-UX xdb
      ((or (looking-at ".+ \\[\"\\([^\"]+\\)\":\\([0-9]+\\),") ;; Old DBX
-         (looking-at ".+ \\[\\([^: ]+\\): \\([0-9]+\\)\\]")) ;; HP-UX xdb
+             (looking-at ".+ \\[\\([^: ]+\\): \\([0-9]+\\)\\]")) ;; HP-UX xdb
       (let* ((file (match-string-no-properties 1))
-            (line-num (match-string-no-properties 2))
-            (but-label (concat file ":" line-num)))
-       (setq line-num (string-to-number line-num))
-       (ibut:label-set but-label)
-       (hact 'link-to-file-line file line-num))))))
+                (line-num (match-string-no-properties 2))
+                (but-label (concat file ":" line-num)))
+           (setq line-num (string-to-number line-num))
+           (ibut:label-set but-label)
+           (hact 'link-to-file-line file line-num))))))
 
 ;;; ========================================================================
 ;;; Displays files at specific lines and optional column number
@@ -923,23 +922,25 @@ This works with JavaScript and Python tracebacks, gdb, 
dbx, and xdb.  Such lines
 (defib pathname-line-and-column ()
   "Make a valid pathname:line-num[:column-num] pattern display the path at 
line-num and optional column-num.
 Also works for remote pathnames.
+May also contain hash-style link references with the following format:
+\"<path>[#<link-anchor>]:<line-num>[:<column-num>]}\".
 
 See `hpath:at-p' function documentation for possible delimiters.
 See `hpath:suffixes' variable documentation for suffixes that are added to or
 removed from pathname when searching for a valid match.
 See `hpath:find' function documentation for special file display options."
   (let ((path-line-and-col (hpath:delimited-possible-path)))
-    (if (and (stringp path-line-and-col)
-            (string-match hibtypes-path-line-and-col-regexp path-line-and-col))
-       (let ((file (save-match-data (expand-file-name (hpath:substitute-value 
(match-string-no-properties 1 path-line-and-col)))))
-             (line-num (string-to-number (match-string-no-properties 3 
path-line-and-col)))
-             (col-num (when (match-end 4)
-                        (string-to-number (match-string-no-properties 5 
path-line-and-col)))))
-         (when (save-match-data (setq file (hpath:is-p file)))
-           (ibut:label-set file (match-beginning 1) (match-end 1))
-           (if col-num
-               (hact 'link-to-file-line-and-column file line-num col-num)
-             (hact 'link-to-file-line file line-num)))))))
+    (when (and (stringp path-line-and-col)
+                  (string-match hibtypes-path-line-and-col-regexp 
path-line-and-col))
+         (let ((file (save-match-data (expand-file-name 
(hpath:substitute-value (match-string-no-properties 1 path-line-and-col)))))
+               (line-num (string-to-number (match-string-no-properties 3 
path-line-and-col)))
+               (col-num (when (match-end 4)
+                                  (string-to-number 
(match-string-no-properties 5 path-line-and-col)))))
+           (when (save-match-data (setq file (hpath:is-p file)))
+             (ibut:label-set file (match-beginning 1) (match-end 1))
+             (if col-num
+                     (hact 'link-to-file-line-and-column file line-num col-num)
+               (hact 'link-to-file-line file line-num)))))))
 
 ;;; ========================================================================
 ;;; Jumps to source of Emacs Lisp byte-compiler error messages.
@@ -948,52 +949,52 @@ See `hpath:find' function documentation for special file 
display options."
 (defib elisp-compiler-msg ()
   "Jump to source code for definition associated with an Emacs Lisp 
byte-compiler error message.
 Works when activated anywhere within an error line."
-  (if (or (member (buffer-name) '("*Compile-Log-Show*" "*Compile-Log*"
-                                 "*compilation*"))
-         (save-excursion
-           (and (re-search-backward "^[^ \t\n\r]" nil t)
-                (looking-at "While compiling"))))
-      (let (src buffer-p label)
-       ;; InfoDock and XEmacs
-       (or (and (save-excursion
-                  (re-search-backward
-                   "^Compiling \\(file\\|buffer\\) \\([^ \n]+\\) at "
-                   nil t))
-                (setq buffer-p (equal (match-string-no-properties 1) "buffer")
-                      src (match-string-no-properties 2))
-                (save-excursion
-                  (end-of-line)
-                  (re-search-backward "^While compiling \\([^ \n]+\\)\\(:$\\| 
\\)"
-                                      nil t))
-                (progn
-                  (setq label (match-string-no-properties 1))
-                  (ibut:label-set label (match-beginning 1) (match-end 1))
-                  ;; Remove prefix generated by actype and ibtype definitions.
-                  (setq label (hypb:replace-match-string "[^:]+::" label "" t))
-                  (hact 'link-to-regexp-match
-                        (concat "^\(def[a-z \t]+" (regexp-quote label)
-                                "[ \t\n\r\(]")
-                        1 src buffer-p)))
-           ;; GNU Emacs
-           (and (save-excursion
-                  (re-search-backward
-                   "^While compiling [^\t\n]+ in \\(file\\|buffer\\) \\([^ 
\n]+\\):$"
-                   nil t))
-                (setq buffer-p (equal (match-string-no-properties 1) "buffer")
-                      src (match-string-no-properties 2))
-                (save-excursion
-                  (end-of-line)
-                  (re-search-backward "^While compiling \\([^ \n]+\\)\\(:$\\| 
\\)"
-                                      nil t))
-                (progn
-                  (setq label (match-string-no-properties 1))
-                  (ibut:label-set label (match-beginning 1) (match-end 1))
-                  ;; Remove prefix generated by actype and ibtype definitions.
-                  (setq label (hypb:replace-match-string "[^:]+::" label "" t))
-                  (hact 'link-to-regexp-match
-                        (concat "^\(def[a-z \t]+" (regexp-quote label)
-                                "[ \t\n\r\(]")
-                        1 src buffer-p)))))))
+  (when (or (member (buffer-name) '("*Compile-Log-Show*" "*Compile-Log*"
+                                                   "*compilation*"))
+               (save-excursion
+                 (and (re-search-backward "^[^ \t\n\r]" nil t)
+                          (looking-at "While compiling"))))
+    (let (src buffer-p label)
+         ;; InfoDock and XEmacs
+         (or (and (save-excursion
+                        (re-search-backward
+                         "^Compiling \\(file\\|buffer\\) \\([^ \n]+\\) at "
+                         nil t))
+                      (setq buffer-p (equal (match-string-no-properties 1) 
"buffer")
+                            src (match-string-no-properties 2))
+                      (save-excursion
+                        (end-of-line)
+                        (re-search-backward "^While compiling \\([^ 
\n]+\\)\\(:$\\| \\)"
+                                                    nil t))
+                      (progn
+                        (setq label (match-string-no-properties 1))
+                        (ibut:label-set label (match-beginning 1) (match-end 
1))
+                        ;; Remove prefix generated by actype and ibtype 
definitions.
+                        (setq label (hypb:replace-match-string "[^:]+::" label 
"" t))
+                        (hact 'link-to-regexp-match
+                                  (concat "^\(def[a-z \t]+" (regexp-quote 
label)
+                                              "[ \t\n\r\(]")
+                                  1 src buffer-p)))
+             ;; GNU Emacs
+             (and (save-excursion
+                        (re-search-backward
+                         "^While compiling [^\t\n]+ in \\(file\\|buffer\\) 
\\([^ \n]+\\):$"
+                         nil t))
+                      (setq buffer-p (equal (match-string-no-properties 1) 
"buffer")
+                            src (match-string-no-properties 2))
+                      (save-excursion
+                        (end-of-line)
+                        (re-search-backward "^While compiling \\([^ 
\n]+\\)\\(:$\\| \\)"
+                                                    nil t))
+                      (progn
+                        (setq label (match-string-no-properties 1))
+                        (ibut:label-set label (match-beginning 1) (match-end 
1))
+                        ;; Remove prefix generated by actype and ibtype 
definitions.
+                        (setq label (hypb:replace-match-string "[^:]+::" label 
"" t))
+                        (hact 'link-to-regexp-match
+                                  (concat "^\(def[a-z \t]+" (regexp-quote 
label)
+                                              "[ \t\n\r\(]")
+                                  1 src buffer-p)))))))
 
 ;;; ========================================================================
 ;;; Jumps to source associated with a line of output from `patch'.
@@ -1002,25 +1003,25 @@ Works when activated anywhere within an error line."
 (defib patch-msg ()
   "Jump to source code associated with output from the `patch' program.
 Patch applies diffs to source code."
-  (if (save-excursion
-       (beginning-of-line)
-       (looking-at "Patching \\|Hunk "))
-      (let ((opoint (point))
-           (file) line)
-       (beginning-of-line)
-       (cond ((looking-at "Hunk .+ at \\([0-9]+\\)")
-              (setq line (match-string-no-properties 1))
-              (ibut:label-set line (match-beginning 1) (match-end 1))
-              (if (re-search-backward "^Patching file \\(\\S +\\)" nil t)
-                  (setq file (match-string-no-properties 1))))
-             ((looking-at "Patching file \\(\\S +\\)")
-              (setq file (match-string-no-properties 1)
-                    line "1")
-              (ibut:label-set file (match-beginning 1) (match-end 1))))
-       (goto-char opoint)
-       (when file
-         (setq line (string-to-number line))
-         (hact 'link-to-file-line file line)))))
+  (when (save-excursion
+             (beginning-of-line)
+             (looking-at "Patching \\|Hunk "))
+    (let ((opoint (point))
+             (file) line)
+         (beginning-of-line)
+         (cond ((looking-at "Hunk .+ at \\([0-9]+\\)")
+                (setq line (match-string-no-properties 1))
+                (ibut:label-set line (match-beginning 1) (match-end 1))
+                (if (re-search-backward "^Patching file \\(\\S +\\)" nil t)
+                        (setq file (match-string-no-properties 1))))
+               ((looking-at "Patching file \\(\\S +\\)")
+                (setq file (match-string-no-properties 1)
+                          line "1")
+                (ibut:label-set file (match-beginning 1) (match-end 1))))
+         (goto-char opoint)
+         (when file
+           (setq line (string-to-number line))
+           (hact 'link-to-file-line file line)))))
 
 ;;; ========================================================================
 ;;; Displays Texinfo or Info node associated with Texinfo @xref, @pxref or 
@ref at point.
@@ -1034,72 +1035,72 @@ the @ symbol and the reference is to a node within the 
current
 Texinfo file, then the Texinfo node is shown.
 
 For @code, @findex, @var and @vindex references, the associated documentation 
string is displayed."
-  (if (memq major-mode '(texinfo-mode para-mode))
-      (let ((opoint (point))
-           (bol (save-excursion (beginning-of-line) (point))))
-       (cond ((save-excursion
-                (beginning-of-line)
-                ;; If a menu item, display the node for the item.
-                (looking-at "*\\s-+\\([^:\t\n\r]+\\)::"))
-              (hact 'link-to-texinfo-node
-                    (ibut:label-set (match-string 1) (match-beginning 1) 
(match-end 1))))
-             ;; Show doc for any Emacs Lisp identifier references,
-             ;; marked with @code{} or @var{}.
-             ((save-excursion
-                (and (search-backward "@" bol t)
-                     (or (looking-at "@\\(code\\|var\\){\\([^\} \t\n\r]+\\)}")
-                         (looking-at "@\\(findex\\|vindex\\)[ ]+\\([^\} 
\t\n\r]+\\)"))
-                     (>= (match-end 2) opoint)))
-              (let ((type-str (match-string 1))
-                    (symbol (intern-soft (ibut:label-set (match-string 2) 
(match-beginning 2) (match-end 2)))))
-                (when (and symbol (pcase type-str
-                                    ((or "code" "findex") (fboundp symbol))
-                                    ((or "var" "vindex") (boundp symbol))))
-                  (hact 'link-to-elisp-doc symbol))))
-             ;; If at an @node and point is within a node name reference
-             ;; other than the current node, display it.
-             ((save-excursion
-               (and (save-excursion (beginning-of-line) (looking-at 
"@node\\s-+[^,\n\r]+,"))
-                    (search-backward "," bol t)
-                    (looking-at ",\\s-*\\([^,\n\r]*[^, \t\n\r]\\)[,\n\r]")))
-              (hact 'link-to-texinfo-node
-                    (ibut:label-set (match-string 1) (match-beginning 1) 
(match-end 1))))
-             ((save-excursion
-                (and (search-backward "@" bol t)
-                     (looking-at
-                      (concat
-                       "@p?x?ref\\({\\)\\s-*\\([^,}]*[^,} \t\n\r]\\)\\s-*"
-                       "\\(,[^,}]*\\)?\\(,[^,}]*\\)?"
-                       "\\(,\\s-*\\([^,}]*[^,} \t\n\r]\\)\\)?[^}]*}"))
-                     (> (match-end 0) opoint)))
-              (let* ((show-texinfo-node
-                      (and
-                       ;; Reference to node within this file.
-                       (not (match-beginning 6))
-                       ;; To the left of the reference opening brace.
-                       (<= opoint (match-beginning 1))))
-                     (node
-                      (save-match-data
-                        (if (match-beginning 6)
-                            ;; Explicit filename included in reference.
-                            (format "(%s)%s"
-                                    (match-string-no-properties 6)
-                                    (match-string-no-properties 2))
-                          ;; Derive file name from the source file name.
-                          (let ((nodename (match-string-no-properties 2))
-                                (file (file-name-nondirectory 
buffer-file-name)))
-                            (if show-texinfo-node
-                                nodename
-                              (format "(%s)%s"
-                                      (if (string-match "\\.[^.]+$" file)
-                                          (substring file 0
-                                                     (match-beginning 0))
-                                        "unspecified file")
-                                      nodename)))))))
-                (ibut:label-set (match-string 0) (match-beginning 0) 
(match-end 0))
-                (if show-texinfo-node
-                    (hact 'link-to-texinfo-node node)
-                  (hact 'link-to-Info-node node))))))))
+  (when (memq major-mode '(texinfo-mode para-mode))
+    (let ((opoint (point))
+             (bol (save-excursion (beginning-of-line) (point))))
+         (cond ((save-excursion
+                      (beginning-of-line)
+                      ;; If a menu item, display the node for the item.
+                      (looking-at "*\\s-+\\([^:\t\n\r]+\\)::"))
+                (hact 'link-to-texinfo-node
+                          (ibut:label-set (match-string 1) (match-beginning 1) 
(match-end 1))))
+               ;; Show doc for any Emacs Lisp identifier references,
+               ;; marked with @code{} or @var{}.
+               ((save-excursion
+                      (and (search-backward "@" bol t)
+                           (or (looking-at "@\\(code\\|var\\){\\([^\} 
\t\n\r]+\\)}")
+                                   (looking-at "@\\(findex\\|vindex\\)[ 
]+\\([^\} \t\n\r]+\\)"))
+                           (>= (match-end 2) opoint)))
+                (let ((type-str (match-string 1))
+                          (symbol (intern-soft (ibut:label-set (match-string 
2) (match-beginning 2) (match-end 2)))))
+                      (when (and symbol (pcase type-str
+                                                  ((or "code" "findex") 
(fboundp symbol))
+                                                  ((or "var" "vindex") (boundp 
symbol))))
+                        (hact 'link-to-elisp-doc symbol))))
+               ;; If at an @node and point is within a node name reference
+               ;; other than the current node, display it.
+               ((save-excursion
+                      (and (save-excursion (beginning-of-line) (looking-at 
"@node\\s-+[^,\n\r]+,"))
+                           (search-backward "," bol t)
+                           (looking-at ",\\s-*\\([^,\n\r]*[^, 
\t\n\r]\\)[,\n\r]")))
+                (hact 'link-to-texinfo-node
+                          (ibut:label-set (match-string 1) (match-beginning 1) 
(match-end 1))))
+               ((save-excursion
+                      (and (search-backward "@" bol t)
+                           (looking-at
+                            (concat
+                                 "@p?x?ref\\({\\)\\s-*\\([^,}]*[^,} 
\t\n\r]\\)\\s-*"
+                                 "\\(,[^,}]*\\)?\\(,[^,}]*\\)?"
+                                 "\\(,\\s-*\\([^,}]*[^,} 
\t\n\r]\\)\\)?[^}]*}"))
+                           (> (match-end 0) opoint)))
+                (let* ((show-texinfo-node
+                            (and
+                                 ;; Reference to node within this file.
+                                 (not (match-beginning 6))
+                                 ;; To the left of the reference opening brace.
+                                 (<= opoint (match-beginning 1))))
+                           (node
+                            (save-match-data
+                                  (if (match-beginning 6)
+                                      ;; Explicit filename included in 
reference.
+                                      (format "(%s)%s"
+                                                  (match-string-no-properties 
6)
+                                                  (match-string-no-properties 
2))
+                                    ;; Derive file name from the source file 
name.
+                                    (let ((nodename 
(match-string-no-properties 2))
+                                              (file (file-name-nondirectory 
buffer-file-name)))
+                                      (if show-texinfo-node
+                                              nodename
+                                        (format "(%s)%s"
+                                                    (if (string-match 
"\\.[^.]+$" file)
+                                                            (substring file 0
+                                                                           
(match-beginning 0))
+                                                          "unspecified file")
+                                                    nodename)))))))
+                      (ibut:label-set (match-string 0) (match-beginning 0) 
(match-end 0))
+                      (if show-texinfo-node
+                          (hact 'link-to-texinfo-node node)
+                        (hact 'link-to-Info-node node))))))))
 
 ;;; ========================================================================
 ;;; Activate any GNUS push-button at point.
@@ -1130,21 +1131,21 @@ Examples are \"(hyperbole)Implicit Buttons\" and 
``(hyperbole)C-c /''.
 
 Activates only if point is within the first line of the Info-node name."
   (let* ((node-ref-and-pos (or (hbut:label-p t "\"" "\"" t t)
-                              ;; Typical GNU Info references; note
-                              ;; these are special quote marks, not the
-                              ;; standard ASCII characters.
-                              (hbut:label-p t "‘" "’" t t)
-                              ;; Regular dual single quotes (Texinfo smart 
quotes)
-                              (hbut:label-p t "``" "''" t t)
-                              ;; Regular open and close quotes
-                              (hbut:label-p t "`" "'" t t)))
-        (ref (car node-ref-and-pos))
-        (node-ref (and (stringp ref)
-                       (string-match "\\`([^\):]+)" ref)
-                       (hpath:is-p (car node-ref-and-pos) nil t))))
+                                          ;; Typical GNU Info references; note
+                                          ;; these are special quote marks, 
not the
+                                          ;; standard ASCII characters.
+                                          (hbut:label-p t "‘" "’" t t)
+                                          ;; Regular dual single quotes 
(Texinfo smart quotes)
+                                          (hbut:label-p t "``" "''" t t)
+                                          ;; Regular open and close quotes
+                                          (hbut:label-p t "`" "'" t t)))
+            (ref (car node-ref-and-pos))
+            (node-ref (and (stringp ref)
+                                   (string-match "\\`([^\):]+)" ref)
+                                   (hpath:is-p (car node-ref-and-pos) nil t))))
     (and node-ref
-        (ibut:label-set node-ref-and-pos)
-        (hact 'link-to-Info-node node-ref))))
+            (ibut:label-set node-ref-and-pos)
+            (hact 'link-to-Info-node node-ref))))
 
 ;;; ========================================================================
 ;;; Makes Hyperbole mail addresses output Hyperbole environment info.
@@ -1159,10 +1160,10 @@ a mail composer window would activate this implicit 
button type."
   (when (memq major-mode (list 'mail-mode hmail:composer hnews:composer))
     (let ((addr (thing-at-point 'email)))
       (cond ((null addr) nil)
-           ((member addr '("hyperbole" "hyperbole-users@gnu.org" 
"bug-hyperbole@gnu.org"))
-            (hact 'hyp-config))
-           ((string-match 
"\\(hyperbole\\|hyperbole-users@gnu\\.org\\|bug-hyperbole@gnu\\.org\\)\\(-\\(join\\|leave\\|owner\\)\\)"
 addr)
-            (hact 'hyp-request))))))
+               ((member addr '("hyperbole" "hyperbole-users@gnu.org" 
"bug-hyperbole@gnu.org"))
+                (hact 'hyp-config))
+               ((string-match 
"\\(hyperbole\\|hyperbole-users@gnu\\.org\\|bug-hyperbole@gnu\\.org\\)\\(-\\(join\\|leave\\|owner\\)\\)"
 addr)
+                (hact 'hyp-request))))))
 
 ;;; ========================================================================
 ;;; Makes source entries in Hyperbole reports selectable.
@@ -1179,11 +1180,11 @@ original DEMO file."
     (beginning-of-line)
     (when (looking-at hbut:source-prefix)
       (let ((src (hbut:source)))
-       (when src
-         (unless (stringp src)
-           (setq src (prin1-to-string src)))
-         (ibut:label-set src (point) (progn (end-of-line) (point)))
-         (hact 'hyp-source src))))))
+           (when src
+             (unless (stringp src)
+               (setq src (prin1-to-string src)))
+             (ibut:label-set src (point) (progn (end-of-line) (point)))
+             (hact 'hyp-source src))))))
 
 ;;; ========================================================================
 ;;; Executes an angle bracket delimited Hyperbole action, Elisp
@@ -1207,12 +1208,12 @@ If an Elisp variable, display a message showing its 
value.
 There may not be any <> characters within the expression.  The
 first identifier in the expression must be an Elisp variable,
 action type or a function symbol to call, i.e. '<'actype-or-elisp-symbol
-arg1 ... argN '>'.  For example, <mail user@mybiz.com>."
+arg1 ... argN '>'.  For example, <mail nil \"user@somewhere.org\">."
   (let* ((label-key-start-end (ibut:label-p nil action:start action:end t t))
-        (ibut-key (nth 0 label-key-start-end))
-        (start-pos (nth 1 label-key-start-end))
-        (end-pos (nth 2 label-key-start-end))
-        actype action args lbl var-flag)
+            (ibut-key (nth 0 label-key-start-end))
+            (start-pos (nth 1 label-key-start-end))
+            (end-pos (nth 2 label-key-start-end))
+            actype action args lbl var-flag)
     ;; Continue only if start-delim is either:
     ;;     at the beginning of the buffer
     ;;     or preceded by a space character or a grouping character
@@ -1222,42 +1223,48 @@ arg1 ... argN '>'.  For example, <mail user@mybiz.com>."
     ;;     at the end of the buffer
     ;;     or is followed by a space, punctuation or grouping character.
     (when (and ibut-key (or (null (char-before start-pos))
-                           (memq (char-syntax (char-before start-pos)) '(?\  
?\> ?\( ?\))))
-              (not (memq (char-syntax (char-after (1+ start-pos))) '(?\  ?\>)))
-              (or (null (char-after end-pos))
-                  (memq (char-syntax (char-after end-pos)) '(?\  ?\> ?. ?\( 
?\)))
-                  ;; Some of these characters may have symbol-constituent 
syntax
-                  ;; rather than punctuation, so check them individually.
-                  (memq (char-after end-pos) '(?. ?, ?\; ?: ?! ?\' ?\"))))
+                                       (memq (char-syntax (char-before 
start-pos)) '(?\  ?\> ?\( ?\))))
+                  (not (memq (char-syntax (char-after (1+ start-pos))) '(?\  
?\>)))
+                  (or (null (char-after end-pos))
+                          (memq (char-syntax (char-after end-pos)) '(?\  ?\> 
?. ?\( ?\)))
+                          ;; Some of these characters may have 
symbol-constituent syntax
+                          ;; rather than punctuation, so check them 
individually.
+                          (memq (char-after end-pos) '(?. ?, ?\; ?: ?! ?\' 
?\"))))
       (setq lbl (ibut:key-to-label ibut-key))
       ;; Handle $ preceding var name in cases where same name is
       ;; bound as a function symbol
       (when (string-match "\\`\\$" lbl)
-       (setq var-flag t
-             lbl (substring lbl 1)))
+           (setq var-flag t
+                 lbl (substring lbl 1)))
       (setq actype (if (string-match-p " "  lbl) (car (split-string lbl)) lbl)
-           actype (or (intern-soft (concat "actype::" actype))
-                      (intern-soft actype)))
+               actype (or (intern-soft (concat "actype::" actype))
+                              (intern-soft actype)))
+      ;; Ignore unbound symbols
+      (unless (and actype (or (fboundp actype) (boundp actype)))
+        (setq actype nil))
       (when actype
-       (ibut:label-set lbl start-pos end-pos)
-       (setq action (read (concat "(" lbl ")"))
-             args (cdr action))
-       (cond ((and (symbolp actype) (fboundp actype)
-                   (string-match "-p\\'" (symbol-name actype)))
-              ;; Is a function with a boolean result
-              (setq action `(display-boolean ',action)
-                    actype 'display-boolean))
-             ((and (null args) (symbolp actype) (boundp actype)
-                   (or var-flag (not (fboundp actype))))
-              ;; Is a variable, display its value as the action
-              (setq args `(',actype)
-                    action `(display-variable ',actype)
-                    actype 'display-variable)))
-       ;; Necessary so can return a null value, which actype:act cannot.
-       (let ((hrule:action (if (eq hrule:action #'actype:identity)
-                               hrule:action
-                             'actype:eval)))
-         (apply hrule:action actype (mapcar #'eval args)))))))
+           (ibut:label-set lbl start-pos end-pos)
+           (setq action (read (concat "(" lbl ")"))
+                 args (cdr action))
+           (cond ((and (symbolp actype) (fboundp actype)
+                           (string-match "-p\\'" (symbol-name actype)))
+                  ;; Is a function with a boolean result
+                  (setq action `(display-boolean ',action)
+                            actype 'display-boolean))
+                 ((and (null args) (symbolp actype) (boundp actype)
+                           (or var-flag (not (fboundp actype))))
+                  ;; Is a variable, display its value as the action
+                  (setq args `(',actype)
+                            action `(display-variable ',actype)
+                            actype 'display-variable)))
+           ;; Necessary so can return a null value, which actype:act cannot.
+           (let ((hrule:action
+               (if (eq hrule:action #'actype:identity)
+                   #'actype:identity
+                 #'actype:eval)))
+          (if (eq hrule:action #'actype:identity)
+                 (apply hrule:action actype args)
+               (apply hrule:action actype (mapcar #'eval args))))))))
 
 ;;; ========================================================================
 ;;; Inserts completion into minibuffer or other window.
@@ -1267,8 +1274,8 @@ arg1 ... argN '>'.  For example, <mail user@mybiz.com>."
   "Insert completion at point into minibuffer or other window."
   (let ((completion (hargs:completion t)))
     (and completion
-        (ibut:label-set completion)
-        (hact 'completion))))
+            (ibut:label-set completion)
+            (hact 'completion))))
 
 
 (run-hooks 'hibtypes-end-load-hook)
diff --git a/hmouse-drv.el b/hmouse-drv.el
index baecd4b..9daa51c 100644
--- a/hmouse-drv.el
+++ b/hmouse-drv.el
@@ -843,8 +843,11 @@ Return non-nil iff associated help documentation is found."
 
                    (when (memq cmd-sym '(hui:hbut-act hui:hbut-help))
                      (princ (format "%s BUTTON SPECIFICS:\n\n%s\n"
-                                    (ibtype:def-symbol
-                                     (hattr:get 'hbut:current 'categ))
+                                    (htype:def-symbol
+                                     (if (eq (hattr:get 'hbut:current 'categ)
+                                             'explicit)
+                                         (hattr:get 'hbut:current 'actype)
+                                       (hattr:get 'hbut:current 'categ)))
                                     (actype:doc 'hbut:current t)))
                      (hattr:report
                       (nthcdr 2 (hattr:list 'hbut:current))))
diff --git a/hpath.el b/hpath.el
index b79bac5..29ebd61 100644
--- a/hpath.el
+++ b/hpath.el
@@ -86,7 +86,7 @@ If the value of 'hpath:mswindows-mount-prefix' changes, then 
re-initialize this
 
 (defvar hpath:directory-expand-alist nil
   "Automatically set alist of (posix-mount-point . window-path-prefix) 
elements.
-Used to expand windows prefixes to posix mount points during 
mswindows-to-posix.")
+Used to expand posix mount points to Windows UNC paths during 
posix-to-mswindows conversion.")
 
 ;;;###autoload
 (defun hpath:mswindows-to-posix (path)
@@ -112,8 +112,7 @@ If path begins with an MSWindows drive letter, prefix the 
converted path with th
 (defun hpath:mswindows-to-posix-separators (path)
   "Replace all backslashes with forward slashes in PATH and expand the path 
against `directory-abbrev-alist', if possible.
 Path must be a string or an error will be triggered."
-  (let ((directory-abbrev-alist hpath:directory-expand-alist))
-    (replace-regexp-in-string "\\\\" "/" (abbreviate-file-name path) nil t)))
+  (replace-regexp-in-string "\\\\" "/" (abbreviate-file-name path) nil t))
 
 ;;;###autoload
 (defun hpath:posix-to-mswindows (path)
@@ -143,7 +142,8 @@ If path begins with an optional mount prefix, 
'hpath:mswindows-mount-prefix', fo
   "Replace all forward slashes with backslashes in PATH and abbreviate the 
path if possible.
 Path must be a string or an error will be triggered.  See
 'abbreviate-file-name' for how path abbreviation is handled."
-  (replace-regexp-in-string "/" "\\\\" (abbreviate-file-name path)))
+  (let ((directory-abbrev-alist hpath:directory-expand-alist))
+    (replace-regexp-in-string "/" "\\\\" (abbreviate-file-name path))))
 
 (defun hpath:posix-path-p (path)
   "Return non-nil if PATH looks like a Posix path."
@@ -183,7 +183,7 @@ Call this function manually if mount points change after 
Hyperbole is loaded."
   (when (not hyperb:microsoft-os-p)
     (let ((mount-points-to-add
           ;; Sort alist of (path-mounted . mount-point) elements from shortest
-          ;; to longest path so that the longest path is selected first within
+          ;; to longest path so thDat the longest path is selected first within
           ;; 'directory-abbrev-alist' (elements are added in reverse order).
           (sort
            ;; Convert plist to alist for sorting.
@@ -199,16 +199,17 @@ Call this function manually if mount points change after 
Hyperbole is loaded."
                             (split-string (shell-command-to-string (format "df 
-a -t drvfs 2> /dev/null | sort | uniq | grep -v '%s' | sed -e 's+ .*[-%%] /+ 
/+g'" hpath:posix-mount-points-regexp))))
            (lambda (cons1 cons2) (<= (length (car cons1)) (length (car 
cons2))))))
          path mount-point)
-      (mapcar (lambda (path-and-mount-point)
+      (mapc (lambda (path-and-mount-point)
                (setq path (car path-and-mount-point)
                      mount-point (cdr path-and-mount-point))
-               (add-to-list 'directory-abbrev-alist (cons (format "\\`%s" 
(regexp-quote path))
+               (add-to-list 'directory-abbrev-alist (cons (format "\\`%s\\>" 
(regexp-quote path))
                                                           mount-point)))
              mount-points-to-add)
+      ;; Save the reverse of each mount-points-to-add so
+      ;; can expand paths when going from posix-to-mswindows.
       (setq hpath:directory-expand-alist
-           ;; Save the reverse of each mount-points-to-add so
-           ;; can expand paths when going from posix-to-mswindows.
-           (mapcar (lambda (elt) (cons (cdr elt) (car elt))) 
mount-points-to-add))
+           (mapcar (lambda (elt) (cons (concat "\\`" (cdr elt) "\\>")
+                                        (car elt))) mount-points-to-add))
       mount-points-to-add)))
 
 
@@ -540,27 +541,26 @@ These are used to indicate how to display or execute the 
pathname.
 Return PATH unchanged when it is not a valid path or when DEFAULT-DIRS
 is invalid.  DEFAULT-DIRS when non-nil may be a single directory or a list of
 directories.  The first one in which PATH is found is used."
-  (cond ((not (stringp path))
-        path)
-       ((and (setq path (hpath:trim path))
-             (not (hpath:is-p path nil t)))
-        path)
-       ((not (cond ((null default-dirs)
-                    (setq default-dirs (cons default-directory nil)))
-                   ((stringp default-dirs)
-                    (setq default-dirs (cons default-dirs nil)))
-                   ((listp default-dirs))
-                   (t nil)))
-        path)
-       (t
-        (let ((rtn) dir)
-          (while (and default-dirs (null rtn))
-            (setq dir (expand-file-name
-                       (file-name-as-directory (car default-dirs)))
-                  rtn (expand-file-name path dir)
-                  default-dirs (cdr default-dirs))
-            (or (file-exists-p rtn) (setq rtn nil)))
-          (or rtn path)))))
+  (cond ((not (and (stringp path)
+                   (hpath:is-p (hpath:trim path) nil t)))
+         path)
+        ((progn (setq path (hpath:trim path))
+                (not (cond ((null default-dirs)
+                            (setq default-dirs (cons default-directory nil)))
+                           ((stringp default-dirs)
+                            (setq default-dirs (cons default-dirs nil)))
+                           ((listp default-dirs))
+                           (t nil))))
+         path)
+        (t
+         (let ((rtn) dir)
+           (while (and default-dirs (null rtn))
+             (setq dir (expand-file-name
+                        (file-name-as-directory (car default-dirs)))
+                   rtn (expand-file-name path dir)
+                   default-dirs (cdr default-dirs))
+             (or (file-exists-p rtn) (setq rtn nil)))
+           (or rtn path)))))
 
 (defun hpath:tramp-file-name-regexp ()
   "Return a modified `tramp-file-name-regexp' for matching to the beginning of 
a remote file name.
@@ -765,12 +765,7 @@ is displayed or nil if not displayed because BUFFER is 
invalid."
     ;; BW 4/30/2016 - Commented out in case interferes with Smart Key
     ;; selection and yanking of the region via drags.
     ;; (hpath:push-tag-mark)
-    (unless display-where (setq display-where hpath:display-where))
-    (funcall (car (cdr (or (assq display-where
-                                hpath:display-buffer-alist)
-                          (assq 'other-window
-                                hpath:display-buffer-alist))))
-            buffer)
+    (funcall (hpath:display-buffer-function display-where) buffer)
     (selected-window)))
 
 (defun hpath:display-buffer-other-frame (buffer)
@@ -792,29 +787,30 @@ window in which the buffer is displayed."
   (switch-to-buffer buffer)
   (selected-window))
 
-(defun hpath:to-line (line-num)
-  "Move point to the start of an absolute LINE-NUM or the last line of the 
current buffer."
-  (save-restriction
-    (widen)
-    (goto-char (point-min))
-    (if (eq selective-display t)
-       (re-search-forward "[\n\r]" nil 'end (1- line-num))
-      (forward-line (1- line-num)))))
+(defun hpath:display-buffer-function (&optional display-where)
+   "Return the function to display a Hyperbole buffer using optional symbol 
DISPLAY-WHERE or `hpath:display-where'."
+  (hpath:display-where-function display-where hpath:display-buffer-alist))
+
+(defun hpath:display-path-function (&optional display-where)
+  "Return the function to display a Hyperbole path using optional symbol 
DISPLAY-WHERE or `hpath:display-where'."
+  (hpath:display-where-function display-where hpath:display-where-alist))
 
 (defun hpath:find-noselect (filename)
-  "Find but don't display file FILENAME using user customizable settings of 
display program and location.
-Return the current buffer iff file is displayed within a buffer (not with an 
external
+  "Find but don't display FILENAME using user customizable settings of display 
program and location.
+Return the current buffer iff FILENAME is displayed within a buffer (not with 
an external
 program), else nil.
 
-FILENAME may end with hash-style link references to HTML, Markdown or Emacs
-outline headings of the form, <file>#<anchor-name>."
+See `hpath:find' documentation for acceptable formats of FILENAME."
   (hpath:find filename nil t))
 
 (defun hpath:find (filename &optional display-where noselect)
-  "Edit file FILENAME using user customizable settings of display program and 
location.
+  "Edit FILENAME using user customizable settings of display program and 
location.
 Return the current buffer iff file is displayed within a buffer (not with an 
external
 program), else nil.
 
+FILENAME may contain references to Emacs Lisp variables or shell
+environment variables using the syntax, \"${variable-name}\".
+
 FILENAME may start with a special prefix character that is handled as follows:
   !filename  - execute as a non-windowed program within a shell;
   &filename  - execute as a windowed program;
@@ -822,9 +818,10 @@ FILENAME may start with a special prefix character that is 
handled as follows:
 
 If FILENAME does not start with a prefix character:
 
-  it may be followed by a hash-style link reference to HTML, Markdown
-  or Emacs outline headings of the form, <file>#<anchor-name>,
-  e.g. \"~/.bashrc#Alias Section\";
+  it may be followed by a hash-style link reference to HTML, XML,
+  SGML, shell script comment, Markdown or Emacs outline headings
+  of the form, <file>#<anchor-name>, e.g. \"~/.bashrc#Alias
+  Section\";
 
   it may end with a line number and optional column number to which to go,
   of the form, :<line-number>[:<column-number>], e.g. \"~/.bashrc:20:5\";
@@ -855,7 +852,7 @@ buffer but don't display it."
          default-directory (or (hattr:get 'hbut:current 'dir)
                                ;; Loc may be a buffer without a file
                                (if (stringp loc)
-                                   loc
+                                   (file-name-directory loc)
                                  default-directory)))
     (when (string-match hpath:prefix-regexp filename)
       (setq modifier (aref filename 0)
@@ -919,14 +916,7 @@ buffer but don't display it."
                          (error "(hpath:find): No available executable from: 
%s"
                                 display-executables)))
                       (t (setq path (hpath:validate path))
-                         (when (null display-where)
-                           (setq display-where hpath:display-where))
-                         (funcall
-                          (car (cdr (or (assq display-where
-                                              hpath:display-where-alist)
-                                        (assq 'other-window
-                                              hpath:display-where-alist))))
-                          path)
+                         (funcall (hpath:display-path-function display-where) 
path)
                          (when (or hash anchor) (hpath:to-markup-anchor hash 
anchor))
                          (when line-num
                            ;; With an anchor, goto line relative to
@@ -958,9 +948,13 @@ buffer but don't display it."
                (let ((opoint (point))
                      ;; Markdown or outline link ids are case
                      ;; insensitive and - characters are converted to
-                     ;; spaces at the point of definition.
+                     ;; spaces at the point of definition unless
+                     ;; anchor contains both - and space characters,
+                     ;; then no conversion occurs.
                      (case-fold-search t)
-                     (anchor-name (subst-char-in-string ?- ?\  anchor)))
+                     (anchor-name (if (string-match "-.* \\| .*-" anchor)
+                                      anchor
+                                    (subst-char-in-string ?- ?\  anchor))))
                  (goto-char (point-min))
                  (if (re-search-forward (format
                                          (cond ((or (string-match 
hpath:markdown-suffix-regexp buffer-file-name)
@@ -1353,6 +1347,15 @@ Returns LINKNAME unchanged if it is not a symbolic link 
but is a pathname."
         (setq referent (expand-file-name referent dirname))))
   referent)
 
+(defun hpath:to-line (line-num)
+  "Move point to the start of an absolute LINE-NUM or the last line of the 
current buffer."
+  (save-restriction
+    (widen)
+    (goto-char (point-min))
+    (if (eq selective-display t)
+       (re-search-forward "[\n\r]" nil 'end (1- line-num))
+      (forward-line (1- line-num)))))
+
 (defun hpath:trim (path)
   "Return PATH with any [\" \t\n\r] characters trimmed from its start and end."
   (string-trim path "[\" \t\n\r]+" "[\" \t\n\r]+"))
@@ -1406,9 +1409,10 @@ to it."
 
 ;; Overload `substitute-in-file-name' to eliminate truncation of URL prefixes
 ;; such as http://.
+(eval-and-compile
 (unless (fboundp 'hyperb:substitute-in-file-name)
 (defalias 'hyperb:substitute-in-file-name
-  (symbol-function 'substitute-in-file-name)))
+  (symbol-function 'substitute-in-file-name))))
 
 (defun substitute-in-file-name (filename)
   "Substitute environment variables referred to in FILENAME (skip Urls).
@@ -1549,6 +1553,13 @@ be integrated, otherwise the filename is appended as an 
argument."
       (format cmd filename)
     (format "%s \"%s\"" cmd filename)))
 
+(defun hpath:display-where-function (display-where display-where-alist)
+  "Return the function to display a Hyperbole buffer or path using symbol 
DISPLAY-WHERE or if null, `hpath:display-where'.
+DISPLAY-WHERE-ALIST is a lookup table mapping from DISPLAY-WHERE values to 
associated functions."
+  (unless display-where (setq display-where hpath:display-where))
+  (car (cdr (or (assq display-where display-where-alist)
+               (assq 'other-window display-where-alist)))))
+
 (defun hpath:remote-available-p ()
   "Return non-nil if a remote file access package is available, nil otherwise.
 Return the symbol for the appropriate package to require/use.
diff --git a/hui-menu.el b/hui-menu.el
index 1a0cdd3..dd6e706 100644
--- a/hui-menu.el
+++ b/hui-menu.el
@@ -401,6 +401,7 @@ REBUILD-FLAG is non-nil, in which case the menu is rebuilt."
                   ["Edit"   hui:gbut-modify t]
                   ["Help"   gbut:help t]
                   ["Modify" hui:gbut-modify t]
+                   ["Rename" hui:gbut-rename t]
                   )
                 '("Implicit-Button"
                   ["Manual"   (id-info "(hyperbole)Implicit Buttons") t]
diff --git a/hui-mini.el b/hui-mini.el
index 5682ed8..6dea17e 100644
--- a/hui-mini.el
+++ b/hui-mini.el
@@ -571,6 +571,7 @@ constructs.  If not given, the top level Hyperbole menu is 
used."
          ("Info"   (id-info "(hyperbole)Global Buttons")
           "Displays manual section on global buttons.")
          ("Modify" hui:gbut-modify "Modifies global button attributes.")
+         ("Rename" hui:gbut-rename "Renames a global button.")
          ))
        '(ibut .
         (("IButton>")
diff --git a/hui-mouse.el b/hui-mouse.el
index 9efe569..0c3193b 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -237,6 +237,11 @@ Its default value is #'smart-scroll-down."
         (string-match "^\\*Help\\|Help\\*$" (buffer-name))) .
         ((hkey-help-hide) . (hkey-help-hide)))
     ;;
+    ;; Emacs bookmarks menu (bookmark.el)
+    ((eq major-mode 'bookmark-bmenu-mode) .
+     ((bookmark-jump (bookmark-bmenu-bookmark) 
(hpath:display-buffer-function)) .
+      (hkey-help t)))
+    ;;
     ;; Pages directory listing mode (page-ext.el)
     ((eq major-mode 'pages-directory-mode) .
      ((pages-directory-goto) . (pages-directory-goto)))
diff --git a/hui-select.el b/hui-select.el
index b953dee..b146710 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -16,7 +16,7 @@
 ;;   Simply load this library and you are ready to try it out by
 ;;   double-clicking on various kinds of characters in different buffer major
 ;;   modes.  You'll quickly get the hang of it.  (It also provides a command
-;;   to jump between beginning and end tags within HTML and SGML buffers.)
+;;   to jump between beginning and end tags within HTML, SGML and XML buffers.)
 ;;   
 ;;   A great deal of smarts are built-in so that it does the right thing
 ;;   almost all of the time; many other attempts at similar behavior such as
@@ -63,11 +63,11 @@
 ;;    `hui-select-and-copy-thing' - mark and copy the syntactical unit to the
 ;;      kill ring
 ;;    `hui-select-and-kill-thing' - kill the syntactical unit at point
-;;    `hui-select-goto-matching-tag' - In HTML and SGML modes (actually any
-;;      listed in the variable, `hui-select-markup-modes'), move point to the
+;;    `hui-select-goto-matching-tag' - In modes listed in the variable,
+;;    `hui-select-markup-modes'), move point to the
 ;;      start of the tag paired with the closest tag that point is within or
 ;;      which it precedes, so you can quickly jump back and forth between
-;;      open and close tags.  As noted, in html-mode this is bound to {C-c .}
+;;      open and close tags.  In these modes, this is bound to {C-c .}
 ;;    `hui-select-at-p' - predicate to test if a buffer position (or point) 
starts
 ;;      or ends a matching syntactical region (excluding a single character).
 ;;
@@ -81,7 +81,7 @@
 ;;      (hui-select-initialize)
 ;;
 ;;   This will autoload this package, bind the selection command to a double
-;;   click of the left mouse button and set up Java, C++ and HTML modes
+;;   click of the left mouse button and set up Java, C++ and 
`hui-select-markup-modes'
 ;;   for proper entity selection.
 ;;
 ;;   For any version of Emacs you should add the following autoload entries
@@ -107,7 +107,9 @@
 
 (require 'hvar)
 (eval-when-compile
-  (require 'sgml-mode) ;; for html-mode
+  (require 'kotl-mode)
+  (require 'sgml-mode) ;; for HTML mode
+  (require 'nxml-mode) ;; for XML mode
   (require 'web-mode nil t))
 
 ;;; ************************************************************************
@@ -121,7 +123,7 @@
   :group 'hyperbole-commands)
 
 (defcustom hui-select-markup-modes
-  '(html-mode sgml-mode web-mode)
+  '(html-mode sgml-mode nxml-mode web-mode)
   "*List of markup language modes that use SGML-style <tag> </tag> pairs."
   :type '(repeat (function :tag "Mode"))
   :group 'hyperbole-commands)
@@ -134,8 +136,8 @@
 
 (defcustom hui-select-indent-modes
   (append '(altmath-mode asm-mode csh-mode eiffel-mode ksh-mode
-            math-mode miranda-mode python-mode pascal-mode sather-mode)
-         hui-select-text-modes)
+                         math-mode miranda-mode python-mode pascal-mode 
sather-mode)
+             hui-select-text-modes)
   "*List of language major modes that use indentation mostly to define 
syntactic structure."
   :type '(repeat (function :tag "Mode"))
   :group 'hyperbole-commands)
@@ -211,33 +213,33 @@
 
 ;;;###autoload
 (defun hui-select-at-p (&optional pos)
-  "Return non-nil if the character after optional POS (or point) match a 
syntax entry in `hui-select-syntax-alist'.
+  "Return non-nil if the character after optional POS (or point) matches a 
syntax entry in `hui-select-syntax-alist'.
 The non-nil value returned is the function to call to select that syntactic 
unit."
   (interactive "d")
   (unless (and (bobp) (eobp))
     (or (numberp pos) (setq pos (point)))
     (setq hui-select-previous 'char)
     (let* ((syntax (char-syntax (or (char-after pos) (char-before pos))))
-          (pair (assq syntax hui-select-syntax-alist)))
+              (pair (assq syntax hui-select-syntax-alist)))
       (and pair (or hui-select-whitespace (not (eq (cdr pair) 
'thing-whitespace)))
-          ;; Ignore matches that are preceded by '\' as a quote, e.g. ?\'
-          (or (not (char-after pos))
-              (= pos (point-min))
-              (and (char-before pos) (/= ?\\ (char-before pos))))
-          (cdr pair)))))
+              ;; Ignore matches that are preceded by '\' as a quote, e.g. ?\'
+              (or (not (char-after pos))
+                  (= pos (point-min))
+                  (and (char-before pos) (/= ?\\ (char-before pos))))
+              (cdr pair)))))
 
 ;;;###autoload
 (defun hui-select-goto-matching-delimiter ()
   "Jump back and forth between the start and end delimiters of a thing."
   (interactive)
   (cond ((memq major-mode hui-select-markup-modes)
-        (hui-select-goto-matching-tag))
-       ((and (preceding-char) (or (= ?\) (char-syntax (preceding-char)))
-                                  (= ?\" (preceding-char))))
-        (backward-sexp))
-       ((and (following-char) (or (= ?\( (char-syntax (following-char)))
-                                  (= ?\" (following-char))))
-        (forward-sexp))))
+            (hui-select-goto-matching-tag))
+           ((and (preceding-char) (or (= ?\) (char-syntax (preceding-char)))
+                                                  (= ?\" (preceding-char))))
+            (backward-sexp))
+           ((and (following-char) (or (= ?\( (char-syntax (following-char)))
+                                                  (= ?\" (following-char))))
+            (forward-sexp))))
 
 ;;;###autoload
 (defun hui-select-initialize ()
@@ -248,71 +250,70 @@ Also, add language-specific syntax setups to aid in thing 
selection."
     (require 'hyperbole))
   (if hkey-init
       (progn
-       (transient-mark-mode 1)
-       (hkey-global-set-key [double-down-mouse-1] nil)
-       (hkey-global-set-key [double-mouse-1] 'hui-select-thing-with-mouse)
-       (hkey-global-set-key [triple-down-mouse-1] nil)
-       (hkey-global-set-key [triple-mouse-1] 'hui-select-thing-with-mouse)))
+           (transient-mark-mode 1)
+           (hkey-global-set-key [double-down-mouse-1] nil)
+           (hkey-global-set-key [double-mouse-1] 'hui-select-thing-with-mouse)
+           (hkey-global-set-key [triple-down-mouse-1] nil)
+           (hkey-global-set-key [triple-mouse-1] 
'hui-select-thing-with-mouse)))
   ;;
   ;; These hooks let you select C++ and Java methods and classes by
   ;; double-clicking on the first character of a definition or on its
   ;; opening or closing brace.  This is all necessary since some
   ;; programmers don't put their function braces in the first column.
   (var:add-and-run-hook 'java-mode-hook (lambda ()
-                                         (setq defun-prompt-regexp
-                                               "^[ 
\t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|synchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][
 \t:;.,{}()=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([] 
\t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, 
\t\n\r\f]*\\)+\\)?\\s-*")))
+                                                             (setq 
defun-prompt-regexp
+                                                                       "^[ 
\t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|synchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][
 \t:;.,{}()=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([] 
\t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, \t\n\r\f 
[...]
   (var:add-and-run-hook 'c++-mode-hook (lambda ()
-                                        (setq defun-prompt-regexp
-                                              "^[ 
\t]*\\(template\\s-*<[^>;.{}]+>\\s-*\\)?\\(\\(\\(auto\\|const\\|explicit\\|extern\\s-+\"[^\"]+\"\\|extern\\|friend\\|inline\\|mutable\\|overload\\|register\\|static\\|typedef\\|virtual\\)\\s-+\\)*\\(\\([[<a-zA-Z][]_a-zA-Z0-9]*\\(::[]_a-zA-Z0-9]+\\)?\\s-*<[_<>a-zA-Z0-9
 
,]+>\\s-*[*&]*\\|[[<a-zA-Z][]_<>a-zA-Z0-9]*\\(::[[<a-zA-Z][]_<>a-zA-Z0-9]+\\)?\\s-*[*&]*\\)[*&
 
\t\n\r]+\\)\\)?\\(\\(::\\|[[<a-zA-Z][]_a-zA-Z0-9]*\\s-*<[^>;{}]+>\\s-*[*&]*::\\|[[<a-zA-Z][]_~<>a-zA-Z0-9]*\\s-*
 [...]
+                                                            (setq 
defun-prompt-regexp
+                                                                  "^[ 
\t]*\\(template\\s-*<[^>;.{}]+>\\s-*\\)?\\(\\(\\(auto\\|const\\|explicit\\|extern\\s-+\"[^\"]+\"\\|extern\\|friend\\|inline\\|mutable\\|overload\\|register\\|static\\|typedef\\|virtual\\)\\s-+\\)*\\(\\([[<a-zA-Z][]_a-zA-Z0-9]*\\(::[]_a-zA-Z0-9]+\\)?\\s-*<[_<>a-zA-Z0-9
 
,]+>\\s-*[*&]*\\|[[<a-zA-Z][]_<>a-zA-Z0-9]*\\(::[[<a-zA-Z][]_<>a-zA-Z0-9]+\\)?\\s-*[*&]*\\)[*&
 
\t\n\r]+\\)\\)?\\(\\(::\\|[[<a-zA-Z][]_a-zA-Z0-9]*\\s-*<[^>;{}]+>\\s-*[*&]*::\\|[[<a-zA-Z][]
 [...]
   ;;
   ;; Match to Lisp symbols with : in their names, often included in help 
buffers.
   (var:add-and-run-hook 'help-mode-hook (lambda () (modify-syntax-entry ?:  
"_"  help-mode-syntax-table)))
   ;;
   ;; Allow for marking and moving brace delimited groups.
   (var:add-and-run-hook 'lisp-mode-hook
-                       (lambda ()
-                         (modify-syntax-entry ?\{ "\(\}" 
lisp-mode-syntax-table)
-                         (modify-syntax-entry ?\} "\)\{" 
lisp-mode-syntax-table)))
+                                   (lambda ()
+                                     (modify-syntax-entry ?\{ "\(\}" 
lisp-mode-syntax-table)
+                                     (modify-syntax-entry ?\} "\)\{" 
lisp-mode-syntax-table)))
   ;;
   ;; This hook makes tags, comments, sentences and text blocks
-  ;; selectable in HTML mode.  (You would do something similar for
-  ;; SGML mode).
+  ;; selectable in SGML-related modes.
   ;;
   ;; Make tag begin and end delimiters act like grouping characters,
   ;; for easy syntactical selection of tags.
-  (var:add-and-run-hook 'html-mode-hook
-                       (lambda ()
-                         (modify-syntax-entry ?<  "(>" html-mode-syntax-table)
-                         (modify-syntax-entry ?>  ")<" html-mode-syntax-table)
-                         (modify-syntax-entry ?\{ "\(\}" 
html-mode-syntax-table)
-                         (modify-syntax-entry ?\} "\)\{" 
html-mode-syntax-table)
-                         (modify-syntax-entry ?\" "\"" html-mode-syntax-table)
-                         (modify-syntax-entry ?=  "."  html-mode-syntax-table)
-                         (modify-syntax-entry ?.  "_"  html-mode-syntax-table)
-                         (make-local-variable 'comment-start)
-                         (make-local-variable 'comment-end)
-                         (setq comment-start "<!--" comment-end "-->")
-                         (make-local-variable 'sentence-end)
-                         (setq sentence-end "\\([^ 
\t\n\r>]<\\|>\\(<[^>]*>\\)*\\|[.?!][]\"')}]*\\($\\| $\\|\t\\|  \\)\\)[ \t\n]*")
-                         (define-key html-mode-map "\C-c." 
'hui-select-goto-matching-tag)))
-  (var:add-and-run-hook 'web-mode-hook
-                       (lambda ()
-                         (modify-syntax-entry ?<  "(>" web-mode-syntax-table)
-                         (modify-syntax-entry ?>  ")<" web-mode-syntax-table)
-                         (modify-syntax-entry ?\{ "\(\}" web-mode-syntax-table)
-                         (modify-syntax-entry ?\} "\)\{" web-mode-syntax-table)
-                         (modify-syntax-entry ?\" "\"" web-mode-syntax-table)
-                         (modify-syntax-entry ?=  "."  web-mode-syntax-table)
-                         (modify-syntax-entry ?.  "_"  web-mode-syntax-table)
-                         (make-local-variable 'sentence-end)
-                         (setq sentence-end "\\([^ 
\t\n\r>]<\\|>\\(<[^>]*>\\)*\\|[.?!][]\"')}]*\\($\\| $\\|\t\\|  \\)\\)[ \t\n]*")
-                         (define-key web-mode-map "\C-c." 
'hui-select-goto-matching-tag))))
+  (let (hook-sym syntax-table keymap mode-str)
+    (mapc (lambda (mode)
+            (setq mode-str (symbol-name mode)
+                  hook-sym (intern (concat mode-str "-hook"))
+                  syntax-table-sym (intern (concat mode-str "-syntax-table"))
+                  keymap-sym (intern (concat mode-str "-map")))
+            (var:add-and-run-hook hook-sym
+                                             `(lambda ()
+                                     (let ((syntax-table (symbol-value 
',syntax-table-sym))
+                                           (keymap (symbol-value 
',keymap-sym)))
+                                                  (modify-syntax-entry ?<  
"(>" syntax-table)
+                                                  (modify-syntax-entry ?>  
")<" syntax-table)
+                                                  (modify-syntax-entry ?\{ 
"\(\}" syntax-table)
+                                                  (modify-syntax-entry ?\} 
"\)\{" syntax-table)
+                                                  (modify-syntax-entry ?\" 
"\"" syntax-table)
+                                                  (modify-syntax-entry ?=  "." 
 syntax-table)
+                                                  (modify-syntax-entry ?.  "_" 
 syntax-table)
+                                                  (setq sentence-end "\\([^ 
\t\n\r>]<\\|>\\(<[^>]*>\\)*\\|[.?!][]\"')}]*\\($\\| $\\|\t\\|  \\)\\)[ \t\n]*")
+                                                  (define-key keymap "\C-c." 
'hui-select-goto-matching-tag))))
+            (unless (eq mode 'web-mode)
+              (var:add-and-run-hook
+               hook-sym (lambda ()
+                                     (make-local-variable 'comment-start)
+                                     (make-local-variable 'comment-end)
+                                     (setq comment-start "<!--" comment-end 
"-->")
+                                     (make-local-variable 'sentence-end)))))
+          hui-select-markup-modes)))
 
 (defun hui-select-get-region-boundaries ()
   "Return the (START . END) boundaries of region for `hui-select-thing'."
   (or (hui-select-boundaries (point))
       (when (eq hui-select-previous 'punctuation)
-       (hui-select-word (point)))))
+           (hui-select-word (point)))))
 
 ;;;###autoload
 (defun hui-select-get-region ()
@@ -329,26 +330,26 @@ If `hui-select-display-type' is non-nil and this is called
 interactively, the type of selection is displayed in the minibuffer."
   (interactive
    (cond ((and (fboundp 'use-region-p) (use-region-p))
-         nil)
-        ((and (boundp 'transient-mark-mode) transient-mark-mode mark-active)
-         nil)
-        (t
-         ;; Reset selection based on the syntax of character at point.
-         (hui-select-reset)
-         nil)))
+             nil)
+            ((and (boundp 'transient-mark-mode) transient-mark-mode 
mark-active)
+             nil)
+            (t
+             ;; Reset selection based on the syntax of character at point.
+             (hui-select-reset)
+             nil)))
   (let ((region (hui-select-get-region-boundaries)))
     (unless region
       (when (eq hui-select-previous 'punctuation)
-       (setq region (hui-select-word (point)))))
+           (setq region (hui-select-word (point)))))
     (when region
       (goto-char (car region))
       (set-mark (cdr region))
-      (if (fboundp 'activate-region) (activate-region))
-      (if (and (boundp 'transient-mark-mode)
-              transient-mark-mode)
-         (setq mark-active t))
+      (when (fboundp 'activate-region) (activate-region))
+      (when (and (boundp 'transient-mark-mode)
+                    transient-mark-mode)
+           (setq mark-active t))
       (and (called-interactively-p 'interactive) hui-select-display-type
-          (message "%s" hui-select-previous))
+              (message "%s" hui-select-previous))
       (run-hooks 'hui-select-thing-hook)
       t)))
 
@@ -362,18 +363,18 @@ displayed in the minibuffer."
   (interactive "@e")
   (mouse-set-point event)
   (cond ((and (eq hui-select-prior-point (point))
-             (eq hui-select-prior-buffer (current-buffer)))
-        ;; Prior click was at the same point as before, so enlarge
-        ;; selection to the next bigger item.
-        (let ((select-active-regions t)) ;; Automatically copy active
-          ;; region to PRIMARY inter-program selection.
-          (when (hui-select-bigger-thing)
-            (and (called-interactively-p 'interactive) hui-select-display-type
-                 (message "%s" hui-select-previous))))
-        t)
-       (t (setq this-command 'mouse-start-selection)
-          (hui-select-reset)
-          (hui-select-thing-with-mouse event))))
+                 (eq hui-select-prior-buffer (current-buffer)))
+            ;; Prior click was at the same point as before, so enlarge
+            ;; selection to the next bigger item.
+            (let ((select-active-regions t)) ;; Automatically copy active
+              ;; region to PRIMARY inter-program selection.
+              (when (hui-select-bigger-thing)
+                (and (called-interactively-p 'interactive) 
hui-select-display-type
+                         (message "%s" hui-select-previous))))
+            t)
+           (t (setq this-command 'mouse-start-selection)
+              (hui-select-reset)
+              (hui-select-thing-with-mouse event))))
 
 ;;;###autoload
 (defun hui-select-goto-matching-tag ()
@@ -384,13 +385,13 @@ does not have a `>' terminator character."
   (interactive)
   (when (memq major-mode hui-select-markup-modes)
     (let ((result)
-         ;; Assume case of tag names is irrelevant.
-         (case-fold-search t)
-         (opoint (point))
-         (tag)
-         end-point
-         start-regexp
-         end-regexp)
+             ;; Assume case of tag names is irrelevant.
+             (case-fold-search t)
+             (opoint (point))
+             (tag)
+             end-point
+             start-regexp
+             end-regexp)
 
       ;; Leave point at the start of the tag that point is within or that
       ;; follows point.
@@ -399,86 +400,86 @@ does not have a `>' terminator character."
        ((looking-at "<[^<> \t\n\r]"))
        ;; Point was within a tag.
        ((and (re-search-backward "[<>]" nil t)
-            (looking-at "<[^<> \t\n\r]")))
+                (looking-at "<[^<> \t\n\r]")))
        ;; Move to following tag.
        ((and (re-search-forward "<" nil t)
-            (progn (backward-char 1)
-                   (looking-at "<[^<> \t\n\r]"))))
+                (progn (backward-char 1)
+                           (looking-at "<[^<> \t\n\r]"))))
        ;; No tag follows point.
        (t (error "(hui-select-goto-matching-tag): No tag found after point")))
 
       (if (catch 'done
-           (cond
-            ;; Beginning of a tag pair
-            ((looking-at "<[^/][^<> \t\n\r]*")
-             (setq tag (match-string 0)
-                   start-regexp (regexp-quote tag)
-                   end-regexp   (concat "</" (substring start-regexp 1)))
-             ;; Skip over nested tags.
-             (let ((count 0)
-                   (regexp (concat start-regexp "\\|" end-regexp))
-                   match-point)
-               (while (and (>= count 0)
-                           (re-search-forward regexp nil t))
-                 (setq match-point (match-beginning 0))
-                 (if (/= (char-after (1+ (match-beginning 0))) ?/)
-                     ;; Start tag
-                     (setq count (1+ count))
-                   ;; End tag
-                   (setq end-point (point))
-                   (if (or (not (re-search-forward "[<>]" nil t))
-                           (= (preceding-char) ?<))
-                       ;; No terminator character `>' for end tag
-                       (progn (setq result end-point)
-                              (throw 'done nil)))
-                   (setq count (1- count))
-                   (when (zerop count)
-                     (goto-char match-point)
-                     (setq result t)
-                     (throw 'done result))))))
-            ;;
-            ;; End of a tag pair
-            ((or (looking-at "</[^\> \t\n\r]+")
-                 (and (skip-chars-backward "<")
-                      (looking-at "</[^\> \t\n\r]+")))
-             (goto-char (match-end 0))
-             (setq tag (match-string 0)
-                   end-regexp (regexp-quote tag)
-                   start-regexp   (concat "<" (substring end-regexp 2)))
-             (setq end-point (point))
-             (when (or (not (re-search-forward "[<>]" nil t))
-                       (= (preceding-char) ?<))
-                 ;; No terminator character `>' for end tag
-               (setq result end-point)
-               (throw 'done nil))
-             ;; Skip over nested tags.
-             (let ((count 0)
-                   (regexp (concat start-regexp "\\|" end-regexp)))
-               (while (and (>= count 0)
-                           (re-search-backward regexp nil t))
-                 (if (= (char-after (1+ (point))) ?/)
-                     ;; End tag
-                     (setq count (1+ count))
-                   ;; Start tag
-                   (setq count (1- count))
-                   (when (zerop count)
-                     (setq result t)
-                     (throw 'done t))))))))
-         nil
-       ;; Didn't find matching tag.
-       (goto-char opoint))
+               (cond
+                ;; Beginning of a tag pair
+                ((looking-at "<[^/][^<> \t\n\r]*")
+                 (setq tag (match-string 0)
+                           start-regexp (regexp-quote tag)
+                           end-regexp   (concat "</" (substring start-regexp 
1)))
+                 ;; Skip over nested tags.
+                 (let ((count 0)
+                           (regexp (concat start-regexp "\\|" end-regexp))
+                           match-point)
+                       (while (and (>= count 0)
+                                       (re-search-forward regexp nil t))
+                         (setq match-point (match-beginning 0))
+                         (if (/= (char-after (1+ (match-beginning 0))) ?/)
+                             ;; Start tag
+                             (setq count (1+ count))
+                           ;; End tag
+                           (setq end-point (point))
+                           (if (or (not (re-search-forward "[<>]" nil t))
+                                       (= (preceding-char) ?<))
+                                   ;; No terminator character `>' for end tag
+                                   (progn (setq result end-point)
+                                          (throw 'done nil)))
+                           (setq count (1- count))
+                           (when (zerop count)
+                             (goto-char match-point)
+                             (setq result t)
+                             (throw 'done result))))))
+                ;;
+                ;; End of a tag pair
+                ((or (looking-at "</[^\> \t\n\r]+")
+                         (and (skip-chars-backward "<")
+                              (looking-at "</[^\> \t\n\r]+")))
+                 (goto-char (match-end 0))
+                 (setq tag (match-string 0)
+                           end-regexp (regexp-quote tag)
+                           start-regexp   (concat "<" (substring end-regexp 
2)))
+                 (setq end-point (point))
+                 (when (or (not (re-search-forward "[<>]" nil t))
+                                   (= (preceding-char) ?<))
+                       ;; No terminator character `>' for end tag
+                       (setq result end-point)
+                       (throw 'done nil))
+                 ;; Skip over nested tags.
+                 (let ((count 0)
+                           (regexp (concat start-regexp "\\|" end-regexp)))
+                       (while (and (>= count 0)
+                                       (re-search-backward regexp nil t))
+                         (if (= (char-after (1+ (point))) ?/)
+                             ;; End tag
+                             (setq count (1+ count))
+                           ;; Start tag
+                           (setq count (1- count))
+                           (when (zerop count)
+                             (setq result t)
+                             (throw 'done t))))))))
+             nil
+           ;; Didn't find matching tag.
+           (goto-char opoint))
 
       (cond ((integerp result)
-            (goto-char result)
-            (error "(hui-select-goto-matching-tag): Add a terminator character 
for this end <tag>"))
-           ((null tag)
-            (error "(hui-select-goto-matching-tag): No <tag> following point"))
-           ((null result)
-            (when (called-interactively-p 'interactive)
-              (beep)
-              (message "(hui-select-goto-matching-tag): No matching tag for 
%s>" tag)
-              result))
-           (t result)))))
+                (goto-char result)
+                (error "(hui-select-goto-matching-tag): Add a terminator 
character for this end <tag>"))
+               ((null tag)
+                (error "(hui-select-goto-matching-tag): No <tag> following 
point"))
+               ((null result)
+                (when (called-interactively-p 'interactive)
+                  (beep)
+                  (message "(hui-select-goto-matching-tag): No matching tag 
for %s>" tag)
+                  result))
+               (t result)))))
 
 ;;;###autoload
 (defun hui-select-and-copy-thing ()
@@ -510,10 +511,10 @@ The character at POS is selected if no other thing is 
matched."
      ((eq hui-select-previous 'char)
       (hui-select-syntactical-region pos))
      ((and (car hui-select-old-region)
-          (memq hui-select-previous
-                '(sexp sexp-start sexp-end sexp-up))
-          (hui-select-sexp-up pos)
-          (hui-select-region-bigger-p hui-select-old-region hui-select-region))
+              (memq hui-select-previous
+                        '(sexp sexp-start sexp-end sexp-up))
+              (hui-select-sexp-up pos)
+              (hui-select-region-bigger-p hui-select-old-region 
hui-select-region))
       hui-select-region)
      ;;
      ;; In the general case, we can't know ahead of time what the next
@@ -521,42 +522,42 @@ The character at POS is selected if no other thing is 
matched."
      ;; the best fit.  This means that dynamically, the order of type
      ;; selection will change based on the buffer context.
      (t (let ((min-region (1+ (- (point-max) (point-min))))
-             (result)
-             region region-size)
-         (mapc
-          (lambda (sym-func)
-            (setq region
-                  (if (car (cdr sym-func))
-                      (funcall (car (cdr sym-func)) pos)))
-            (if (and region (car region)
-                     (hui-select-region-bigger-p
-                      hui-select-old-region region)
-                     (setq region-size
-                           (- (cdr region) (car region)))
-                     (< region-size min-region))
-                (setq min-region region-size
-                      result
-                      (list
-                       ;; The actual selection type is
-                       ;; sometimes different than the one we
-                       ;; originally tried, so recompute it here.
-                       (car (assq hui-select-previous
-                                  hui-select-bigger-alist))
-                       (car region) (cdr region)))))
-          hui-select-bigger-alist)
-         (if result
-             ;; Returns hui-select-region
-             (progn (setq hui-select-previous (car result))
-                    (hui-select-set-region (nth 1 result) (nth 2 result)))
-           ;;
-           ;; Restore prior selection type since we failed to find a
-           ;; new one.
-           (setq hui-select-previous prior-type)
-           (beep)
-           (message
-            "(hui-select-boundaries): `%s' is the largest selectable region"
-            hui-select-previous)
-           nil))))))
+                 (result)
+                 region region-size)
+             (mapc
+              (lambda (sym-func)
+                (setq region
+                          (if (car (cdr sym-func))
+                              (funcall (car (cdr sym-func)) pos)))
+                (if (and region (car region)
+                             (hui-select-region-bigger-p
+                              hui-select-old-region region)
+                             (setq region-size
+                                       (- (cdr region) (car region)))
+                             (< region-size min-region))
+                        (setq min-region region-size
+                              result
+                              (list
+                                   ;; The actual selection type is
+                                   ;; sometimes different than the one we
+                                   ;; originally tried, so recompute it here.
+                                   (car (assq hui-select-previous
+                                                  hui-select-bigger-alist))
+                                   (car region) (cdr region)))))
+              hui-select-bigger-alist)
+             (if result
+                 ;; Returns hui-select-region
+                 (progn (setq hui-select-previous (car result))
+                            (hui-select-set-region (nth 1 result) (nth 2 
result)))
+               ;;
+               ;; Restore prior selection type since we failed to find a
+               ;; new one.
+               (setq hui-select-previous prior-type)
+               (beep)
+               (message
+                "(hui-select-boundaries): `%s' is the largest selectable 
region"
+                hui-select-previous)
+               nil))))))
 
 ;;;###autoload
 (defun hui-select-double-click-hook (event click-count)
@@ -565,9 +566,9 @@ If the double-click occurs at the same point as the last 
double-click, select
 the next larger syntactic structure.  If `hui-select-display-type' is non-nil,
 the type of selection is displayed in the minibuffer."
   (cond ((/= click-count 2)
-        ;; Return nil so any other hooks are performed.
-        nil)
-       (t (hui-select-thing-with-mouse event))))
+            ;; Return nil so any other hooks are performed.
+            nil)
+           (t (hui-select-thing-with-mouse event))))
 
 (defun hui-select-syntactical-region (pos)
   "Return the (start . end) of a syntactically defined region based upon the 
buffer position POS.
@@ -592,14 +593,14 @@ If an error occurs during syntax scanning, it returns 
nil."
   (if (save-excursion (goto-char pos) (eolp))
       (hui-select-line pos)
     (let* ((syntax (char-syntax (or (char-after pos) (char-before pos))))
-          (pair (assq syntax hui-select-syntax-alist)))
+              (pair (assq syntax hui-select-syntax-alist)))
       (cond ((and pair
-                 (or hui-select-whitespace
-                     (not (eq (cdr pair) 'hui-select-whitespace))))
-            (funcall (cdr pair) pos))
-           (hui-select-char-p
-            (setq hui-select-previous 'char)
-            (hui-select-set-region pos (1+ pos)))))))
+                         (or hui-select-whitespace
+                             (not (eq (cdr pair) 'hui-select-whitespace))))
+                (funcall (cdr pair) pos))
+               (hui-select-char-p
+                (setq hui-select-previous 'char)
+                (hui-select-set-region pos (1+ pos)))))))
 
 (defun hui-select-at-delimited-thing-p ()
   "Return non-nil if point is at a markup pair, list, array/vector, set, 
comment or string, else nil.
@@ -609,14 +610,14 @@ Ignores any match if on an Emacs button and instead 
returns nil."
   (unless (button-at (point))
     (setq hkey-value (hui-select-delimited-thing-call #'hui-select-at-p))
     (cond ((eq hkey-value 'hui-select-punctuation)
-          (if (hui-select-comment (point))
-              (setq hkey-value #'hui-select-comment)
-            ;; Else here used to be `hkey-value' but then we are returning a
-            ;; value for any punctuation character without knowing if
-            ;; it is part of a delimited thing.  Nil should be the
-            ;; right thing here.
-            nil))
-         (t hkey-value))))
+              (if (hui-select-comment (point))
+                  (setq hkey-value #'hui-select-comment)
+                ;; Else here used to be `hkey-value' but then we are returning 
a
+                ;; value for any punctuation character without knowing if
+                ;; it is part of a delimited thing.  Nil should be the
+                ;; right thing here.
+                nil))
+             (t hkey-value))))
 
 (defun hui-select-delimited-thing ()
   "Select a markup pair, list, array/vector, set, comment or string at point 
and return t, else nil."
@@ -625,22 +626,22 @@ Ignores any match if on an Emacs button and instead 
returns nil."
     ;; If selected region is followed by only whitespace and then a
     ;; newline, add the newline to the region.
     (if (use-region-p)
-       (if (> (mark) (point))
-           (save-excursion
-             (goto-char (mark))
-             (skip-chars-forward " \t")
-             (and (char-after) (= ?\n (char-after))
-                  (set-mark (1+ (point)))))
-         (if (looking-at "[ \t]*\n")
-             (goto-char (match-end 0)))))))
+           (if (> (mark) (point))
+               (save-excursion
+                 (goto-char (mark))
+                 (skip-chars-forward " \t")
+                 (and (char-after) (= ?\n (char-after))
+                          (set-mark (1+ (point)))))
+             (if (looking-at "[ \t]*\n")
+                 (goto-char (match-end 0)))))))
 
 (defun hui-select-at-delimited-sexp-p ()
   (unless (eolp)
     (let ((syn-before (if (char-before) (char-syntax (char-before)) 0))
-         (syn-after  (if (char-after)  (char-syntax (char-after)) 0)))
+             (syn-after  (if (char-after)  (char-syntax (char-after)) 0)))
       (or (and (/= syn-before ?\\) (or (= syn-after ?\() (= syn-after ?\))))
-         (and (= syn-before ?\)) (char-before (1- (point)))
-              (/= ?\\ (char-syntax (char-before (1- (point))))))))))
+             (and (= syn-before ?\)) (char-before (1- (point)))
+                  (/= ?\\ (char-syntax (char-before (1- (point))))))))))
 
 (defun hui-select-mark-delimited-sexp ()
   "If point is before or after an sexp and not at an end of line, then 
deactivate the mark and mark the sexp.
@@ -649,22 +650,22 @@ Return t if marked, nil otherwise.  If any error occurs 
such as
   nil."
   (interactive)
   (let ((mark-sexp-func (lambda ()
-                         (if (region-active-p) (deactivate-mark))
-                         (mark-sexp) t)))
+                                     (if (region-active-p) (deactivate-mark))
+                                     (mark-sexp) t)))
     (condition-case nil
-       (let ((syn-after (char-syntax (char-after)))
-             syn-before)
-         (cond ((eq syn-after ?\()
-                (funcall mark-sexp-func))
-               ((eq syn-after ?\))
-                (forward-char 1)
-                (backward-sexp)
-                (funcall mark-sexp-func))
-               ((and (not (eolp))
-                     (setq syn-before (char-syntax (char-before)))
-                     (eq syn-before ?\)))
-                (backward-sexp)
-                (funcall mark-sexp-func))))
+           (let ((syn-after (char-syntax (char-after)))
+                 syn-before)
+             (cond ((eq syn-after ?\()
+                        (funcall mark-sexp-func))
+                       ((eq syn-after ?\))
+                        (forward-char 1)
+                        (backward-sexp)
+                        (funcall mark-sexp-func))
+                       ((and (not (eolp))
+                             (setq syn-before (char-syntax (char-before)))
+                             (eq syn-before ?\)))
+                        (backward-sexp)
+                        (funcall mark-sexp-func))))
          (error nil))))
 
 ;;; ************************************************************************
@@ -675,23 +676,23 @@ Return t if marked, nil otherwise.  If any error occurs 
such as
   "Return non-nil if on a blank line or a comment start or end line.
 Assumes point is before any non-whitespace character on the line."
   (let ((comment-end-p (and (stringp comment-end)
-                           (not (string-equal comment-end "")))))
+                                       (not (string-equal comment-end "")))))
     (if (looking-at
-        (concat "\\s-*$\\|\\s-*\\(//\\|/\\*\\|.*\\*/"
-                (if comment-start
-                    (concat
-                     "\\|" (regexp-quote comment-start)))
-                (if comment-end-p
-                    (concat
-                     "\\|.*" (regexp-quote comment-end)))
-                "\\)"))
-       (or (not (and comment-start comment-end-p))
-           ;; Ignore start and end of comments that
-           ;; follow non-commented text.
-           (not (looking-at
-                 (format ".*\\S-.*%s.*%s"
-                         (regexp-quote comment-start)
-                         (regexp-quote comment-end))))))))
+            (concat "\\s-*$\\|\\s-*\\(//\\|/\\*\\|.*\\*/"
+                        (if comment-start
+                            (concat
+                             "\\|" (regexp-quote comment-start)))
+                        (if comment-end-p
+                            (concat
+                             "\\|.*" (regexp-quote comment-end)))
+                        "\\)"))
+           (or (not (and comment-start comment-end-p))
+               ;; Ignore start and end of comments that
+               ;; follow non-commented text.
+               (not (looking-at
+                         (format ".*\\S-.*%s.*%s"
+                                     (regexp-quote comment-start)
+                                     (regexp-quote comment-end))))))))
 
 (defun hui-select-back-to-indentation ()
   "Move point to the first non-whitespace character on this line and return 
point.
@@ -699,9 +700,9 @@ This respects the current syntax table definition of 
whitespace, whereas
 `back-to-indentation' does not.  This is relevant in literate programming and
 mail and news reply modes."
   (goto-char (min (progn (end-of-line) (point))
-                 (progn (beginning-of-line)
-                        (skip-syntax-forward " ")
-                        (point)))))
+                         (progn (beginning-of-line)
+                                    (skip-syntax-forward " ")
+                                    (point)))))
 
 (defun hui-select-bigger-thing ()
   "Select a bigger object where point is."
@@ -713,43 +714,43 @@ mail and news reply modes."
   "Select a markup pair, list, vector/array, set, comment or string at point 
and return non-nil, else nil.
 The non-nil value returned is the function to call to select that syntactic 
unit."
   (unless (and (memq major-mode hui-select-ignore-quoted-sexp-modes)
-              ;; Ignore quoted identifier sexpressions, like #'function
-              (char-after) (memq (char-after) '(?# ?\')))
-      (let ((hui-select-char-p)
-           (hui-select-whitespace)
-           (hui-select-syntax-alist '((?\" . hui-select-string)
-                                      (?\( . hui-select-sexp-start)
-                                      (?\$ . hui-select-sexp-start)
-                                      (?\' . hui-select-sexp-start)
-                                      (?\) . hui-select-sexp-end)
-                                      (?\< . hui-select-comment)
-                                      ;; Punctuation needed to match
-                                      ;; multi-char comment delimiters
-                                      (?\. . hui-select-punctuation))))
-       (hui-select-reset)
-       (funcall func))))
+                  ;; Ignore quoted identifier sexpressions, like #'function
+                  (char-after) (memq (char-after) '(?# ?\')))
+    (let ((hui-select-char-p)
+             (hui-select-whitespace)
+             (hui-select-syntax-alist '((?\" . hui-select-string)
+                                                    (?\( . 
hui-select-sexp-start)
+                                                    (?\$ . 
hui-select-sexp-start)
+                                                    (?\' . 
hui-select-sexp-start)
+                                                    (?\) . hui-select-sexp-end)
+                                                    (?\< . hui-select-comment)
+                                                    ;; Punctuation needed to 
match
+                                                    ;; multi-char comment 
delimiters
+                                                    (?\. . 
hui-select-punctuation))))
+         (hui-select-reset)
+         (funcall func))))
 
 (defun hui-select-region-bigger-p (old-region new-region)
   "Return t if OLD-REGION is smaller than NEW-REGION and NEW-REGION partially 
overlaps OLD-REGION, or if OLD-REGION is uninitialized."
   (if (null (car old-region))
       t
     (and (> (abs (- (cdr new-region) (car new-region)))
-           (abs (- (cdr old-region) (car old-region))))
-        ;; Ensure the two regions intersect.
-        (or (and (<= (min (cdr new-region) (car new-region))
-                     (min (cdr old-region) (car old-region)))
-                 (>  (max (cdr new-region) (car new-region))
-                     (min (cdr old-region) (car old-region))))
-            (and (>  (min (cdr new-region) (car new-region))
-                     (min (cdr old-region) (car old-region)))
-                 (<= (min (cdr new-region) (car new-region))
-                     (max (cdr old-region) (car old-region))))))))
+               (abs (- (cdr old-region) (car old-region))))
+            ;; Ensure the two regions intersect.
+            (or (and (<= (min (cdr new-region) (car new-region))
+                             (min (cdr old-region) (car old-region)))
+                         (>  (max (cdr new-region) (car new-region))
+                             (min (cdr old-region) (car old-region))))
+                (and (>  (min (cdr new-region) (car new-region))
+                             (min (cdr old-region) (car old-region)))
+                         (<= (min (cdr new-region) (car new-region))
+                             (max (cdr old-region) (car old-region))))))))
 
 (defun hui-select-reset ()
   ;; Reset syntactic selection.
   (setq hui-select-prior-point (point)
-       hui-select-prior-buffer (current-buffer)
-       hui-select-previous 'char)
+           hui-select-prior-buffer (current-buffer)
+           hui-select-previous 'char)
   (hui-select-set-region nil nil))
 
 (defun hui-select-set-region (beginning end)
@@ -757,13 +758,14 @@ The non-nil value returned is the function to call to 
select that syntactic unit
 Return the updated cons cell."
   (setcar hui-select-region beginning)
   (setcdr hui-select-region end)
-  (when (and (null beginning) (null end))
+  (unless (or beginning end)
     (setcar hui-select-old-region nil)
     (setcdr hui-select-old-region nil))
-  (if (and (not (eq hui-select-previous 'buffer))
-          (integerp beginning) (integerp end)
-          (= beginning (point-min)) (= end (point-max)))
-      ;; If we selected the whole buffer, make sure that 'thing' type is 
'buffer'.
+  (if (and (not (memq hui-select-previous '(buffer markup-pair)))
+              (integerp beginning) (integerp end)
+              (= beginning (point-min)) (= end (point-max)))
+      ;; If we selected the whole buffer and not matching a markup-pair,
+      ;; make sure that 'thing' type is 'buffer'.
       nil
     hui-select-region))
 
@@ -773,41 +775,43 @@ Positions include delimiters.  String is delimited by 
double quotes unless
 optional START-DELIM and END-DELIM (strings) are given.
 Returns nil if not within a string."
   (let ((opoint (point))
-       (count 0)
-       bol start delim-regexp start-regexp end-regexp)
+           (count 0)
+           bol start delim-regexp start-regexp end-regexp)
     (or start-delim (setq start-delim "\""))
     (or end-delim (setq end-delim "\""))
     ;; Special case for the empty string.
     (if (looking-at (concat (regexp-quote start-delim)
-                           (regexp-quote end-delim)))
-       (hui-select-set-region (point) (match-end 0))
+                                       (regexp-quote end-delim)))
+           (hui-select-set-region (point) (match-end 0))
       (setq start-regexp (concat "\\(^\\|[^\\]\\)\\("
-                                (regexp-quote start-delim) "\\)")
-           end-regexp   (concat "[^\\]\\(" (regexp-quote end-delim) "\\)")
-           delim-regexp (concat start-regexp "\\|" end-regexp))
+                                                (regexp-quote start-delim) 
"\\)")
+               end-regexp   (concat "[^\\]\\(" (regexp-quote end-delim) "\\)")
+               delim-regexp (concat start-regexp "\\|" end-regexp))
       (save-excursion
-       (beginning-of-line)
-       (setq bol (point))
-       (while (re-search-forward delim-regexp opoint t)
-         (setq count (1+ count))
-         ;; This is so we don't miss the closing delimiter of an empty
-         ;; string.
-         (if (and (= (point) (1+ bol))
-                  (looking-at (regexp-quote end-delim)))
+           (beginning-of-line)
+           (setq bol (point))
+           (while (re-search-forward delim-regexp opoint t)
              (setq count (1+ count))
-           (if (bobp) nil (backward-char 1))))
-       (goto-char opoint)
-       ;; If found an even # of starting and ending delimiters before
-       ;; opoint, then opoint is at the start of a string, where we want it.
-       (if (zerop (mod count 2))
-           (if (bobp) nil (backward-char 1))
-         (re-search-backward start-regexp nil t))
-       ;; Point is now before the start of the string.
-       (if (re-search-forward start-regexp nil t)
-           (progn
-             (setq start (match-beginning 2))
-             (if (re-search-forward end-regexp nil t)
-                 (hui-select-set-region start (point)))))))))
+             ;; This is so we don't miss the closing delimiter of an empty
+             ;; string.
+             (if (and (= (point) (1+ bol))
+                          (looking-at (regexp-quote end-delim)))
+                 (setq count (1+ count))
+               (unless (bobp)
+              (backward-char 1))))
+           (goto-char opoint)
+           ;; If found an even # of starting and ending delimiters before
+           ;; opoint, then opoint is at the start of a string, where we want 
it.
+           (if (zerop (mod count 2))
+               (unless (bobp)
+              (backward-char 1))
+             (re-search-backward start-regexp nil t))
+           ;; Point is now before the start of the string.
+           (if (re-search-forward start-regexp nil t)
+               (progn
+                 (setq start (match-beginning 2))
+                 (when (re-search-forward end-regexp nil t)
+                       (hui-select-set-region start (point)))))))))
 
 ;;;
 ;;; Code selections
@@ -822,98 +826,98 @@ list, hui-select-brace-modes."
     (save-excursion
       (goto-char pos)
       (let ((at-def-brace
-            (or (looking-at "^\{") (looking-at "^\}")
-                ;; Handle stupid old C-style and new Java
-                ;; style of putting braces at the end of
-                ;; lines.
-                (and (= (following-char) ?\{)
-                     (stringp defun-prompt-regexp)
-                     (save-excursion
-                       (beginning-of-line)
-                       (looking-at defun-prompt-regexp)))
-                (and (= (following-char) ?\})
-                     (stringp defun-prompt-regexp)
-                     (condition-case ()
-                         (progn
-                           ;; Leave point at opening brace.
-                           (goto-char
-                            (scan-sexps (1+ (point)) -1))
-                           ;; Test if these are defun braces.
-                           (save-excursion
-                             (beginning-of-line)
-                             (looking-at defun-prompt-regexp)))
-                       (error nil)))))
-           eod)
-       (if (or at-def-brace
-               ;; At the start of a definition:
-               ;; Must be at the first non-whitespace character in the line.
-               (and (= (point) (save-excursion 
(hui-select-back-to-indentation)))
-                    ;; Must be on an alpha or symbol-constituent character.
-                    ;; Also allow ~ for C++ destructors.
-                    (looking-at "[a-zA-z~]\\|\\s_")
-                    ;; Previous line, if any,  must be blank or a comment
-                    ;; start or end or we must be looking at
-                    ;; `defun-prompt-regexp' when at the beginning of the line.
-                    (or (and (stringp defun-prompt-regexp)
-                             (save-excursion
-                               (beginning-of-line)
-                               (looking-at defun-prompt-regexp)))
-                        (save-excursion
-                          (if (/= (forward-line -1) 0)
-                              t
-                            (hui-select-at-blank-line-or-comment))))))
-           (progn
-             (setq hui-select-previous 'brace-def-or-declaration)
-             ;; Handle declarations and definitions embedded within classes.
-             (if (and (eq (following-char) ?\{)
-                      (/= (point) (save-excursion
-                                    (hui-select-back-to-indentation))))
-                 (setq at-def-brace nil))
-             ;;
-             (if at-def-brace nil (beginning-of-line))
-             (if (and (not at-def-brace)
-                      (stringp defun-prompt-regexp)
-                      (or (looking-at defun-prompt-regexp)
-                          ;; For Java classes mainly
-                          (looking-at "[a-zA-Z_$. \t]+\\s-*\{")))
-                 ;; Mark the declaration or definition
-                 (hui-select-set-region
-                  (point)
-                  (progn (goto-char (match-end 0))
-                         (if (eq (preceding-char) ?\{)
-                             (backward-char 1))
-                         (if (eq (following-char) ?\{)
-                             (forward-list 1)
-                           (search-forward ";" nil t))
-                         (skip-chars-forward " \t")
-                         (skip-chars-forward "\n")
-                         (if (looking-at "^\\s-*$")
-                             (forward-line 1))
-                         (point)))
-               ;; Mark function definitions only
-               (setq eod (save-excursion
-                           (condition-case ()
-                               (progn
-                                 (if (and (eq major-mode 'java-mode)
-                                          (fboundp 'id-java-end-of-defun))
-                                     (id-java-end-of-defun)
-                                   (end-of-defun))
-                                 (if (looking-at "^\\s-*$")
-                                     (forward-line 1))
-                                 (point))
-                             (error (point-max)))))
-               (if (= (following-char) ?\})
-                   ;; Leave point at opening brace.
-                   (goto-char (scan-sexps (1+ (point)) -1)))
-               (if (= (following-char) ?\{)
-                   (progn
-                     (while (and (zerop (forward-line -1))
-                                 (not (hui-select-at-blank-line-or-comment))))
-                     (if (hui-select-at-blank-line-or-comment)
-                         (forward-line 1))))
-               ;; Mark the whole definition
-               (setq hui-select-previous 'brace-def-or-declaration)
-               (hui-select-set-region (point) eod))))))))
+                (or (looking-at "^\{") (looking-at "^\}")
+                        ;; Handle stupid old C-style and new Java
+                        ;; style of putting braces at the end of
+                        ;; lines.
+                        (and (= (following-char) ?\{)
+                             (stringp defun-prompt-regexp)
+                             (save-excursion
+                                   (beginning-of-line)
+                                   (looking-at defun-prompt-regexp)))
+                        (and (= (following-char) ?\})
+                             (stringp defun-prompt-regexp)
+                             (condition-case ()
+                                     (progn
+                                       ;; Leave point at opening brace.
+                                       (goto-char
+                                        (scan-sexps (1+ (point)) -1))
+                                       ;; Test if these are defun braces.
+                                       (save-excursion
+                                         (beginning-of-line)
+                                         (looking-at defun-prompt-regexp)))
+                                   (error nil)))))
+               eod)
+           (if (or at-def-brace
+                       ;; At the start of a definition:
+                       ;; Must be at the first non-whitespace character in the 
line.
+                       (and (= (point) (save-excursion 
(hui-select-back-to-indentation)))
+                            ;; Must be on an alpha or symbol-constituent 
character.
+                            ;; Also allow ~ for C++ destructors.
+                            (looking-at "[a-zA-z~]\\|\\s_")
+                            ;; Previous line, if any,  must be blank or a 
comment
+                            ;; start or end or we must be looking at
+                            ;; `defun-prompt-regexp' when at the beginning of 
the line.
+                            (or (and (stringp defun-prompt-regexp)
+                                         (save-excursion
+                                               (beginning-of-line)
+                                               (looking-at 
defun-prompt-regexp)))
+                                    (save-excursion
+                                      (if (/= (forward-line -1) 0)
+                                          t
+                                        
(hui-select-at-blank-line-or-comment))))))
+               (progn
+                 (setq hui-select-previous 'brace-def-or-declaration)
+                 ;; Handle declarations and definitions embedded within 
classes.
+                 (if (and (eq (following-char) ?\{)
+                              (/= (point) (save-excursion
+                                                    
(hui-select-back-to-indentation))))
+                         (setq at-def-brace nil))
+                 ;;
+                 (if at-def-brace nil (beginning-of-line))
+                 (if (and (not at-def-brace)
+                              (stringp defun-prompt-regexp)
+                              (or (looking-at defun-prompt-regexp)
+                                      ;; For Java classes mainly
+                                      (looking-at "[a-zA-Z_$. \t]+\\s-*\{")))
+                         ;; Mark the declaration or definition
+                         (hui-select-set-region
+                          (point)
+                          (progn (goto-char (match-end 0))
+                                     (if (eq (preceding-char) ?\{)
+                                         (backward-char 1))
+                                     (if (eq (following-char) ?\{)
+                                         (forward-list 1)
+                                       (search-forward ";" nil t))
+                                     (skip-chars-forward " \t")
+                                     (skip-chars-forward "\n")
+                                     (if (looking-at "^\\s-*$")
+                                         (forward-line 1))
+                                     (point)))
+                       ;; Mark function definitions only
+                       (setq eod (save-excursion
+                                       (condition-case ()
+                                               (progn
+                                                 (if (and (eq major-mode 
'java-mode)
+                                                              (fboundp 
'id-java-end-of-defun))
+                                                     (id-java-end-of-defun)
+                                                   (end-of-defun))
+                                                 (if (looking-at "^\\s-*$")
+                                                     (forward-line 1))
+                                                 (point))
+                                         (error (point-max)))))
+                       (if (= (following-char) ?\})
+                           ;; Leave point at opening brace.
+                           (goto-char (scan-sexps (1+ (point)) -1)))
+                       (if (= (following-char) ?\{)
+                           (progn
+                             (while (and (zerop (forward-line -1))
+                                                 (not 
(hui-select-at-blank-line-or-comment))))
+                             (if (hui-select-at-blank-line-or-comment)
+                                     (forward-line 1))))
+                       ;; Mark the whole definition
+                       (setq hui-select-previous 'brace-def-or-declaration)
+                       (hui-select-set-region (point) eod))))))))
 
 (defun hui-select-indent-def (pos)
   "If POS is at the first alpha character on a line, return (start . end) 
region.
@@ -925,85 +929,85 @@ list, hui-select-indent-modes."
     (save-excursion
       (goto-char pos)
       (if (and
-          ;; Use this function only if point is on the first non-blank
-          ;; character of a block, whatever a block is for the current
-          ;; mode.
-          (cond ((eq major-mode 'kotl-mode)
-                 (and (looking-at "[1-9*]") (not (kview:valid-position-p))))
-                ((or (eq major-mode 'outline-mode) selective-display)
-                 (save-excursion (beginning-of-line)
-                                 (looking-at outline-regexp)))
-                ;; After indent in any other mode, must be on an alpha
-                ;; or symbol-constituent character.
-                (t (looking-at "[a-zA-z]\\|\\s_")))
-          ;; Must be at the first non-whitespace character in the line.
-          (= (point) (save-excursion (hui-select-back-to-indentation))))
-         (let* ((start-col (current-column))
-                (opoint (if (eq major-mode 'kotl-mode)
-                            (progn (kotl-mode:to-valid-position) (point))
-                          (beginning-of-line) (point))))
-           (while
-               (and (zerop (forward-line 1))
-                    (bolp)
-                    (or (progn (hui-select-back-to-indentation)
-                               (> (current-column) start-col))
-                        ;; If in a text mode, allow outdenting, otherwise
-                        ;; only include special lines here indented to the
-                        ;; same point as the original line.
-                        (and (or (memq major-mode hui-select-text-modes)
-                                 (= (current-column) start-col))
-                             (looking-at
-                              (or (car (cdr
-                                        (assq
-                                         major-mode
-                                         
hui-select-indent-non-end-regexp-alist)))
-                                  "\\'"))))))
-           (if (and (looking-at
-                     (or (car (cdr (assq major-mode
-                                         hui-select-indent-end-regexp-alist)))
-                         "\\'"))
-                    (or (memq major-mode hui-select-text-modes)
-                        (= (current-column) start-col)))
-               (forward-line 1))
-           (beginning-of-line)
-           ;; Mark the whole definition
-           (setq hui-select-previous 'indent-def)
-           (hui-select-set-region opoint (point)))))))
+              ;; Use this function only if point is on the first non-blank
+              ;; character of a block, whatever a block is for the current
+              ;; mode.
+              (cond ((eq major-mode 'kotl-mode)
+                         (and (looking-at "[1-9*]") (not 
(kview:valid-position-p))))
+                        ((or (eq major-mode 'outline-mode) selective-display)
+                         (save-excursion (beginning-of-line)
+                                                 (looking-at outline-regexp)))
+                        ;; After indent in any other mode, must be on an alpha
+                        ;; or symbol-constituent character.
+                        (t (looking-at "[a-zA-z]\\|\\s_")))
+              ;; Must be at the first non-whitespace character in the line.
+              (= (point) (save-excursion (hui-select-back-to-indentation))))
+             (let* ((start-col (current-column))
+                        (opoint (if (eq major-mode 'kotl-mode)
+                                        (progn (kotl-mode:to-valid-position) 
(point))
+                                      (beginning-of-line) (point))))
+               (while
+                       (and (zerop (forward-line 1))
+                            (bolp)
+                            (or (progn (hui-select-back-to-indentation)
+                                               (> (current-column) start-col))
+                                    ;; If in a text mode, allow outdenting, 
otherwise
+                                    ;; only include special lines here 
indented to the
+                                    ;; same point as the original line.
+                                    (and (or (memq major-mode 
hui-select-text-modes)
+                                                 (= (current-column) 
start-col))
+                                         (looking-at
+                                          (or (car (cdr
+                                                            (assq
+                                                             major-mode
+                                                             
hui-select-indent-non-end-regexp-alist)))
+                                                  "\\'"))))))
+               (if (and (looking-at
+                             (or (car (cdr (assq major-mode
+                                                             
hui-select-indent-end-regexp-alist)))
+                                     "\\'"))
+                            (or (memq major-mode hui-select-text-modes)
+                                    (= (current-column) start-col)))
+                       (forward-line 1))
+               (beginning-of-line)
+               ;; Mark the whole definition
+               (setq hui-select-previous 'indent-def)
+               (hui-select-set-region opoint (point)))))))
 
 (defun hui-select-symbol (pos)
   "Return (start . end) of a symbol at POS."
   (or (hui-select-markup-pair pos)
-   ;; Test for indented def here since might be on an '*' representing
-   ;; an outline entry, in which case we mark entries as indented blocks.
-   (hui-select-indent-def pos)
-   (save-excursion
-     (if (memq (char-syntax (if (eobp) (preceding-char) (char-after pos)))
-              '(?w ?_))
-        (progn (setq hui-select-previous 'symbol)
-               (condition-case ()
-                   (let ((end (scan-sexps pos 1)))
-                     (hui-select-set-region
-                      (min pos (scan-sexps end -1)) end))
-                 (error nil)))))))
+      ;; Test for indented def here since might be on an '*' representing
+      ;; an outline entry, in which case we mark entries as indented blocks.
+      (hui-select-indent-def pos)
+      (save-excursion
+        (if (memq (char-syntax (if (eobp) (preceding-char) (char-after pos)))
+                     '(?w ?_))
+               (progn (setq hui-select-previous 'symbol)
+                          (condition-case ()
+                              (let ((end (scan-sexps pos 1)))
+                                (hui-select-set-region
+                                 (min pos (scan-sexps end -1)) end))
+                            (error nil)))))))
 
 (defun hui-select-sexp-start (pos)
   "Return (start . end) of sexp starting at POS."
   (or (hui-select-markup-pair pos)
       (hui-select-brace-def-or-declaration pos)
       (save-excursion
-       (setq hui-select-previous 'sexp-start)
-       (condition-case ()
-           (hui-select-set-region pos (scan-sexps pos 1))
-         (error nil)))))
+           (setq hui-select-previous 'sexp-start)
+           (condition-case ()
+               (hui-select-set-region pos (scan-sexps pos 1))
+             (error nil)))))
 
 (defun hui-select-sexp-end (pos)
   "Return (start . end) of sexp ending at POS."
   (or (hui-select-brace-def-or-declaration pos)
       (save-excursion
-       (setq hui-select-previous 'sexp-end)
-       (condition-case ()
-           (hui-select-set-region (scan-sexps (1+ pos) -1) (1+ pos))
-         (error nil)))))
+           (setq hui-select-previous 'sexp-end)
+           (condition-case ()
+               (hui-select-set-region (scan-sexps (1+ pos) -1) (1+ pos))
+             (error nil)))))
 
 (defun hui-select-sexp (pos)
   "Return (start . end) of the sexp that POS is within."
@@ -1011,8 +1015,8 @@ list, hui-select-indent-modes."
   (save-excursion
     (goto-char pos)
     (condition-case ()
-       (hui-select-set-region (progn (backward-up-list 1) (point))
-                              (progn (forward-list 1) (point)))
+           (hui-select-set-region (progn (backward-up-list 1) (point))
+                                          (progn (forward-list 1) (point)))
       (error nil))))
 
 (defun hui-select-sexp-up (pos)
@@ -1024,8 +1028,8 @@ list, hui-select-indent-modes."
   (save-excursion
     (goto-char pos)
     (condition-case ()
-       (hui-select-set-region (progn (backward-up-list 1) (point))
-                             (progn (forward-list 1) (point)))
+           (hui-select-set-region (progn (backward-up-list 1) (point))
+                                          (progn (forward-list 1) (point)))
       (error nil))))
 
 (defun hui-select-preprocessor-def (pos)
@@ -1040,16 +1044,16 @@ included in the list, hui-select-brace-modes."
     (save-excursion
       (goto-char pos)
       (if (and (= (following-char) ?#)
-              ;; Must be at the first non-whitespace character in the line.
-              (= (point) (save-excursion (hui-select-back-to-indentation))))
-         (progn
-           ;; Skip past continuation lines that end with a backslash.
-           (while (and (looking-at ".*\\\\\\s-*$")
-                       (zerop (forward-line 1))))
-           (forward-line 1)
-           ;; Include one trailing blank line, if any.
-           (if (looking-at "^[ \t\n\r]*$") (forward-line 1))
-           (hui-select-set-region pos (point)))))))
+                  ;; Must be at the first non-whitespace character in the line.
+                  (= (point) (save-excursion 
(hui-select-back-to-indentation))))
+             (progn
+               ;; Skip past continuation lines that end with a backslash.
+               (while (and (looking-at ".*\\\\\\s-*$")
+                                   (zerop (forward-line 1))))
+               (forward-line 1)
+               ;; Include one trailing blank line, if any.
+               (if (looking-at "^[ \t\n\r]*$") (forward-line 1))
+               (hui-select-set-region pos (point)))))))
 
 ;; Allow punctuation marks not followed by white-space to include
 ;; the previous and subsequent sexpression.  Useful in contexts such as
@@ -1060,18 +1064,18 @@ included in the list, hui-select-brace-modes."
       (hui-select-preprocessor-def pos)
       (hui-select-brace-def-or-declaration pos) ;; Might be on a C++ 
destructor ~.
       (save-excursion
-       (setq hui-select-previous 'punctuation)
-       (goto-char (min (1+ pos) (point-max)))
-       (cond ((and (char-after pos) (= ?\  (char-syntax (char-after pos))))
-              (hui-select-set-region pos (1+ pos)))
-             ((and (char-before pos) (= ?\  (char-syntax (char-before pos))))
-              (hui-select-set-region (1- pos) pos))
-             (t (goto-char pos)
-                (condition-case ()
-                    (hui-select-set-region
-                     (save-excursion (backward-sexp) (point))
-                     (progn (forward-sexp) (point)))
-                  (error nil)))))))
+           (setq hui-select-previous 'punctuation)
+           (goto-char (min (1+ pos) (point-max)))
+           (cond ((and (char-after pos) (= ?\  (char-syntax (char-after pos))))
+                  (hui-select-set-region pos (1+ pos)))
+                 ((and (char-before pos) (= ?\  (char-syntax (char-before 
pos))))
+                  (hui-select-set-region (1- pos) pos))
+                 (t (goto-char pos)
+                        (condition-case ()
+                            (hui-select-set-region
+                             (save-excursion (backward-sexp) (point))
+                             (progn (forward-sexp) (point)))
+                          (error nil)))))))
 
 (defun hui-select-comment (pos)
   "Return rest of line from POS to newline."
@@ -1079,70 +1083,70 @@ included in the list, hui-select-brace-modes."
   (save-excursion
     (goto-char pos)
     (let ((start-regexp  (if (stringp comment-start)
-                            (regexp-quote comment-start)))
-         (end-regexp    (if (stringp comment-end)
-                            (regexp-quote comment-end)))
-         bolp)
+                                        (regexp-quote comment-start)))
+             (end-regexp    (if (stringp comment-end)
+                                        (regexp-quote comment-end)))
+             bolp)
       (cond
        ;; Beginning of a comment
        ((and (stringp comment-start)
-            (or (looking-at start-regexp)
-                (save-excursion
-                  (and (skip-chars-backward comment-start)
-                       (looking-at start-regexp)))))
-       (skip-chars-backward " \t")
-       (setq bolp (bolp)
-             pos (point))
-       (if (equal comment-end "")
-           (progn (end-of-line)
-                  (hui-select-set-region pos (point)))
-         (if (stringp comment-end)
-             ;; Skip over nested comments.
-             (let ((count 0)
-                   (regexp (concat start-regexp "\\|" end-regexp)))
-               (catch 'done
-                 (while (re-search-forward regexp nil t)
-                   (if (string-equal (match-string 0) comment-start)
-                       (setq count (1+ count))
-                     ;; End comment
-                     (setq count (1- count))
-                     (if (= count 0)
-                         (progn
-                           (if (looking-at "[ \t]*[\n\r]")
-                               ;; Don't include final newline unless the
-                               ;; comment is first thing on its line.
-                               (goto-char (if bolp (match-end 0)
-                                            (1- (match-end 0)))))
-                           (throw 'done (hui-select-set-region
-                                         pos (point))))))))))))
+                (or (looking-at start-regexp)
+                        (save-excursion
+                          (and (skip-chars-backward comment-start)
+                                   (looking-at start-regexp)))))
+           (skip-chars-backward " \t")
+           (setq bolp (bolp)
+                 pos (point))
+           (if (equal comment-end "")
+               (progn (end-of-line)
+                          (hui-select-set-region pos (point)))
+             (if (stringp comment-end)
+                 ;; Skip over nested comments.
+                 (let ((count 0)
+                           (regexp (concat start-regexp "\\|" end-regexp)))
+                       (catch 'done
+                         (while (re-search-forward regexp nil t)
+                           (if (string-equal (match-string 0) comment-start)
+                                   (setq count (1+ count))
+                             ;; End comment
+                             (setq count (1- count))
+                             (if (= count 0)
+                                     (progn
+                                       (if (looking-at "[ \t]*[\n\r]")
+                                               ;; Don't include final newline 
unless the
+                                               ;; comment is first thing on 
its line.
+                                               (goto-char (if bolp (match-end 
0)
+                                                                (1- (match-end 
0)))))
+                                       (throw 'done (hui-select-set-region
+                                                             pos 
(point))))))))))))
        ;; End of a comment
        ((and (stringp comment-end)
-            (not (string-equal comment-end ""))
-            (or (looking-at end-regexp)
-                (and (skip-chars-backward comment-end)
-                     (looking-at end-regexp))))
-       (goto-char (match-end 0))
-       (if (looking-at "[ \t]*[\n\r]")
-           (goto-char (match-end 0)))
-       (setq pos (point))
-       (skip-chars-forward " \t")
-       ;; Skip over nested comments.
-       (let ((count 0)
-             (regexp (concat start-regexp "\\|" end-regexp)))
-         (catch 'done
-           (while (re-search-backward regexp nil t)
-             (if (string-equal (match-string 0) comment-end)
-                 (setq count (1+ count))
-               ;; Begin comment
-               (setq count (1- count))
-               (if (= count 0)
-                   (progn
-                     (skip-chars-backward " \t")
-                     ;; Don't include final newline unless the comment is
-                     ;; first thing on its line.
-                     (if (bolp) nil (setq pos (1- pos)))
-                     (throw 'done (hui-select-set-region
-                                   (point) pos)))))))))))))
+                (not (string-equal comment-end ""))
+                (or (looking-at end-regexp)
+                        (and (skip-chars-backward comment-end)
+                             (looking-at end-regexp))))
+           (goto-char (match-end 0))
+           (if (looking-at "[ \t]*[\n\r]")
+               (goto-char (match-end 0)))
+           (setq pos (point))
+           (skip-chars-forward " \t")
+           ;; Skip over nested comments.
+           (let ((count 0)
+                 (regexp (concat start-regexp "\\|" end-regexp)))
+             (catch 'done
+               (while (re-search-backward regexp nil t)
+                 (if (string-equal (match-string 0) comment-end)
+                         (setq count (1+ count))
+                       ;; Begin comment
+                       (setq count (1- count))
+                       (if (= count 0)
+                           (progn
+                             (skip-chars-backward " \t")
+                             ;; Don't include final newline unless the comment 
is
+                             ;; first thing on its line.
+                             (if (bolp) nil (setq pos (1- pos)))
+                             (throw 'done (hui-select-set-region
+                                                   (point) pos)))))))))))))
 
 ;;;
 ;;; Textual selections
@@ -1153,12 +1157,12 @@ included in the list, hui-select-brace-modes."
   (or (hui-select-brace-def-or-declaration pos)
       (hui-select-indent-def pos)
       (progn (setq hui-select-previous 'word)
-            (save-excursion
-              (goto-char pos)
-              (forward-word 1)
-              (let ((end (point)))
-                (forward-word -1)
-                (hui-select-set-region (point) end))))))
+                (save-excursion
+                  (goto-char pos)
+                  (forward-word 1)
+                  (let ((end (point)))
+                        (forward-word -1)
+                        (hui-select-set-region (point) end))))))
 
 (defun hui-select-string (pos)
   "Return (start . end) of string at POS or nil.  Pos include delimiters.
@@ -1167,19 +1171,19 @@ Delimiters may be single, double or open and close 
quotes."
   (save-excursion
     (goto-char pos)
     (if (and (memq major-mode hui-select-markup-modes)
-            (/= (following-char) ?\")
-            (save-excursion
-              (and (re-search-backward "[<>]" nil t)
-                   (= (following-char) ?>))))
-       (progn (setq hui-select-previous 'text)
-              (search-backward ">" nil t)
-              (hui-select-set-region
-               (1+ (point))
-               (progn (if (search-forward "<" nil 'end)
-                          (1- (point))
-                        (point)))))
+                (/= (following-char) ?\")
+                (save-excursion
+                  (and (re-search-backward "[<>]" nil t)
+                           (= (following-char) ?>))))
+           (progn (setq hui-select-previous 'text)
+                  (search-backward ">" nil t)
+                  (hui-select-set-region
+                       (1+ (point))
+                       (progn (if (search-forward "<" nil 'end)
+                                      (1- (point))
+                                    (point)))))
       (or (hui-select-string-p) (hui-select-string-p "'" "'")
-         (hui-select-string-p "`" "'")))))
+             (hui-select-string-p "`" "'")))))
 
 (defun hui-select-sentence (pos)
   "Return (start . end) of the sentence at POS."
@@ -1187,8 +1191,8 @@ Delimiters may be single, double or open and close 
quotes."
   (save-excursion
     (goto-char pos)
     (condition-case ()
-       (hui-select-set-region (progn (backward-sentence) (point))
-                             (progn (forward-sentence) (point)))
+           (hui-select-set-region (progn (backward-sentence) (point))
+                                          (progn (forward-sentence) (point)))
       (error nil))))
 
 (defun hui-select-whitespace (pos)
@@ -1199,114 +1203,115 @@ the line.  Then return all of it."
   (save-excursion
     (goto-char pos)
     (if (= (following-char) ?\^L)
-       (hui-select-page pos)
+           (hui-select-page pos)
       (let ((end (progn (skip-chars-forward " \t") (point)))
-           (start (progn (skip-chars-backward " \t") (point))))
-       (if (looking-at "[ \t]")
-           (if (or (bolp) (= (1+ start) end))
-               (hui-select-set-region start end)
-             (hui-select-set-region (1+ start) end)))))))
+               (start (progn (skip-chars-backward " \t") (point))))
+           (if (looking-at "[ \t]")
+               (if (or (bolp) (= (1+ start) end))
+                       (hui-select-set-region start end)
+                 (hui-select-set-region (1+ start) end)))))))
 
 (defun hui-select-markup-pair (pos)
-  "Return (start . end) of region between the opening and closing of an HTML 
or SGML tag pair, one of which is at POS.
+  "Return (start . end) of region between the opening and closing of an HTML, 
XML or SGML tag pair, one of which is at POS.
 The major mode for each language that uses such tags must be included in the
 list, hui-select-markup-modes."
   (when (memq major-mode hui-select-markup-modes)
     (setq hui-select-previous 'markup-pair)
     (let ((pos-with-space)
-         ;; Assume case of tag names is irrelevant.
-         (case-fold-search t)
-         (result)
-         start-regexp
-         end-regexp
-         bolp
-         opoint)
+             ;; Assume case of tag names is irrelevant.
+             (case-fold-search t)
+             (result)
+             start-regexp
+             end-regexp
+             bolp
+             opoint)
       (save-excursion
-       (catch 'done
-         (goto-char pos)
-         (cond
-          ;; Beginning of a tag pair
-          ((looking-at "<[^/][^<> \t\n\r]*")
-           (setq start-regexp (regexp-quote (match-string 0))
-                 end-regexp   (concat "</" (substring start-regexp 1)))
-           (setq pos (point))
-           (skip-chars-backward " \t")
-           (setq bolp (bolp)
-                 pos-with-space (point))
-           ;; Skip over nested tags.
-           (let ((count 0)
-                 (regexp (concat start-regexp "\\|" end-regexp)))
-             (while (and (>= count 0)
-                         (re-search-forward regexp nil t))
-               (if (/= (char-after (1+ (match-beginning 0))) ?/)
-                   ;; Start tag
-                   (setq count (1+ count))
-                 ;; Move past end tag terminator
-                 (setq opoint (point))
-                 (if (or (not (re-search-forward "[<>]" nil t))
-                         (= (preceding-char) ?<))
-                     (progn (setq result opoint)
-                            (throw 'done nil)))
-                 (setq count (1- count))
-                 (if (= count 0)
-                     (progn
-                       (if (looking-at "[ \t]*[\n\r]")
-                           ;; Don't include final newline unless the
-                           ;; start tag was the first thing on its line.
-                           (if bolp
-                               (progn (goto-char (match-end 0))
-                                      ;; Include leading space since the
-                                      ;; start and end tags begin and end
-                                      ;; lines.
-                                      (setq pos pos-with-space))
-                             (goto-char (1- (match-end 0)))))
-                       (setq result (hui-select-set-region pos (point)))
-                       (throw 'done nil)))))))
-          ;;
-          ;; End of a tag pair
-          ((or (looking-at "</[^\> \t\n\r]+")
-               (and (skip-chars-backward "\<")
-                    (looking-at "</[^\> \t\n\r]+")))
-           (goto-char (match-end 0))
-           (setq end-regexp (regexp-quote (match-string 0))
-                 start-regexp   (concat "\<" (substring end-regexp 2)))
-           (setq opoint (point))
-           (if (or (not (re-search-forward "[<>]" nil t))
-                   (= (preceding-char) ?<))
-               (progn (setq result opoint)
-                      (throw 'done nil)))
-           (setq pos (point))
-           (if (looking-at "[ \t]*[\n\r]")
-               (setq pos-with-space (match-end 0)))
-           ;; Skip over nested tags.
-           (let ((count 0)
-                 (regexp (concat start-regexp "\\|" end-regexp)))
-             (while (and (>= count 0)
-                         (re-search-backward regexp nil t))
-               (if (= (char-after (1+ (point))) ?/)
-                   ;; End tag
-                   (setq count (1+ count))
-                 ;; Start tag
-                 (setq count (1- count))
-                 (if (= count 0)
-                     (progn
-                       (if pos-with-space
-                           ;; Newline found after original end tag.
-                           (progn
-                             (skip-chars-backward " \t")
-                             (if (bolp)
-                                 ;; Don't include final newline unless the
-                                 ;; start tag is the first thing on its line.
-                                 (setq pos pos-with-space)
-                               (setq pos (1- pos-with-space))
-                               ;; Don't include non-leading space.
-                               (skip-chars-forward " \t"))))
-                       (setq result (hui-select-set-region (point) pos))
-                       (throw 'done nil))))))))))
+        (setq result
+                 (catch 'done
+                   (goto-char pos)
+                   (cond
+                    ;; Beginning of a tag pair
+                    ((looking-at "<[^/][^<> \t\n\r]*")
+                     (setq start-regexp (regexp-quote (match-string 0))
+                               end-regexp   (concat "</" (substring 
start-regexp 1)))
+                     (setq pos (point))
+                     (skip-chars-backward " \t")
+                     (setq bolp (bolp)
+                               pos-with-space (point))
+                     ;; Skip over nested tags.
+                     (let ((count 0)
+                               (regexp (concat start-regexp "\\|" end-regexp)))
+                       (while (and (>= count 0)
+                                           (re-search-forward regexp nil t))
+                             (if (/= (char-after (1+ (match-beginning 0))) ?/)
+                                 ;; Start tag
+                                 (setq count (1+ count))
+                               ;; Move past end tag terminator
+                               (setq opoint (point))
+                               (when (or (not (re-search-forward "[<>]" nil t))
+                                             (= (preceding-char) ?<))
+                                     (throw 'done opoint))
+                               (setq count (1- count))
+                               (when (= count 0)
+                          (cond ((eobp)
+                                 (if bolp
+                                                    ;; Include leading space 
since the
+                                                    ;; start and end tags 
begin and end
+                                                    ;; lines.
+                                                    (setq pos pos-with-space)
+                                   (goto-char (1- (point)))))
+                                           ((looking-at "[ \t]*[\n\r]")
+                                            ;; Don't include final newline 
unless the
+                                            ;; start tag was the first thing 
on its line.
+                                            (if bolp
+                                                    (progn (goto-char 
(match-end 0))
+                                                           ;; Include leading 
space since the
+                                                           ;; start and end 
tags begin and end
+                                                           ;; lines.
+                                                           (setq pos 
pos-with-space))
+                                              (goto-char (1- (match-end 0))))))
+                                     (throw 'done (hui-select-set-region pos 
(point))))))))
+                    ;;
+                    ;; End of a tag pair
+                    ((or (looking-at "</[^\> \t\n\r]+")
+                             (and (skip-chars-backward "\<")
+                                  (looking-at "</[^\> \t\n\r]+")))
+                     (goto-char (match-end 0))
+                     (setq end-regexp (regexp-quote (match-string 0))
+                               start-regexp   (concat "\<" (substring 
end-regexp 2))
+                           opoint (point))
+                     (when (or (not (re-search-forward "[<>]" nil t))
+                                   (= (preceding-char) ?<))
+                           (throw 'done opoint))
+                     (setq pos (point))
+                     (when (looking-at "[ \t]*[\n\r]")
+                           (setq pos-with-space (match-end 0)))
+                     ;; Skip over nested tags.
+                     (let ((count 0)
+                               (regexp (concat start-regexp "\\|" end-regexp)))
+                       (while (and (>= count 0)
+                                           (re-search-backward regexp nil t))
+                             (if (= (char-after (1+ (point))) ?/)
+                                 ;; End tag
+                                 (setq count (1+ count))
+                               ;; Start tag
+                               (setq count (1- count))
+                               (when (= count 0)
+                                     (when pos-with-space
+                                       ;; Newline found after original end tag.
+                                       (skip-chars-backward " \t")
+                                       (if (bolp)
+                                               ;; Don't include final newline 
unless the
+                                               ;; start tag is the first thing 
on its line.
+                                               (setq pos pos-with-space)
+                                             (setq pos (1- pos-with-space))
+                                             ;; Don't include non-leading 
space.
+                                             (skip-chars-forward " \t")))
+                                     (throw 'done (hui-select-set-region 
(point) pos)))))))))))
       (if (integerp result)
-         (progn (goto-char result)
-                (error "(hui-select-markup-pair): Add a terminator character 
for this end tag"))
-       result))))
+             (progn (goto-char result)
+                        (error "(hui-select-markup-pair): Add a terminator 
character for this end tag"))
+           result))))
 
 ;;;
 ;;; Document selections
@@ -1318,7 +1323,7 @@ list, hui-select-markup-modes."
   (save-excursion
     (goto-char pos)
     (let* ((start (progn (beginning-of-line 1) (point)))
-          (end (progn (forward-line 1) (point))))
+              (end (progn (forward-line 1) (point))))
       (hui-select-set-region start end))))
 
 (defun hui-select-paragraph (pos)
@@ -1328,7 +1333,7 @@ list, hui-select-markup-modes."
     (goto-char pos)
     (if (looking-at paragraph-start) (forward-paragraph))
     (hui-select-set-region (progn (backward-paragraph) (point))
-                         (progn (forward-paragraph) (point)))))
+                                      (progn (forward-paragraph) (point)))))
 
 (defun hui-select-page (pos)
   "Return (start . end) of the page preceding POS."
@@ -1336,7 +1341,7 @@ list, hui-select-markup-modes."
   (save-excursion
     (goto-char pos)
     (hui-select-set-region (progn (backward-page) (point))
-                         (progn (forward-page) (point)))))
+                                      (progn (forward-page) (point)))))
 
 (defun hui-select-buffer (pos)
   "Return (start . end) of the buffer at POS."
diff --git a/hui.el b/hui.el
index 6fc4f7d..3756750 100644
--- a/hui.el
+++ b/hui.el
@@ -337,8 +337,8 @@ Signals an error when no such button is found."
                        (find-file-noselect gbut:file) "gbut-modify")
                       (hbut:label-to-key
                        (hargs:read-match "Global button to modify: "
-                                         (mapcar 'list (gbut:label-list))
-                                         nil t nil 'ebut)))))
+                                         (mapcar #'list (gbut:label-list))
+                                         nil t nil 'gbut)))))
   (let ((lbl (hbut:key-to-label lbl-key))
        (src-dir default-directory)
        (but-buf (find-file-noselect gbut:file))
@@ -381,24 +381,22 @@ Signals an error when no such button is found."
                     (ibut:at-p))
            (hui:ibut-message t)))))))
 
+(defun hui:gbut-rename (label)
+  "Interactively rename a Hyperbole global button with LABEL.
+When in the global button buffer, the default is the button at point."
+  (interactive (list (save-excursion
+                      (hui:buf-writable-err
+                       (find-file-noselect gbut:file) "gbut-rename")
+                      (hbut:label-to-key
+                       (hargs:read-match "Global button to rename: "
+                                         (mapcar #'list (gbut:label-list))
+                                         nil t nil 'gbut)))))
+  (hbut:rename (gbut:to label)))
+
 (defun hui:hbut-act (&optional but)
   "Execute action for optional Hyperbole button symbol BUT in current buffer.
-Default is the current button."
-  (interactive
-   (let ((but (hbut:at-p)) (lst))
-     (list
-      (cond (but)
-           ((setq lst (nconc (ebut:alist) (ibut:alist)))
-            (hbut:get (hbut:label-to-key
-                       (hargs:read-match "Button to execute: " lst nil t
-                                         (hbut:label-p 'as-label) 'hbut))))
-           (t (hypb:error "(hbut-act): No labeled buttons in buffer"))))))
-  (cond ((and (called-interactively-p 'interactive) (null but))
-        (hypb:error "(hbut-act): No current button to activate"))
-       ((not (hbut:is-p but))
-        (hypb:error "(hbut-act): Button is invalid; it has no attributes"))
-       (t (or but (setq but 'hbut:current))
-          (hui:but-flash) (hbut:act but))))
+The default is the current button."
+  (hui:hbut-operate #'hbut:act "execute" but))
 
 (defun hui:hbut-current-act ()
   "Activate Hyperbole button at point or signal an error if there is no such 
button."
@@ -466,6 +464,35 @@ Also has side effect of moving point to start of default 
label, if any."
       (progn (goto-char start)
             (buffer-substring start end))))
 
+(defun hui:hbut-operate (operation operation-str &optional but)
+  "Execute OPERATION (a function) described by OPERATION-STR action on a 
Hyperbole button.
+Either the button at point is used or if none, then one is prompted
+for with completion of all labeled buttons within the current buffer."
+  (unless (or but (setq but (hbut:at-p)))
+    (let (lst)
+      (cond ((setq lst (nconc (ebut:alist) (ibut:alist)))
+                (setq but (hbut:get (hbut:label-to-key
+                                             (hargs:read-match (format "Button 
to %s: " operation-str)
+                                                    lst nil t
+                                                                       
(hbut:label-p 'as-label) 'hbut)))))
+               (t (hypb:error "(hbut-operate): No labeled buttons in 
buffer")))))
+  (cond ((and (called-interactively-p 'interactive) (null but))
+            (hypb:error "(hbut-operate): No current button to operate upon"))
+           ((not (hbut:is-p but))
+            (hypb:error "(hbut-operate): Button is invalid; it has no 
attributes"))
+           (t (or but (setq but 'hbut:current))
+              (hui:but-flash) (funcall operation but))))
+
+(defun hui:hbut-rename ()
+  "Interactively rename a Hyperbole button from the current buffer.
+The default is the button at point."
+  (cond ((ebut:at-p)
+         (call-interactively #'hui:ebut-rename))
+        ((ibut:at-p)
+         (call-interactively #'hui:ibut-rename))
+        (t
+         (hui:hbut-operate #'hbut:rename "rename"))))
+
 (defun hui:hbut-report (&optional arg)
   "Pretty prints attributes of current button, using optional prefix ARG.
 See 'hbut:report'."
diff --git a/hvar.el b/hvar.el
index 9fe7e85..dd104b2 100644
--- a/hvar.el
+++ b/hvar.el
@@ -27,15 +27,15 @@
   "Add to HOOK (a symbol ending with -hook) HOOK-FUNCTION and then call 
HOOK-FUNCTION in every buffer with the matching major mode based on HOOK's 
name."
   (add-hook hook hook-function)
   (let* ((hook-name (symbol-name hook))
-        (mode (if (string-match "-hooks?\\'" hook-name)
-                  (intern-soft (substring hook-name 0 (match-beginning 0))))))
-    (if mode (var:run-hook-in-matching-buffers mode hook-function))))
+            (mode (when (string-match "-hooks?\\'" hook-name)
+                        (intern (substring hook-name 0 (match-beginning 0))))))
+    (when mode (var:run-hook-in-matching-buffers mode hook-function))))
 
 (defun var:append-all ()
   "Add back all hook values previously added by var:append in this Emacs 
session.
 The ones that were removed by var:remove-all at some point."
   (mapc (lambda (elt) (var:append (car elt) (cdr elt)))
-       var::append-list)
+           var::append-list)
   var::append-list)
 
 ;;;###autoload
@@ -44,36 +44,36 @@ The ones that were removed by var:remove-all at some point."
 If VAR-SYMBOL is unbound, it is set to LIST-TO-ADD.
 Use to append to hook variables.  Store all values for later removal.
 Do nothing when `inhibit-hyperbole-messaging' is non-nil."
-  (if (not (symbolp var-symbol))
-      (error "(var:append): First argument, `%s', must be a symbol (not a 
string)" var-symbol))
-  (if (or (null list-to-add) (not (listp list-to-add)))
-      (error "(var:append): Second argument, `%s', must be a non-empty list" 
list-to-add))
+  (unless (symbolp var-symbol)
+    (error "(var:append): First argument, `%s', must be a symbol (not a 
string)" var-symbol))
+  (unless (and list-to-add (listp list-to-add))
+    (error "(var:append): Second argument, `%s', must be a non-empty list" 
list-to-add))
   (unless inhibit-hyperbole-messaging
     (let ((val) result)
       (setq result
-           (if (and (boundp var-symbol)
-                    (setq val (symbol-value var-symbol))
-                    (or (if (symbolp val)
-                            (setq val (cons val nil)))
-                        (listp val)))
-               (progn (if (eq (car val) 'lambda)
-                          (setq val (list val)))
-                      (set var-symbol (set:union val list-to-add)))
-             (set var-symbol list-to-add)))
+               (if (and (boundp var-symbol)
+                            (setq val (symbol-value var-symbol))
+                            (or (when (symbolp val)
+                                      (setq val (cons val nil)))
+                                    (listp val)))
+                       (progn (when (eq (car val) 'lambda)
+                                    (setq val (list val)))
+                              (set var-symbol (set:union val list-to-add)))
+                 (set var-symbol list-to-add)))
       (add-to-list 'var::append-list (cons var-symbol result))
       (symbol-value var-symbol))))
 
 (defun var:remove (var-symbol list-to-remove)
   "Remove from VAR-SYMBOL the functions in LIST-TO-REMOVE.
 Use to remove from hook variables."
-  (if (not (symbolp var-symbol))
-      (error "(var:remove): First argument, `%s', must be a symbol (not a 
string)" var-symbol))
-  (if (or (null list-to-remove) (not (listp list-to-remove)))
-      (error "(var:remove): Second argument, `%s', must be a non-empty list" 
list-to-remove))
-  (if (eq (car list-to-remove) 'lambda)
-      (setq list-to-remove (list list-to-remove)))
+  (unless (symbolp var-symbol)
+    (error "(var:remove): First argument, `%s', must be a symbol (not a 
string)" var-symbol))
+  (unless (and list-to-remove (listp list-to-remove))
+    (error "(var:remove): Second argument, `%s', must be a non-empty list" 
list-to-remove))
+  (when (eq (car list-to-remove) 'lambda)
+    (setq list-to-remove (list list-to-remove)))
   (mapc (lambda (func) (remove-hook var-symbol func))
-       list-to-remove)
+           list-to-remove)
   (setq var::append-list (delete (cons var-symbol list-to-remove) 
var::append-list))
   (symbol-value var-symbol))
 
@@ -81,16 +81,16 @@ Use to remove from hook variables."
   "Remove all hook values added by var:append in this Emacs session from their 
associated hook variables.
 Keeps a copy of these values for future re-use."
   (mapc (lambda (elt) (var:remove (car elt) (cdr elt)))
-       var::append-list)
+           var::append-list)
   var::append-list)
 
 (defun var:run-hook-in-matching-buffers (mode hook-function)
   "For a given major MODE (a symbol) call HOOK-FUNCTION in all existing 
buffers with that major mode.
 This is used after a hook is changed to affect buffers that existed before the 
change was made."
   (mapc (lambda (buf) (with-current-buffer buf (funcall hook-function)))
-       (delq nil (mapcar (lambda (buf) (if (eq (buffer-local-value 'major-mode 
buf) mode)
-                                           buf))
-                         (buffer-list)))))
+           (delq nil (mapcar (lambda (buf) (when (eq (buffer-local-value 
'major-mode buf) mode)
+                                                             buf))
+                                     (buffer-list)))))
 
 ;;; ************************************************************************
 ;;; Private variables
diff --git a/hversion.el b/hversion.el
index c699daa..56a364a 100644
--- a/hversion.el
+++ b/hversion.el
@@ -5,7 +5,7 @@
 ;;
 ;; Orig-Date:     1-Jan-94
 ;;
-;; Copyright (C) 1994-2019  Free Software Foundation, Inc.
+;; Copyright (C) 1994-2020  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
@@ -23,7 +23,7 @@
 ;;; Public variables
 ;;; ************************************************************************
 
-(defconst hyperb:version "7.0.7" "GNU Hyperbole revision number.")
+(defconst hyperb:version "7.0.8" "GNU Hyperbole revision number.")
 
 ;;;###autoload
 (defvar hyperb:microsoft-os-p
diff --git a/hyperbole-banner.png b/hyperbole-banner.png
index f0d8abd..d033b1d 100644
Binary files a/hyperbole-banner.png and b/hyperbole-banner.png differ
diff --git a/hyperbole.el b/hyperbole.el
index 1b705e0..b8a2a90 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -5,8 +5,8 @@
 ;; Author:           Bob Weiner
 ;; Maintainer:       Bob Weiner <rsw@gnu.org>, Mats Lidell <matsl@gnu.org>
 ;; Created:          06-Oct-92 at 11:52:51
-;; Released:         27-Aug-19
-;; Version:          7.0.7
+;; Released:         19-Jan-20
+;; Version:          7.0.8
 ;; Keywords:         comm, convenience, files, frames, hypermedia, languages, 
mail, matching, mouse, multimedia, outlines, tools, wp
 ;; Package:          hyperbole
 ;; Package-Requires: ((emacs "24.4"))
diff --git a/kotl/kfill.el b/kotl/kfill.el
index 03ea0c8..ab5f682 100644
--- a/kotl/kfill.el
+++ b/kotl/kfill.el
@@ -66,8 +66,8 @@ that `fill-paragraph' works correctly in various contexts.")
 (defconst kfill:hanging-expression
   (cons 'or
        (delq nil (mapcar (lambda (pattern-type)
-                           (if (eq (cdr pattern-type) 'kfill:hanging-list)
-                               (list 'looking-at (car pattern-type))))
+                           (when (eq (cdr pattern-type) 'kfill:hanging-list)
+                             (list 'looking-at (car pattern-type))))
                          kfill:prefix-table)))
   "Conditional expression used to test for hanging indented lists.")
 
@@ -110,7 +110,7 @@ number of lines that could not be moved, otherwise 0."
   "Fill paragraph at or after point when in kotl-mode.  Prefix ARG means 
justify as well."
   (interactive (progn
                 (barf-if-buffer-read-only)
-                (list (if current-prefix-arg 'full) nil)))
+                (list (when current-prefix-arg 'full) nil)))
   ;; This may be called from `fill-region-as-paragraph' in "filladapt.el"
   ;; which narrows the region to the current paragraph.  A side-effect is
   ;; that the cell identifier and indent information needed by this function
@@ -118,23 +118,23 @@ number of lines that could not be moved, otherwise 0."
   ;; buffer here.  Don't rewiden past the paragraph of interest or any
   ;; following blank line may be removed by the filling routines.
   (save-restriction
-    (if (eq major-mode 'kotl-mode)
-       (narrow-to-region 1 (point-max)))
+    (when (eq major-mode 'kotl-mode)
+      (narrow-to-region 1 (point-max)))
     ;; Emacs expects a specific symbol here.
-    (if (and arg (not (symbolp arg))) (setq arg 'full))
+    (when (and arg (not (symbolp arg))) (setq arg 'full))
     (or skip-prefix-remove (kfill:remove-paragraph-prefix))
     (catch 'done
-      (if (null fill-prefix)
-         (let ((paragraph-ignore-fill-prefix nil)
-               ;; Need this or Emacs ignores fill-prefix when
-               ;; inside a comment.
-               (comment-multi-line t)
-               (fill-paragraph-handle-comment t)
-               (paragraph-start paragraph-start)
-               (paragraph-separate paragraph-separate)
-               fill-prefix)
-           (if (kfill:adapt t)
-               (throw 'done (fill-paragraph arg)))))
+      (unless fill-prefix
+       (let ((paragraph-ignore-fill-prefix nil)
+             ;; Need this or Emacs ignores fill-prefix when
+             ;; inside a comment.
+             (comment-multi-line t)
+             (fill-paragraph-handle-comment t)
+             (paragraph-start paragraph-start)
+             (paragraph-separate paragraph-separate)
+             fill-prefix)
+         (when (kfill:adapt t)
+           (throw 'done (fill-paragraph arg)))))
       ;; Kfill:adapt failed or fill-prefix is set, so do a basic
       ;; paragraph fill as adapted from par-align.el.
       (kfill:fallback-fill-paragraph arg skip-prefix-remove))))
@@ -150,11 +150,10 @@ fill prefix at the beginning of each line."
   (interactive)
   (setq prior-fill-prefix fill-prefix)
   (let ((left-margin-pos (save-excursion (move-to-left-margin) (point))))
-    (if (> (point) left-margin-pos)
-       (setq fill-prefix (if turn-off
-                             nil
-                           (buffer-substring left-margin-pos (point))))
-      (setq fill-prefix nil)))
+    (setq fill-prefix
+          (when (> (point) left-margin-pos)
+            (unless turn-off
+             (buffer-substring left-margin-pos (point))))))
   (when (equal prior-fill-prefix "")
     (setq prior-fill-prefix nil))
   (when (equal fill-prefix "")
@@ -186,8 +185,8 @@ fill prefix at the beginning of each line."
 
 (defun kfill:c++-comment (paragraph)
   (setq fill-prefix (buffer-substring (match-beginning 0) (match-end 0)))
-  (if paragraph
-      (setq paragraph-separate "^[^ \t/]")))
+  (when paragraph
+    (setq paragraph-separate "^[^ \t/]")))
 
 (defun kfill:fallback-fill-paragraph (justify-flag &optional leave-prefix)
   (save-excursion
@@ -224,34 +223,33 @@ fill prefix at the beginning of each line."
 (defun kfill:hanging-list (paragraph)
   (let (prefix match beg end)
     (setq prefix (make-string (- (match-end 0) (match-beginning 0)) ?\ ))
-    (if paragraph
-       (progn
-         (setq match (buffer-substring (match-beginning 0) (match-end 0)))
-         (if (string-match "^ +$" match)
-             (save-excursion
-               (while (and (not (bobp)) (looking-at prefix))
-                 (kfill:forward-line -1))
-
-               (cond ((eval kfill:hanging-expression)
-                      ;; Point is in front of a hanging list.
-                      (setq beg (point)))
-                     (t (setq beg (progn (kfill:forward-line 1) (point))))))
-           (setq beg (point)))
+    (when paragraph
+      (setq match (buffer-substring (match-beginning 0) (match-end 0)))
+      (if (string-match "^ +$" match)
          (save-excursion
-           (kfill:forward-line)
-           (while (and (looking-at prefix)
-                       (not (equal (char-after (match-end 0)) ?\ )))
-             (kfill:forward-line))
-           (setq end (point)))
-         (narrow-to-region beg end)))
+           (while (and (not (bobp)) (looking-at prefix))
+             (kfill:forward-line -1))
+
+           (cond ((eval kfill:hanging-expression)
+                  ;; Point is in front of a hanging list.
+                  (setq beg (point)))
+                 (t (setq beg (progn (kfill:forward-line 1) (point))))))
+       (setq beg (point)))
+      (save-excursion
+       (kfill:forward-line)
+       (while (and (looking-at prefix)
+                   (not (equal (char-after (match-end 0)) ?\ )))
+         (kfill:forward-line))
+       (setq end (point)))
+      (narrow-to-region beg end))
     (setq fill-prefix prefix)))
 
 (defun kfill:lisp-comment (paragraph)
   (setq fill-prefix (buffer-substring (match-beginning 0) (match-end 0)))
-  (if paragraph
-      (setq paragraph-separate
-           (concat "^" fill-prefix " *;\\|^"
-                   (kfill:negate-string fill-prefix)))))
+  (when paragraph
+    (setq paragraph-separate
+         (concat "^" fill-prefix " *;\\|^"
+                 (kfill:negate-string fill-prefix)))))
 
 (defun kfill:negate-string (string)
   (let ((len (length string))
@@ -270,23 +268,23 @@ fill prefix at the beginning of each line."
     (apply 'concat (nreverse string-list))))
 
 (defun kfill:normal (paragraph)
-  (if paragraph
-      (setq paragraph-separate
-           (concat paragraph-separate "\\|^[ \t/#%?!~*+-]"))))
+  (when paragraph
+    (setq paragraph-separate
+         (concat paragraph-separate "\\|^[ \t/#%?!~*+-]"))))
 
 (defun kfill:normal-included-text (paragraph)
   (setq fill-prefix (buffer-substring (match-beginning 0) (match-end 0)))
-  (if paragraph
-      (setq paragraph-separate
-           (concat "^" fill-prefix " *>\\|^"
-                   (kfill:negate-string fill-prefix)))))
+  (when paragraph
+    (setq paragraph-separate
+         (concat "^" fill-prefix " *>\\|^"
+                 (kfill:negate-string fill-prefix)))))
 
 (defun kfill:postscript-comment (paragraph)
   (setq fill-prefix (buffer-substring (match-beginning 0) (match-end 0)))
-  (if paragraph
-      (setq paragraph-separate
-           (concat "^" fill-prefix " *%\\|^"
-                   (kfill:negate-string fill-prefix)))))
+  (when paragraph
+    (setq paragraph-separate
+         (concat "^" fill-prefix " *%\\|^"
+                 (kfill:negate-string fill-prefix)))))
 
 (defun kfill:remove-paragraph-prefix (&optional indent-str)
   "Remove fill prefix from current paragraph."
@@ -313,46 +311,46 @@ fill prefix at the beginning of each line."
 Optional SUFFIX non-nil means replace at ends of lines, default is beginnings.
 Optional arguments START and END specify the replace region, default is the
 current region."
-  (if fill-str-prev
-      (progn (if start
-                (let ((s (min start end)))
-                  (setq end (max start end)
-                        start s))
-              (setq start (region-beginning)
-                    end (region-end)))
-            (if (not fill-str) (setq fill-str ""))
-            (save-excursion
-              (save-restriction
-                (narrow-to-region start end)
-                (goto-char (point-min))
-                (let ((prefix
-                       (concat
-                        (if suffix nil "^")
-                        "[ \t]*"
-                        (regexp-quote
-                         ;; Get non-whitespace separated fill-str-prev
-                         (substring
-                          fill-str-prev
-                          (or (string-match "[^ \t]" fill-str-prev) 0)
-                          (if (string-match
-                               "[ \t]*\\(.*[^ \t]\\)[ \t]*$"
-                               fill-str-prev)
-                              (match-end 1))))
-                        "[ \t]*"
-                        (if suffix "$"))))
-                  (while (re-search-forward prefix nil t)
-                    (replace-match fill-str nil t))))))))
+  (when fill-str-prev
+    (if start
+       (let ((s (min start end)))
+         (setq end (max start end)
+               start s))
+      (setq start (region-beginning)
+           end (region-end)))
+    (unless fill-str (setq fill-str ""))
+    (save-excursion
+      (save-restriction
+       (narrow-to-region start end)
+       (goto-char (point-min))
+       (let ((prefix
+              (concat
+               (unless suffix "^")
+               "[ \t]*"
+               (regexp-quote
+                ;; Get non-whitespace separated fill-str-prev
+                (substring
+                 fill-str-prev
+                 (or (string-match "[^ \t]" fill-str-prev) 0)
+                 (when (string-match
+                        "[ \t]*\\(.*[^ \t]\\)[ \t]*$"
+                        fill-str-prev)
+                   (match-end 1))))
+               "[ \t]*"
+               (when suffix "$"))))
+         (while (re-search-forward prefix nil t)
+           (replace-match fill-str nil t)))))))
 
 (defun kfill:sh-comment (paragraph)
   (setq fill-prefix (buffer-substring (match-beginning 0) (match-end 0)))
-  (if paragraph
+  (when paragraph
       (setq paragraph-separate
            (concat "^" fill-prefix " *#\\|^"
                    (kfill:negate-string fill-prefix)))))
 
 (defun kfill:supercite-included-text (paragraph)
   (setq fill-prefix (buffer-substring (match-beginning 0) (match-end 0)))
-  (if paragraph
+  (when paragraph
       (setq paragraph-separate
            (concat "^" (kfill:negate-string fill-prefix)))))
 
diff --git a/man/hyperbole.html b/man/hyperbole.html
index a317a46..aec4361 100644
--- a/man/hyperbole.html
+++ b/man/hyperbole.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
 <html>
 <!-- This manual is for GNU Hyperbole
-(Edition 7.0.7, Published October 2, 2019).
+(Edition 7.0.8, Published January 19, 2020).
 
 Copyright (C) 1989-2019  Free Software Foundation, Inc.
 
@@ -20,7 +20,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 See the GNU General Public License for more details in the file,
 "COPYING", within the Hyperbole package directory. -->
-<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
+<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>GNU Hyperbole Manual</title>
@@ -38,23 +38,14 @@ See the GNU General Public License for more details in the 
file,
 <!--
 a.summary-letter {text-decoration: none}
 blockquote.indentedblock {margin-right: 0em}
-blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
-blockquote.smallquotation {font-size: smaller}
 div.display {margin-left: 3.2em}
 div.example {margin-left: 3.2em}
 div.lisp {margin-left: 3.2em}
-div.smalldisplay {margin-left: 3.2em}
-div.smallexample {margin-left: 3.2em}
-div.smalllisp {margin-left: 3.2em}
 kbd {font-style: oblique}
 pre.display {font-family: inherit}
 pre.format {font-family: inherit}
 pre.menu-comment {font-family: serif}
 pre.menu-preformatted {font-family: serif}
-pre.smalldisplay {font-family: inherit; font-size: smaller}
-pre.smallexample {font-size: smaller}
-pre.smallformat {font-family: inherit; font-size: smaller}
-pre.smalllisp {font-size: smaller}
 span.nolinebreak {white-space: nowrap}
 span.roman {font-family: initial; font-weight: normal}
 span.sansserif {font-family: sans-serif; font-weight: normal}
@@ -83,251 +74,249 @@ ul.no-bullet {list-style: none}
 
 
 
-<a name="SEC_Overview"></a>
+<span id="SEC_Overview"></span>
 <h2 class="shortcontents-heading">Short Table of Contents</h2>
 
 <div class="shortcontents">
 <ul class="no-bullet">
-<li><a name="stoc-GNU-Hyperbole" href="#toc-GNU-Hyperbole">GNU 
Hyperbole</a></li>
-<li><a name="stoc-Introduction-1" href="#toc-Introduction-1">1 
Introduction</a></li>
-<li><a name="stoc-Smart-Keys-1" href="#toc-Smart-Keys-1">2 Smart Keys</a></li>
-<li><a name="stoc-Buttons-1" href="#toc-Buttons-1">3 Buttons</a></li>
-<li><a name="stoc-Menus-1" href="#toc-Menus-1">4 Menus</a></li>
-<li><a name="stoc-HyControl-1" href="#toc-HyControl-1">5 HyControl</a></li>
-<li><a name="stoc-Koutliner-1" href="#toc-Koutliner-1">6 Koutliner</a></li>
-<li><a name="stoc-HyRolo-1" href="#toc-HyRolo-1">7 HyRolo</a></li>
-<li><a name="stoc-Window-Configurations-1" 
href="#toc-Window-Configurations-1">8 Window Configurations</a></li>
-<li><a name="stoc-Developing-with-Hyperbole-1" 
href="#toc-Developing-with-Hyperbole-1">9 Developing with Hyperbole</a></li>
-<li><a name="stoc-Glossary-1" href="#toc-Glossary-1">Appendix A 
Glossary</a></li>
-<li><a name="stoc-Setup-1" href="#toc-Setup-1">Appendix B Setup</a></li>
-<li><a name="stoc-Global-Key-Bindings-1" 
href="#toc-Global-Key-Bindings-1">Appendix C Global Key Bindings</a></li>
-<li><a name="stoc-Koutliner-Keys-1" href="#toc-Koutliner-Keys-1">Appendix D 
Koutliner Keys</a></li>
-<li><a name="stoc-Smart-Key-Reference-1" 
href="#toc-Smart-Key-Reference-1">Appendix E Smart Key Reference</a></li>
-<li><a name="stoc-Suggestion-or-Bug-Reporting-1" 
href="#toc-Suggestion-or-Bug-Reporting-1">Appendix F Suggestion or Bug 
Reporting</a></li>
-<li><a name="stoc-Questions-and-Answers-1" 
href="#toc-Questions-and-Answers-1">Appendix G Questions and Answers</a></li>
-<li><a name="stoc-Future-Work-1" href="#toc-Future-Work-1">Appendix H Future 
Work</a></li>
-<li><a name="stoc-References-1" href="#toc-References-1">Appendix I 
References</a></li>
-<li><a name="stoc-Key-Index-1" href="#toc-Key-Index-1">Key Index</a></li>
-<li><a name="stoc-Function_002c-Variable-and-File-Index" 
href="#toc-Function_002c-Variable-and-File-Index">Function, Variable and File 
Index</a></li>
-<li><a name="stoc-Concept-Index-1" href="#toc-Concept-Index-1">Concept 
Index</a></li>
+<li><a id="stoc-GNU-Hyperbole" href="#toc-GNU-Hyperbole">GNU Hyperbole</a></li>
+<li><a id="stoc-Introduction-1" href="#toc-Introduction-1">1 
Introduction</a></li>
+<li><a id="stoc-Smart-Keys-1" href="#toc-Smart-Keys-1">2 Smart Keys</a></li>
+<li><a id="stoc-Buttons-1" href="#toc-Buttons-1">3 Buttons</a></li>
+<li><a id="stoc-Menus-1" href="#toc-Menus-1">4 Menus</a></li>
+<li><a id="stoc-HyControl-1" href="#toc-HyControl-1">5 HyControl</a></li>
+<li><a id="stoc-Koutliner-1" href="#toc-Koutliner-1">6 Koutliner</a></li>
+<li><a id="stoc-HyRolo-1" href="#toc-HyRolo-1">7 HyRolo</a></li>
+<li><a id="stoc-Window-Configurations-1" href="#toc-Window-Configurations-1">8 
Window Configurations</a></li>
+<li><a id="stoc-Developing-with-Hyperbole-1" 
href="#toc-Developing-with-Hyperbole-1">9 Developing with Hyperbole</a></li>
+<li><a id="stoc-Glossary-1" href="#toc-Glossary-1">Appendix A Glossary</a></li>
+<li><a id="stoc-Setup-1" href="#toc-Setup-1">Appendix B Setup</a></li>
+<li><a id="stoc-Global-Key-Bindings-1" 
href="#toc-Global-Key-Bindings-1">Appendix C Global Key Bindings</a></li>
+<li><a id="stoc-Koutliner-Keys-1" href="#toc-Koutliner-Keys-1">Appendix D 
Koutliner Keys</a></li>
+<li><a id="stoc-Smart-Key-Reference-1" 
href="#toc-Smart-Key-Reference-1">Appendix E Smart Key Reference</a></li>
+<li><a id="stoc-Suggestion-or-Bug-Reporting-1" 
href="#toc-Suggestion-or-Bug-Reporting-1">Appendix F Suggestion or Bug 
Reporting</a></li>
+<li><a id="stoc-Questions-and-Answers-1" 
href="#toc-Questions-and-Answers-1">Appendix G Questions and Answers</a></li>
+<li><a id="stoc-Future-Work-1" href="#toc-Future-Work-1">Appendix H Future 
Work</a></li>
+<li><a id="stoc-References-1" href="#toc-References-1">Appendix I 
References</a></li>
+<li><a id="stoc-Key-Index-1" href="#toc-Key-Index-1" rel="index">Key 
Index</a></li>
+<li><a id="stoc-Function_002c-Variable-and-File-Index" 
href="#toc-Function_002c-Variable-and-File-Index" rel="index">Function, 
Variable and File Index</a></li>
+<li><a id="stoc-Concept-Index-1" href="#toc-Concept-Index-1" 
rel="index">Concept Index</a></li>
 
 </ul>
 </div>
 
-<a name="SEC_Contents"></a>
+<span id="SEC_Contents"></span>
 <h2 class="contents-heading">Table of Contents</h2>
 
 <div class="contents">
 <ul class="no-bullet">
-<li><a name="toc-GNU-Hyperbole" href="#Top">GNU Hyperbole</a></li>
-<li><a name="toc-Introduction-1" href="#Introduction">1 Introduction</a>
+<li><a id="toc-GNU-Hyperbole" href="#Top">GNU Hyperbole</a></li>
+<li><a id="toc-Introduction-1" href="#Introduction">1 Introduction</a>
 <ul class="no-bullet">
-  <li><a name="toc-Manual-Overview-1" href="#Manual-Overview">1.1 Manual 
Overview</a></li>
-  <li><a name="toc-Motivation-1" href="#Motivation">1.2 Motivation</a></li>
-  <li><a name="toc-Hyperbole-Overview-1" href="#Hyperbole-Overview">1.3 
Hyperbole Overview</a></li>
-  <li><a name="toc-Mail-Lists-1" href="#Mail-Lists">1.4 Mail Lists</a></li>
+  <li><a id="toc-Manual-Overview-1" href="#Manual-Overview">1.1 Manual 
Overview</a></li>
+  <li><a id="toc-Motivation-1" href="#Motivation">1.2 Motivation</a></li>
+  <li><a id="toc-Hyperbole-Overview-1" href="#Hyperbole-Overview">1.3 
Hyperbole Overview</a></li>
+  <li><a id="toc-Mail-Lists-1" href="#Mail-Lists">1.4 Mail Lists</a></li>
 </ul></li>
-<li><a name="toc-Smart-Keys-1" href="#Smart-Keys">2 Smart Keys</a>
+<li><a id="toc-Smart-Keys-1" href="#Smart-Keys">2 Smart Keys</a>
 <ul class="no-bullet">
-  <li><a name="toc-Smart-Key-Bindings-1" href="#Smart-Key-Bindings">2.1 Smart 
Key Bindings</a></li>
-  <li><a name="toc-Smart-Key-Operations-1" href="#Smart-Key-Operations">2.2 
Smart Key Operations</a></li>
-  <li><a name="toc-Smart-Key-Argument-Selection-1" 
href="#Smart-Key-Argument-Selection">2.3 Smart Key Argument Selection</a></li>
-  <li><a name="toc-Smart-Key-Debugging-1" href="#Smart-Key-Debugging">2.4 
Smart Key Debugging</a></li>
-  <li><a name="toc-Smart-Key-Thing-Selection-1" 
href="#Smart-Key-Thing-Selection">2.5 Smart Key Thing Selection</a></li>
-  <li><a name="toc-Smart-Mouse-Key-Modeline-Clicks-1" 
href="#Smart-Mouse-Key-Modeline-Clicks">2.6 Smart Mouse Key Modeline 
Clicks</a></li>
-  <li><a name="toc-Smart-Mouse-Key-Drags-1" href="#Smart-Mouse-Key-Drags">2.7 
Smart Mouse Key Drags</a>
+  <li><a id="toc-Smart-Key-Bindings-1" href="#Smart-Key-Bindings">2.1 Smart 
Key Bindings</a></li>
+  <li><a id="toc-Smart-Key-Operations-1" href="#Smart-Key-Operations">2.2 
Smart Key Operations</a></li>
+  <li><a id="toc-Smart-Key-Argument-Selection-1" 
href="#Smart-Key-Argument-Selection">2.3 Smart Key Argument Selection</a></li>
+  <li><a id="toc-Smart-Key-Debugging-1" href="#Smart-Key-Debugging">2.4 Smart 
Key Debugging</a></li>
+  <li><a id="toc-Smart-Key-Thing-Selection-1" 
href="#Smart-Key-Thing-Selection">2.5 Smart Key Thing Selection</a></li>
+  <li><a id="toc-Smart-Mouse-Key-Modeline-Clicks-1" 
href="#Smart-Mouse-Key-Modeline-Clicks">2.6 Smart Mouse Key Modeline 
Clicks</a></li>
+  <li><a id="toc-Smart-Mouse-Key-Drags-1" href="#Smart-Mouse-Key-Drags">2.7 
Smart Mouse Key Drags</a>
   <ul class="no-bullet">
-    <li><a name="toc-Creating-and-Deleting-Windows-1" 
href="#Creating-and-Deleting-Windows">2.7.1 Creating and Deleting 
Windows</a></li>
-    <li><a name="toc-Saving-and-Restoring-Window-Configurations-1" 
href="#Saving-and-Restoring-Window-Configurations">2.7.2 Saving and Restoring 
Window Configurations</a></li>
-    <li><a name="toc-Resizing-Windows-1" href="#Resizing-Windows">2.7.3 
Resizing Windows</a></li>
-    <li><a name="toc-Dragging-Buffers_002c-Windows-and-Items" 
href="#Dragging-Buffers">2.7.4 Dragging Buffers, Windows and Items</a>
+    <li><a id="toc-Creating-and-Deleting-Windows-1" 
href="#Creating-and-Deleting-Windows">2.7.1 Creating and Deleting 
Windows</a></li>
+    <li><a id="toc-Saving-and-Restoring-Window-Configurations-1" 
href="#Saving-and-Restoring-Window-Configurations">2.7.2 Saving and Restoring 
Window Configurations</a></li>
+    <li><a id="toc-Resizing-Windows-1" href="#Resizing-Windows">2.7.3 Resizing 
Windows</a></li>
+    <li><a id="toc-Dragging-Buffers_002c-Windows-and-Items" 
href="#Dragging-Buffers">2.7.4 Dragging Buffers, Windows and Items</a>
     <ul class="no-bullet">
-      <li><a name="toc-Swapping-Buffers-1" href="#Swapping-Buffers">2.7.4.1 
Swapping Buffers</a></li>
-      <li><a name="toc-Displaying-Buffers-1" 
href="#Displaying-Buffers">2.7.4.2 Displaying Buffers</a></li>
-      <li><a name="toc-Cloning-Windows-1" href="#Cloning-Windows">2.7.4.3 
Cloning Windows</a></li>
-      <li><a name="toc-Displaying-File-and-Buffer-Items-1" 
href="#Displaying-File-and-Buffer-Items">2.7.4.4 Displaying File and Buffer 
Items</a></li>
-      <li><a name="toc-Keyboard-Drags-1" href="#Keyboard-Drags">2.7.4.5 
Keyboard Drags</a></li>
+      <li><a id="toc-Swapping-Buffers-1" href="#Swapping-Buffers">2.7.4.1 
Swapping Buffers</a></li>
+      <li><a id="toc-Displaying-Buffers-1" href="#Displaying-Buffers">2.7.4.2 
Displaying Buffers</a></li>
+      <li><a id="toc-Cloning-Windows-1" href="#Cloning-Windows">2.7.4.3 
Cloning Windows</a></li>
+      <li><a id="toc-Displaying-File-and-Buffer-Items-1" 
href="#Displaying-File-and-Buffer-Items">2.7.4.4 Displaying File and Buffer 
Items</a></li>
+      <li><a id="toc-Keyboard-Drags-1" href="#Keyboard-Drags">2.7.4.5 Keyboard 
Drags</a></li>
     </ul></li>
   </ul></li>
 </ul></li>
-<li><a name="toc-Buttons-1" href="#Buttons">3 Buttons</a>
+<li><a id="toc-Buttons-1" href="#Buttons">3 Buttons</a>
 <ul class="no-bullet">
-  <li><a name="toc-Explicit-Buttons-1" href="#Explicit-Buttons">3.1 Explicit 
Buttons</a></li>
-  <li><a name="toc-Global-Buttons-1" href="#Global-Buttons">3.2 Global 
Buttons</a></li>
-  <li><a name="toc-Implicit-Buttons-1" href="#Implicit-Buttons">3.3 Implicit 
Buttons</a>
+  <li><a id="toc-Explicit-Buttons-1" href="#Explicit-Buttons">3.1 Explicit 
Buttons</a></li>
+  <li><a id="toc-Global-Buttons-1" href="#Global-Buttons">3.2 Global 
Buttons</a></li>
+  <li><a id="toc-Implicit-Buttons-1" href="#Implicit-Buttons">3.3 Implicit 
Buttons</a>
   <ul class="no-bullet">
-    <li><a name="toc-Implicit-Button-Types-1" 
href="#Implicit-Button-Types">3.3.1 Implicit Button Types</a></li>
-    <li><a name="toc-Action-Buttons-1" href="#Action-Buttons">3.3.2 Action 
Buttons</a></li>
+    <li><a id="toc-Implicit-Button-Types-1" 
href="#Implicit-Button-Types">3.3.1 Implicit Button Types</a></li>
+    <li><a id="toc-Action-Buttons-1" href="#Action-Buttons">3.3.2 Action 
Buttons</a></li>
   </ul></li>
-  <li><a name="toc-Button-Files-1" href="#Button-Files">3.4 Button 
Files</a></li>
-  <li><a name="toc-Action-Types-1" href="#Action-Types">3.5 Action 
Types</a></li>
-  <li><a name="toc-Button-Type-Precedence-1" 
href="#Button-Type-Precedence">3.6 Button Type Precedence</a></li>
-  <li><a name="toc-Utilizing-Explicit-Buttons-1" 
href="#Utilizing-Explicit-Buttons">3.7 Utilizing Explicit Buttons</a>
+  <li><a id="toc-Button-Files-1" href="#Button-Files">3.4 Button Files</a></li>
+  <li><a id="toc-Action-Types-1" href="#Action-Types">3.5 Action Types</a></li>
+  <li><a id="toc-Button-Type-Precedence-1" href="#Button-Type-Precedence">3.6 
Button Type Precedence</a></li>
+  <li><a id="toc-Utilizing-Explicit-Buttons-1" 
href="#Utilizing-Explicit-Buttons">3.7 Utilizing Explicit Buttons</a>
   <ul class="no-bullet">
-    <li><a name="toc-Creation-1" href="#Creation">3.7.1 Creation</a>
+    <li><a id="toc-Creation-1" href="#Creation">3.7.1 Creation</a>
     <ul class="no-bullet">
-      <li><a name="toc-Creation-Via-Action-Key-Drags" 
href="#By-Dragging">3.7.1.1 Creation Via Action Key Drags</a></li>
-      <li><a name="toc-Creation-Via-Menus" href="#By-Menu">3.7.1.2 Creation 
Via Menus</a></li>
+      <li><a id="toc-Creation-Via-Action-Key-Drags" 
href="#By-Dragging">3.7.1.1 Creation Via Action Key Drags</a></li>
+      <li><a id="toc-Creation-Via-Menus" href="#By-Menu">3.7.1.2 Creation Via 
Menus</a></li>
     </ul></li>
-    <li><a name="toc-Renaming-1" href="#Renaming">3.7.2 Renaming</a></li>
-    <li><a name="toc-Deletion-1" href="#Deletion">3.7.3 Deletion</a></li>
-    <li><a name="toc-Modification-1" href="#Modification">3.7.4 
Modification</a></li>
-    <li><a name="toc-Searching-and-Summarizing-1" 
href="#Searching-and-Summarizing">3.7.5 Searching and Summarizing</a></li>
-    <li><a name="toc-Buttons-in-Mail-1" href="#Buttons-in-Mail">3.7.6 Buttons 
in Mail</a></li>
-    <li><a name="toc-Buttons-in-News-1" href="#Buttons-in-News">3.7.7 Buttons 
in News</a></li>
+    <li><a id="toc-Renaming-1" href="#Renaming">3.7.2 Renaming</a></li>
+    <li><a id="toc-Deletion-1" href="#Deletion">3.7.3 Deletion</a></li>
+    <li><a id="toc-Modification-1" href="#Modification">3.7.4 
Modification</a></li>
+    <li><a id="toc-Searching-and-Summarizing-1" 
href="#Searching-and-Summarizing">3.7.5 Searching and Summarizing</a></li>
+    <li><a id="toc-Buttons-in-Mail-1" href="#Buttons-in-Mail">3.7.6 Buttons in 
Mail</a></li>
+    <li><a id="toc-Buttons-in-News-1" href="#Buttons-in-News">3.7.7 Buttons in 
News</a></li>
   </ul></li>
 </ul></li>
-<li><a name="toc-Menus-1" href="#Menus">4 Menus</a></li>
-<li><a name="toc-HyControl-1" href="#HyControl">5 HyControl</a></li>
-<li><a name="toc-Koutliner-1" href="#Koutliner">6 Koutliner</a>
+<li><a id="toc-Menus-1" href="#Menus">4 Menus</a></li>
+<li><a id="toc-HyControl-1" href="#HyControl">5 HyControl</a></li>
+<li><a id="toc-Koutliner-1" href="#Koutliner">6 Koutliner</a>
 <ul class="no-bullet">
-  <li><a name="toc-Menu-Commands-1" href="#Menu-Commands">6.1 Menu 
Commands</a></li>
-  <li><a name="toc-Creating-Outlines-1" href="#Creating-Outlines">6.2 Creating 
Outlines</a></li>
-  <li><a name="toc-Autonumbering-1" href="#Autonumbering">6.3 
Autonumbering</a></li>
-  <li><a name="toc-Idstamps-1" href="#Idstamps">6.4 Idstamps</a></li>
-  <li><a name="toc-Editing-1" href="#Editing">6.5 Editing</a>
+  <li><a id="toc-Menu-Commands-1" href="#Menu-Commands">6.1 Menu 
Commands</a></li>
+  <li><a id="toc-Creating-Outlines-1" href="#Creating-Outlines">6.2 Creating 
Outlines</a></li>
+  <li><a id="toc-Autonumbering-1" href="#Autonumbering">6.3 
Autonumbering</a></li>
+  <li><a id="toc-Idstamps-1" href="#Idstamps">6.4 Idstamps</a></li>
+  <li><a id="toc-Editing-1" href="#Editing">6.5 Editing</a>
   <ul class="no-bullet">
-    <li><a name="toc-Adding-and-Killing-1" href="#Adding-and-Killing">6.5.1 
Adding and Killing</a></li>
-    <li><a name="toc-Relocating-and-Copying-1" 
href="#Relocating-and-Copying">6.5.2 Relocating and Copying</a></li>
-    <li><a name="toc-Moving-Around-1" href="#Moving-Around">6.5.3 Moving 
Around</a></li>
-    <li><a name="toc-Filling-1" href="#Filling">6.5.4 Filling</a></li>
-    <li><a name="toc-Transposing-1" href="#Transposing">6.5.5 
Transposing</a></li>
-    <li><a name="toc-Splitting-and-Appending-1" 
href="#Splitting-and-Appending">6.5.6 Splitting and Appending</a></li>
-    <li><a name="toc-Inserting-and-Importing-1" 
href="#Inserting-and-Importing">6.5.7 Inserting and Importing</a></li>
-    <li><a name="toc-Exporting-1" href="#Exporting">6.5.8 Exporting</a></li>
+    <li><a id="toc-Adding-and-Killing-1" href="#Adding-and-Killing">6.5.1 
Adding and Killing</a></li>
+    <li><a id="toc-Relocating-and-Copying-1" 
href="#Relocating-and-Copying">6.5.2 Relocating and Copying</a></li>
+    <li><a id="toc-Moving-Around-1" href="#Moving-Around">6.5.3 Moving 
Around</a></li>
+    <li><a id="toc-Filling-1" href="#Filling">6.5.4 Filling</a></li>
+    <li><a id="toc-Transposing-1" href="#Transposing">6.5.5 
Transposing</a></li>
+    <li><a id="toc-Splitting-and-Appending-1" 
href="#Splitting-and-Appending">6.5.6 Splitting and Appending</a></li>
+    <li><a id="toc-Inserting-and-Importing-1" 
href="#Inserting-and-Importing">6.5.7 Inserting and Importing</a></li>
+    <li><a id="toc-Exporting-1" href="#Exporting">6.5.8 Exporting</a></li>
   </ul></li>
-  <li><a name="toc-Viewing-1" href="#Viewing">6.6 Viewing</a>
+  <li><a id="toc-Viewing-1" href="#Viewing">6.6 Viewing</a>
   <ul class="no-bullet">
-    <li><a name="toc-Hiding-and-Showing-1" href="#Hiding-and-Showing">6.6.1 
Hiding and Showing</a></li>
-    <li><a name="toc-View-Specs-1" href="#View-Specs">6.6.2 View Specs</a></li>
+    <li><a id="toc-Hiding-and-Showing-1" href="#Hiding-and-Showing">6.6.1 
Hiding and Showing</a></li>
+    <li><a id="toc-View-Specs-1" href="#View-Specs">6.6.2 View Specs</a></li>
   </ul></li>
-  <li><a name="toc-Links-1" href="#Links">6.7 Links</a></li>
-  <li><a name="toc-Cell-Attributes-1" href="#Cell-Attributes">6.8 Cell 
Attributes</a></li>
-  <li><a name="toc-Koutliner-History-1" href="#Koutliner-History">6.9 
Koutliner History</a></li>
+  <li><a id="toc-Links-1" href="#Links">6.7 Links</a></li>
+  <li><a id="toc-Cell-Attributes-1" href="#Cell-Attributes">6.8 Cell 
Attributes</a></li>
+  <li><a id="toc-Koutliner-History-1" href="#Koutliner-History">6.9 Koutliner 
History</a></li>
 </ul></li>
-<li><a name="toc-HyRolo-1" href="#HyRolo">7 HyRolo</a>
+<li><a id="toc-HyRolo-1" href="#HyRolo">7 HyRolo</a>
 <ul class="no-bullet">
-  <li><a name="toc-HyRolo-Concepts-1" href="#HyRolo-Concepts">7.1 HyRolo 
Concepts</a></li>
-  <li><a name="toc-Rolo-Menu" href="#HyRolo-Menu">7.2 Rolo Menu</a></li>
-  <li><a name="toc-HyRolo-Searching-1" href="#HyRolo-Searching">7.3 HyRolo 
Searching</a></li>
-  <li><a name="toc-HyRolo-Keys-1" href="#HyRolo-Keys">7.4 HyRolo Keys</a></li>
-  <li><a name="toc-HyRolo-Settings-1" href="#HyRolo-Settings">7.5 HyRolo 
Settings</a></li>
+  <li><a id="toc-HyRolo-Concepts-1" href="#HyRolo-Concepts">7.1 HyRolo 
Concepts</a></li>
+  <li><a id="toc-Rolo-Menu" href="#HyRolo-Menu">7.2 Rolo Menu</a></li>
+  <li><a id="toc-HyRolo-Searching-1" href="#HyRolo-Searching">7.3 HyRolo 
Searching</a></li>
+  <li><a id="toc-HyRolo-Keys-1" href="#HyRolo-Keys">7.4 HyRolo Keys</a></li>
+  <li><a id="toc-HyRolo-Settings-1" href="#HyRolo-Settings">7.5 HyRolo 
Settings</a></li>
 </ul></li>
-<li><a name="toc-Window-Configurations-1" href="#Window-Configurations">8 
Window Configurations</a></li>
-<li><a name="toc-Developing-with-Hyperbole-1" 
href="#Developing-with-Hyperbole">9 Developing with Hyperbole</a>
+<li><a id="toc-Window-Configurations-1" href="#Window-Configurations">8 Window 
Configurations</a></li>
+<li><a id="toc-Developing-with-Hyperbole-1" 
href="#Developing-with-Hyperbole">9 Developing with Hyperbole</a>
 <ul class="no-bullet">
-  <li><a name="toc-Hook-Variables-1" href="#Hook-Variables">9.1 Hook 
Variables</a></li>
-  <li><a name="toc-Creating-Types-1" href="#Creating-Types">9.2 Creating 
Types</a>
+  <li><a id="toc-Hook-Variables-1" href="#Hook-Variables">9.1 Hook 
Variables</a></li>
+  <li><a id="toc-Creating-Types-1" href="#Creating-Types">9.2 Creating 
Types</a>
   <ul class="no-bullet">
-    <li><a name="toc-Action-Type-Creation-1" 
href="#Action-Type-Creation">9.2.1 Action Type Creation</a></li>
-    <li><a name="toc-Implicit-Button-Type-Creation-1" 
href="#Implicit-Button-Type-Creation">9.2.2 Implicit Button Type 
Creation</a></li>
+    <li><a id="toc-Action-Type-Creation-1" href="#Action-Type-Creation">9.2.1 
Action Type Creation</a></li>
+    <li><a id="toc-Implicit-Button-Type-Creation-1" 
href="#Implicit-Button-Type-Creation">9.2.2 Implicit Button Type 
Creation</a></li>
   </ul></li>
-  <li><a name="toc-Explicit-Button-Technicalities-1" 
href="#Explicit-Button-Technicalities">9.3 Explicit Button Technicalities</a>
+  <li><a id="toc-Explicit-Button-Technicalities-1" 
href="#Explicit-Button-Technicalities">9.3 Explicit Button Technicalities</a>
   <ul class="no-bullet">
-    <li><a name="toc-Button-Label-Normalization-1" 
href="#Button-Label-Normalization">9.3.1 Button Label Normalization</a></li>
-    <li><a name="toc-Operational-and-Storage-Formats-1" 
href="#Operational-and-Storage-Formats">9.3.2 Operational and Storage 
Formats</a></li>
-    <li><a name="toc-Programmatic-Button-Creation-1" 
href="#Programmatic-Button-Creation">9.3.3 Programmatic Button Creation</a></li>
+    <li><a id="toc-Button-Label-Normalization-1" 
href="#Button-Label-Normalization">9.3.1 Button Label Normalization</a></li>
+    <li><a id="toc-Operational-and-Storage-Formats-1" 
href="#Operational-and-Storage-Formats">9.3.2 Operational and Storage 
Formats</a></li>
+    <li><a id="toc-Programmatic-Button-Creation-1" 
href="#Programmatic-Button-Creation">9.3.3 Programmatic Button Creation</a></li>
   </ul></li>
-  <li><a name="toc-Encapsulating-Systems-1" href="#Encapsulating-Systems">9.4 
Encapsulating Systems</a></li>
-  <li><a name="toc-Embedding-Hyperbole-1" href="#Embedding-Hyperbole">9.5 
Embedding Hyperbole</a></li>
+  <li><a id="toc-Encapsulating-Systems-1" href="#Encapsulating-Systems">9.4 
Encapsulating Systems</a></li>
+  <li><a id="toc-Embedding-Hyperbole-1" href="#Embedding-Hyperbole">9.5 
Embedding Hyperbole</a></li>
 </ul></li>
-<li><a name="toc-Glossary-1" href="#Glossary">Appendix A Glossary</a></li>
-<li><a name="toc-Setup-1" href="#Setup">Appendix B Setup</a>
+<li><a id="toc-Glossary-1" href="#Glossary">Appendix A Glossary</a></li>
+<li><a id="toc-Setup-1" href="#Setup">Appendix B Setup</a>
 <ul class="no-bullet">
-  <li><a name="toc-Installation-1" href="#Installation">B.1 
Installation</a></li>
-  <li><a name="toc-Invocation-1" href="#Invocation">B.2 Invocation</a></li>
-  <li><a name="toc-Customization-1" href="#Customization">B.3 Customization</a>
+  <li><a id="toc-Installation-1" href="#Installation">B.1 Installation</a></li>
+  <li><a id="toc-Invocation-1" href="#Invocation">B.2 Invocation</a></li>
+  <li><a id="toc-Customization-1" href="#Customization">B.3 Customization</a>
   <ul class="no-bullet">
-    <li><a name="toc-Referent-Display-1" href="#Referent-Display">B.3.1 
Referent Display</a></li>
-    <li><a name="toc-Internal-Viewers-1" href="#Internal-Viewers">B.3.2 
Internal Viewers</a></li>
-    <li><a name="toc-External-Viewers-1" href="#External-Viewers">B.3.3 
External Viewers</a></li>
-    <li><a name="toc-Link-Variable-Substitution-1" 
href="#Link-Variable-Substitution">B.3.4 Link Variable Substitution</a></li>
-    <li><a name="toc-Web-Search-Engines-1" href="#Web-Search-Engines">B.3.5 
Web Search Engines</a></li>
-    <li><a name="toc-Using-URLs-with-Find_002dFile-1" 
href="#Using-URLs-with-Find_002dFile">B.3.6 Using URLs with Find-File</a></li>
-    <li><a name="toc-Invisible-Text-Searches-1" 
href="#Invisible-Text-Searches">B.3.7 Invisible Text Searches</a></li>
-    <li><a name="toc-Configuring-Button-Colors" href="#Button-Colors">B.3.8 
Configuring Button Colors</a></li>
+    <li><a id="toc-Referent-Display-1" href="#Referent-Display">B.3.1 Referent 
Display</a></li>
+    <li><a id="toc-Internal-Viewers-1" href="#Internal-Viewers">B.3.2 Internal 
Viewers</a></li>
+    <li><a id="toc-External-Viewers-1" href="#External-Viewers">B.3.3 External 
Viewers</a></li>
+    <li><a id="toc-Link-Variable-Substitution-1" 
href="#Link-Variable-Substitution">B.3.4 Link Variable Substitution</a></li>
+    <li><a id="toc-Web-Search-Engines-1" href="#Web-Search-Engines">B.3.5 Web 
Search Engines</a></li>
+    <li><a id="toc-Using-URLs-with-Find_002dFile-1" 
href="#Using-URLs-with-Find_002dFile">B.3.6 Using URLs with Find-File</a></li>
+    <li><a id="toc-Invisible-Text-Searches-1" 
href="#Invisible-Text-Searches">B.3.7 Invisible Text Searches</a></li>
+    <li><a id="toc-Configuring-Button-Colors" href="#Button-Colors">B.3.8 
Configuring Button Colors</a></li>
   </ul></li>
 </ul></li>
-<li><a name="toc-Global-Key-Bindings-1" href="#Global-Key-Bindings">Appendix C 
Global Key Bindings</a></li>
-<li><a name="toc-Koutliner-Keys-1" href="#Koutliner-Keys">Appendix D Koutliner 
Keys</a></li>
-<li><a name="toc-Smart-Key-Reference-1" href="#Smart-Key-Reference">Appendix E 
Smart Key Reference</a>
+<li><a id="toc-Global-Key-Bindings-1" href="#Global-Key-Bindings">Appendix C 
Global Key Bindings</a></li>
+<li><a id="toc-Koutliner-Keys-1" href="#Koutliner-Keys">Appendix D Koutliner 
Keys</a></li>
+<li><a id="toc-Smart-Key-Reference-1" href="#Smart-Key-Reference">Appendix E 
Smart Key Reference</a>
 <ul class="no-bullet">
-  <li><a name="toc-Smart-Mouse-Keys-1" href="#Smart-Mouse-Keys">E.1 Smart 
Mouse Keys</a>
+  <li><a id="toc-Smart-Mouse-Keys-1" href="#Smart-Mouse-Keys">E.1 Smart Mouse 
Keys</a>
   <ul class="no-bullet">
-    <li><a name="toc-Minibuffer-Menu-Activation-1" 
href="#Minibuffer-Menu-Activation">E.1.1 Minibuffer Menu Activation</a></li>
-    <li><a name="toc-Thing-Selection-1" href="#Thing-Selection">E.1.2 Thing 
Selection</a></li>
-    <li><a name="toc-Side_002dby_002dSide-Window-Resizing-1" 
href="#Side_002dby_002dSide-Window-Resizing">E.1.3 Side-by-Side Window 
Resizing</a></li>
-    <li><a name="toc-Modeline-Clicks-and-Drags-1" 
href="#Modeline-Clicks-and-Drags">E.1.4 Modeline Clicks and Drags</a></li>
-    <li><a name="toc-Smart-Mouse-Drags-between-Windows-1" 
href="#Smart-Mouse-Drags-between-Windows">E.1.5 Smart Mouse Drags between 
Windows</a></li>
-    <li><a name="toc-Smart-Mouse-Drags-within-a-Window-1" 
href="#Smart-Mouse-Drags-within-a-Window">E.1.6 Smart Mouse Drags within a 
Window</a></li>
-    <li><a name="toc-Smart-Mouse-Drags-outside-a-Window-1" 
href="#Smart-Mouse-Drags-outside-a-Window">E.1.7 Smart Mouse Drags outside a 
Window</a></li>
+    <li><a id="toc-Minibuffer-Menu-Activation-1" 
href="#Minibuffer-Menu-Activation">E.1.1 Minibuffer Menu Activation</a></li>
+    <li><a id="toc-Thing-Selection-1" href="#Thing-Selection">E.1.2 Thing 
Selection</a></li>
+    <li><a id="toc-Side_002dby_002dSide-Window-Resizing-1" 
href="#Side_002dby_002dSide-Window-Resizing">E.1.3 Side-by-Side Window 
Resizing</a></li>
+    <li><a id="toc-Modeline-Clicks-and-Drags-1" 
href="#Modeline-Clicks-and-Drags">E.1.4 Modeline Clicks and Drags</a></li>
+    <li><a id="toc-Smart-Mouse-Drags-between-Windows-1" 
href="#Smart-Mouse-Drags-between-Windows">E.1.5 Smart Mouse Drags between 
Windows</a></li>
+    <li><a id="toc-Smart-Mouse-Drags-within-a-Window-1" 
href="#Smart-Mouse-Drags-within-a-Window">E.1.6 Smart Mouse Drags within a 
Window</a></li>
+    <li><a id="toc-Smart-Mouse-Drags-outside-a-Window-1" 
href="#Smart-Mouse-Drags-outside-a-Window">E.1.7 Smart Mouse Drags outside a 
Window</a></li>
   </ul></li>
-  <li><a name="toc-Smart-Keyboard-Keys-1" href="#Smart-Keyboard-Keys">E.2 
Smart Keyboard Keys</a>
+  <li><a id="toc-Smart-Keyboard-Keys-1" href="#Smart-Keyboard-Keys">E.2 Smart 
Keyboard Keys</a>
   <ul class="no-bullet">
-    <li><a name="toc-Smart-Key-_002d-Company-Mode-1" 
href="#Smart-Key-_002d-Company-Mode">E.2.1 Smart Key - Company Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Treemacs-1" 
href="#Smart-Key-_002d-Treemacs">E.2.2 Smart Key - Treemacs</a></li>
-    <li><a name="toc-Smart-Key-_002d-Emacs-Pushbuttons-1" 
href="#Smart-Key-_002d-Emacs-Pushbuttons">E.2.3 Smart Key - Emacs 
Pushbuttons</a></li>
-    <li><a name="toc-Smart-Key-_002d-Argument-Completion-1" 
href="#Smart-Key-_002d-Argument-Completion">E.2.4 Smart Key - Argument 
Completion</a></li>
-    <li><a name="toc-Smart-Key-_002d-ID-Edit-Mode-1" 
href="#Smart-Key-_002d-ID-Edit-Mode">E.2.5 Smart Key - ID Edit Mode</a></li>
-    <li><a 
name="toc-Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029-1" 
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029">E.2.6 Smart 
Key - Emacs Cross-references (Xrefs)</a></li>
-    <li><a name="toc-Smart-Key-_002d-Smart-Scrolling-1" 
href="#Smart-Key-_002d-Smart-Scrolling">E.2.7 Smart Key - Smart 
Scrolling</a></li>
-    <li><a name="toc-Smart-Key-_002d-Smart-Menus-1" 
href="#Smart-Key-_002d-Smart-Menus">E.2.8 Smart Key - Smart Menus</a></li>
-    <li><a name="toc-Smart-Key-_002d-Dired-Mode-1" 
href="#Smart-Key-_002d-Dired-Mode">E.2.9 Smart Key - Dired Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Hyperbole-Buttons-1" 
href="#Smart-Key-_002d-Hyperbole-Buttons">E.2.10 Smart Key - Hyperbole 
Buttons</a></li>
-    <li><a name="toc-Smart-Key-_002d-View-Mode-1" 
href="#Smart-Key-_002d-View-Mode">E.2.11 Smart Key - View Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Delimited-Things-1" 
href="#Smart-Key-_002d-Delimited-Things">E.2.12 Smart Key - Delimited 
Things</a></li>
-    <li><a name="toc-Smart-Key-_002d-The-Koutliner-1" 
href="#Smart-Key-_002d-The-Koutliner">E.2.13 Smart Key - The Koutliner</a></li>
-    <li><a name="toc-Smart-Key-_002d-RDB-Mode-1" 
href="#Smart-Key-_002d-RDB-Mode">E.2.14 Smart Key - RDB Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Help-Buffers-1" 
href="#Smart-Key-_002d-Help-Buffers">E.2.15 Smart Key - Help Buffers</a></li>
-    <li><a name="toc-Smart-Key-_002d-Pages-Directory-Mode-1" 
href="#Smart-Key-_002d-Pages-Directory-Mode">E.2.16 Smart Key - Pages Directory 
Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Python-Source-Code-1" 
href="#Smart-Key-_002d-Python-Source-Code">E.2.17 Smart Key - Python Source 
Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Identifier-Menu-Mode-1" 
href="#Smart-Key-_002d-Identifier-Menu-Mode">E.2.18 Smart Key - Identifier Menu 
Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-C-Source-Code-1" 
href="#Smart-Key-_002d-C-Source-Code">E.2.19 Smart Key - C Source Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-C_002b_002b-Source-Code-1" 
href="#Smart-Key-_002d-C_002b_002b-Source-Code">E.2.20 Smart Key - C++ Source 
Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Assembly-Source-Code-1" 
href="#Smart-Key-_002d-Assembly-Source-Code">E.2.21 Smart Key - Assembly Source 
Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Lisp-Source-Code-1" 
href="#Smart-Key-_002d-Lisp-Source-Code">E.2.22 Smart Key - Lisp Source 
Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Java-Source-Code-1" 
href="#Smart-Key-_002d-Java-Source-Code">E.2.23 Smart Key - Java Source 
Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-JavaScript-Source-Code-1" 
href="#Smart-Key-_002d-JavaScript-Source-Code">E.2.24 Smart Key - JavaScript 
Source Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Objective_002dC-Source-Code-1" 
href="#Smart-Key-_002d-Objective_002dC-Source-Code">E.2.25 Smart Key - 
Objective-C Source Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Fortran-Source-Code-1" 
href="#Smart-Key-_002d-Fortran-Source-Code">E.2.26 Smart Key - Fortran Source 
Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Occurrence-Matches-1" 
href="#Smart-Key-_002d-Occurrence-Matches">E.2.27 Smart Key - Occurrence 
Matches</a></li>
-    <li><a name="toc-Smart-Key-_002d-Calendar-Mode-1" 
href="#Smart-Key-_002d-Calendar-Mode">E.2.28 Smart Key - Calendar Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Man-Page-Apropos-1" 
href="#Smart-Key-_002d-Man-Page-Apropos">E.2.29 Smart Key - Man Page 
Apropos</a></li>
-    <li><a name="toc-Smart-Key-_002d-Emacs-Outline-Mode-1" 
href="#Smart-Key-_002d-Emacs-Outline-Mode">E.2.30 Smart Key - Emacs Outline 
Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Info-Manuals-1" 
href="#Smart-Key-_002d-Info-Manuals">E.2.31 Smart Key - Info Manuals</a></li>
-    <li><a name="toc-Smart-Key-_002d-Email-Composers-1" 
href="#Smart-Key-_002d-Email-Composers">E.2.32 Smart Key - Email 
Composers</a></li>
-    <li><a name="toc-Smart-Key-_002d-GNUS-Newsreader-1" 
href="#Smart-Key-_002d-GNUS-Newsreader">E.2.33 Smart Key - GNUS 
Newsreader</a></li>
-    <li><a name="toc-Smart-Key-_002d-Buffer-Menus-1" 
href="#Smart-Key-_002d-Buffer-Menus">E.2.34 Smart Key - Buffer Menus</a></li>
-    <li><a name="toc-Smart-Key-_002d-Tar-File-Mode-1" 
href="#Smart-Key-_002d-Tar-File-Mode">E.2.35 Smart Key - Tar File Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Man-Pages-1" 
href="#Smart-Key-_002d-Man-Pages">E.2.36 Smart Key - Man Pages</a></li>
-    <li><a name="toc-Smart-Key-_002d-WWW-URLs-1" 
href="#Smart-Key-_002d-WWW-URLs">E.2.37 Smart Key - WWW URLs</a></li>
-    <li><a name="toc-Smart-Key-_002d-HyRolo-Match-Buffers-1" 
href="#Smart-Key-_002d-HyRolo-Match-Buffers">E.2.38 Smart Key - HyRolo Match 
Buffers</a></li>
-    <li><a name="toc-Smart-Key-_002d-Image-Thumbnails-1" 
href="#Smart-Key-_002d-Image-Thumbnails">E.2.39 Smart Key - Image 
Thumbnails</a></li>
-    <li><a name="toc-Smart-Key-_002d-Gomoku-Game-1" 
href="#Smart-Key-_002d-Gomoku-Game">E.2.40 Smart Key - Gomoku Game</a></li>
-    <li><a name="toc-Smart-Key-_002d-The-OO_002dBrowser-1" 
href="#Smart-Key-_002d-The-OO_002dBrowser">E.2.41 Smart Key - The 
OO-Browser</a></li>
-    <li><a name="toc-Smart-Key-_002d-Default-Context-1" 
href="#Smart-Key-_002d-Default-Context">E.2.42 Smart Key - Default 
Context</a></li>
+    <li><a id="toc-Smart-Key-_002d-Company-Mode-1" 
href="#Smart-Key-_002d-Company-Mode">E.2.1 Smart Key - Company Mode</a></li>
+    <li><a id="toc-Smart-Key-_002d-Treemacs-1" 
href="#Smart-Key-_002d-Treemacs">E.2.2 Smart Key - Treemacs</a></li>
+    <li><a id="toc-Smart-Key-_002d-Emacs-Pushbuttons-1" 
href="#Smart-Key-_002d-Emacs-Pushbuttons">E.2.3 Smart Key - Emacs 
Pushbuttons</a></li>
+    <li><a id="toc-Smart-Key-_002d-Argument-Completion-1" 
href="#Smart-Key-_002d-Argument-Completion">E.2.4 Smart Key - Argument 
Completion</a></li>
+    <li><a id="toc-Smart-Key-_002d-ID-Edit-Mode-1" 
href="#Smart-Key-_002d-ID-Edit-Mode">E.2.5 Smart Key - ID Edit Mode</a></li>
+    <li><a 
id="toc-Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029-1" 
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029">E.2.6 Smart 
Key - Emacs Cross-references (Xrefs)</a></li>
+    <li><a id="toc-Smart-Key-_002d-Smart-Scrolling-1" 
href="#Smart-Key-_002d-Smart-Scrolling">E.2.7 Smart Key - Smart 
Scrolling</a></li>
+    <li><a id="toc-Smart-Key-_002d-Smart-Menus-1" 
href="#Smart-Key-_002d-Smart-Menus">E.2.8 Smart Key - Smart Menus</a></li>
+    <li><a id="toc-Smart-Key-_002d-Dired-Mode-1" 
href="#Smart-Key-_002d-Dired-Mode">E.2.9 Smart Key - Dired Mode</a></li>
+    <li><a id="toc-Smart-Key-_002d-Hyperbole-Buttons-1" 
href="#Smart-Key-_002d-Hyperbole-Buttons">E.2.10 Smart Key - Hyperbole 
Buttons</a></li>
+    <li><a id="toc-Smart-Key-_002d-View-Mode-1" 
href="#Smart-Key-_002d-View-Mode">E.2.11 Smart Key - View Mode</a></li>
+    <li><a id="toc-Smart-Key-_002d-Delimited-Things-1" 
href="#Smart-Key-_002d-Delimited-Things">E.2.12 Smart Key - Delimited 
Things</a></li>
+    <li><a id="toc-Smart-Key-_002d-The-Koutliner-1" 
href="#Smart-Key-_002d-The-Koutliner">E.2.13 Smart Key - The Koutliner</a></li>
+    <li><a id="toc-Smart-Key-_002d-RDB-Mode-1" 
href="#Smart-Key-_002d-RDB-Mode">E.2.14 Smart Key - RDB Mode</a></li>
+    <li><a id="toc-Smart-Key-_002d-Help-Buffers-1" 
href="#Smart-Key-_002d-Help-Buffers">E.2.15 Smart Key - Help Buffers</a></li>
+    <li><a id="toc-Smart-Key-_002d-Pages-Directory-Mode-1" 
href="#Smart-Key-_002d-Pages-Directory-Mode">E.2.16 Smart Key - Pages Directory 
Mode</a></li>
+    <li><a id="toc-Smart-Key-_002d-Python-Source-Code-1" 
href="#Smart-Key-_002d-Python-Source-Code">E.2.17 Smart Key - Python Source 
Code</a></li>
+    <li><a id="toc-Smart-Key-_002d-Identifier-Menu-Mode-1" 
href="#Smart-Key-_002d-Identifier-Menu-Mode">E.2.18 Smart Key - Identifier Menu 
Mode</a></li>
+    <li><a id="toc-Smart-Key-_002d-C-Source-Code-1" 
href="#Smart-Key-_002d-C-Source-Code">E.2.19 Smart Key - C Source Code</a></li>
+    <li><a id="toc-Smart-Key-_002d-C_002b_002b-Source-Code-1" 
href="#Smart-Key-_002d-C_002b_002b-Source-Code">E.2.20 Smart Key - C++ Source 
Code</a></li>
+    <li><a id="toc-Smart-Key-_002d-Assembly-Source-Code-1" 
href="#Smart-Key-_002d-Assembly-Source-Code">E.2.21 Smart Key - Assembly Source 
Code</a></li>
+    <li><a id="toc-Smart-Key-_002d-Lisp-Source-Code-1" 
href="#Smart-Key-_002d-Lisp-Source-Code">E.2.22 Smart Key - Lisp Source 
Code</a></li>
+    <li><a id="toc-Smart-Key-_002d-Java-Source-Code-1" 
href="#Smart-Key-_002d-Java-Source-Code">E.2.23 Smart Key - Java Source 
Code</a></li>
+    <li><a id="toc-Smart-Key-_002d-JavaScript-Source-Code-1" 
href="#Smart-Key-_002d-JavaScript-Source-Code">E.2.24 Smart Key - JavaScript 
Source Code</a></li>
+    <li><a id="toc-Smart-Key-_002d-Objective_002dC-Source-Code-1" 
href="#Smart-Key-_002d-Objective_002dC-Source-Code">E.2.25 Smart Key - 
Objective-C Source Code</a></li>
+    <li><a id="toc-Smart-Key-_002d-Fortran-Source-Code-1" 
href="#Smart-Key-_002d-Fortran-Source-Code">E.2.26 Smart Key - Fortran Source 
Code</a></li>
+    <li><a id="toc-Smart-Key-_002d-Occurrence-Matches-1" 
href="#Smart-Key-_002d-Occurrence-Matches">E.2.27 Smart Key - Occurrence 
Matches</a></li>
+    <li><a id="toc-Smart-Key-_002d-Calendar-Mode-1" 
href="#Smart-Key-_002d-Calendar-Mode">E.2.28 Smart Key - Calendar Mode</a></li>
+    <li><a id="toc-Smart-Key-_002d-Man-Page-Apropos-1" 
href="#Smart-Key-_002d-Man-Page-Apropos">E.2.29 Smart Key - Man Page 
Apropos</a></li>
+    <li><a id="toc-Smart-Key-_002d-Emacs-Outline-Mode-1" 
href="#Smart-Key-_002d-Emacs-Outline-Mode">E.2.30 Smart Key - Emacs Outline 
Mode</a></li>
+    <li><a id="toc-Smart-Key-_002d-Info-Manuals-1" 
href="#Smart-Key-_002d-Info-Manuals">E.2.31 Smart Key - Info Manuals</a></li>
+    <li><a id="toc-Smart-Key-_002d-Email-Composers-1" 
href="#Smart-Key-_002d-Email-Composers">E.2.32 Smart Key - Email 
Composers</a></li>
+    <li><a id="toc-Smart-Key-_002d-GNUS-Newsreader-1" 
href="#Smart-Key-_002d-GNUS-Newsreader">E.2.33 Smart Key - GNUS 
Newsreader</a></li>
+    <li><a id="toc-Smart-Key-_002d-Buffer-Menus-1" 
href="#Smart-Key-_002d-Buffer-Menus">E.2.34 Smart Key - Buffer Menus</a></li>
+    <li><a id="toc-Smart-Key-_002d-Tar-File-Mode-1" 
href="#Smart-Key-_002d-Tar-File-Mode">E.2.35 Smart Key - Tar File Mode</a></li>
+    <li><a id="toc-Smart-Key-_002d-Man-Pages-1" 
href="#Smart-Key-_002d-Man-Pages">E.2.36 Smart Key - Man Pages</a></li>
+    <li><a id="toc-Smart-Key-_002d-WWW-URLs-1" 
href="#Smart-Key-_002d-WWW-URLs">E.2.37 Smart Key - WWW URLs</a></li>
+    <li><a id="toc-Smart-Key-_002d-HyRolo-Match-Buffers-1" 
href="#Smart-Key-_002d-HyRolo-Match-Buffers">E.2.38 Smart Key - HyRolo Match 
Buffers</a></li>
+    <li><a id="toc-Smart-Key-_002d-Image-Thumbnails-1" 
href="#Smart-Key-_002d-Image-Thumbnails">E.2.39 Smart Key - Image 
Thumbnails</a></li>
+    <li><a id="toc-Smart-Key-_002d-Gomoku-Game-1" 
href="#Smart-Key-_002d-Gomoku-Game">E.2.40 Smart Key - Gomoku Game</a></li>
+    <li><a id="toc-Smart-Key-_002d-The-OO_002dBrowser-1" 
href="#Smart-Key-_002d-The-OO_002dBrowser">E.2.41 Smart Key - The 
OO-Browser</a></li>
+    <li><a id="toc-Smart-Key-_002d-Default-Context-1" 
href="#Smart-Key-_002d-Default-Context">E.2.42 Smart Key - Default 
Context</a></li>
   </ul></li>
 </ul></li>
-<li><a name="toc-Suggestion-or-Bug-Reporting-1" 
href="#Suggestion-or-Bug-Reporting">Appendix F Suggestion or Bug 
Reporting</a></li>
-<li><a name="toc-Questions-and-Answers-1" 
href="#Questions-and-Answers">Appendix G Questions and Answers</a></li>
-<li><a name="toc-Future-Work-1" href="#Future-Work">Appendix H Future 
Work</a></li>
-<li><a name="toc-References-1" href="#References">Appendix I 
References</a></li>
-<li><a name="toc-Key-Index-1" href="#Key-Index">Key Index</a></li>
-<li><a name="toc-Function_002c-Variable-and-File-Index" 
href="#Function">Function, Variable and File Index</a></li>
-<li><a name="toc-Concept-Index-1" href="#Concept-Index">Concept Index</a></li>
+<li><a id="toc-Suggestion-or-Bug-Reporting-1" 
href="#Suggestion-or-Bug-Reporting">Appendix F Suggestion or Bug 
Reporting</a></li>
+<li><a id="toc-Questions-and-Answers-1" href="#Questions-and-Answers">Appendix 
G Questions and Answers</a></li>
+<li><a id="toc-Future-Work-1" href="#Future-Work">Appendix H Future 
Work</a></li>
+<li><a id="toc-References-1" href="#References">Appendix I References</a></li>
+<li><a id="toc-Key-Index-1" href="#Key-Index" rel="index">Key Index</a></li>
+<li><a id="toc-Function_002c-Variable-and-File-Index" href="#Function" 
rel="index">Function, Variable and File Index</a></li>
+<li><a id="toc-Concept-Index-1" href="#Concept-Index" rel="index">Concept 
Index</a></li>
 
 </ul>
 </div>
 
 
 
-<a name="Top"></a>
-<div class="header">
+<span id="Top"></span><div class="header">
 <p>
 Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, 
Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a 
href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="GNU-Hyperbole"></a>
-<h2 class="unnumbered">GNU Hyperbole</h2>
+<span id="GNU-Hyperbole"></span><h2 class="unnumbered">GNU Hyperbole</h2>
 
 <CENTER><H1>GNU Hyperbole</H1></CENTER>
 
@@ -348,8 +337,8 @@ WITHOUT ANY WARRANTY, without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
 
 <PRE>
-Edition 7.0.7
-Printed October 2, 2019.
+Edition 7.0.8
+Printed January 19, 2020.
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -366,9 +355,9 @@ Printed October 2, 2019.
 </div><br>
 
 
-<a name="index-credits"></a>
-<a name="index-Hyperbole_002c-obtaining"></a>
-<a name="index-anonymous-ftp"></a>
+<span id="index-credits"></span>
+<span id="index-Hyperbole_002c-obtaining"></span>
+<span id="index-anonymous-ftp"></span>
 <p>GNU Hyperbole was designed and written by Bob Weiner.
 See <a href="#Setup">Setup</a>, for information on how to obtain and to install
 Hyperbole.
@@ -400,47 +389,47 @@ a long-time Hyperbole user, who has helped maintain it 
throughout the
 years.  The Koutliner is dedicated to my lovely wife, Kathy.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Introduction" 
accesskey="1">Introduction</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Introduction" 
accesskey="1">Introduction</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Keys" 
accesskey="2">Smart Keys</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Keys" 
accesskey="2">Smart Keys</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Buttons" 
accesskey="3">Buttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Buttons" 
accesskey="3">Buttons</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Menus" 
accesskey="4">Menus</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Menus" 
accesskey="4">Menus</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#HyControl" 
accesskey="5">HyControl</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#HyControl" 
accesskey="5">HyControl</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Koutliner" 
accesskey="6">Koutliner</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Koutliner" 
accesskey="6">Koutliner</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#HyRolo" 
accesskey="7">HyRolo</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#HyRolo" 
accesskey="7">HyRolo</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Window-Configurations" 
accesskey="8">Window Configurations</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Window-Configurations" 
accesskey="8">Window Configurations</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Developing-with-Hyperbole" 
accesskey="9">Developing with Hyperbole</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Developing-with-Hyperbole" 
accesskey="9">Developing with Hyperbole</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Glossary">Glossary</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Glossary">Glossary</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Setup">Setup</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Setup">Setup</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Global-Key-Bindings">Global 
Key Bindings</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Global-Key-Bindings">Global 
Key Bindings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Koutliner-Keys">Koutliner 
Keys</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Koutliner-Keys">Koutliner 
Keys</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Reference">Smart 
Key Reference</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Reference">Smart 
Key Reference</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Suggestion-or-Bug-Reporting">Suggestion or Bug 
Reporting</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Suggestion-or-Bug-Reporting">Suggestion or Bug 
Reporting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Questions-and-Answers">Questions and 
Answers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Questions-and-Answers">Questions and 
Answers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Future-Work">Future 
Work</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Future-Work">Future 
Work</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#References">References</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#References">References</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Key-Index">Key 
Index</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Key-Index" rel="index">Key 
Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Function">Function</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Function" 
rel="index">Function</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Concept-Index">Concept 
Index</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Concept-Index" 
rel="index">Concept Index</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
@@ -448,365 +437,363 @@ years.  The Koutliner is dedicated to my lovely wife, 
Kathy.
 
 Introduction
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Manual-Overview">Manual Overview</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Manual-Overview">Manual Overview</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Motivation">Motivation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Motivation">Motivation</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Hyperbole-Overview">Hyperbole Overview</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Hyperbole-Overview">Hyperbole Overview</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Mail-Lists">Mail 
Lists</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Mail-Lists">Mail 
Lists</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Smart Keys
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-Bindings">Smart Key Bindings</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-Bindings">Smart Key Bindings</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Operations">Smart 
Key Operations</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Operations">Smart 
Key Operations</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-Argument-Selection">Smart Key Argument 
Selection</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-Argument-Selection">Smart Key Argument 
Selection</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Debugging">Smart 
Key Debugging</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Debugging">Smart 
Key Debugging</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-Thing-Selection">Smart Key Thing 
Selection</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-Thing-Selection">Smart Key Thing 
Selection</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline 
Clicks</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline 
Clicks</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Key-Drags">Smart Mouse Key 
Drags</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Key-Drags">Smart Mouse Key 
Drags</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Smart Mouse Key Drags
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Creating-and-Deleting-Windows">Creating and Deleting 
Windows</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Creating-and-Deleting-Windows">Creating and Deleting 
Windows</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Saving-and-Restoring-Window-Configurations">Saving and Restoring Window 
Configurations</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Saving-and-Restoring-Window-Configurations">Saving and Restoring Window 
Configurations</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Resizing-Windows">Resizing 
Windows</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Resizing-Windows">Resizing 
Windows</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Dragging-Buffers">Dragging 
Buffers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Dragging-Buffers">Dragging 
Buffers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Dragging Buffers, Windows and Items
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Swapping-Buffers">Swapping Buffers</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Swapping-Buffers">Swapping Buffers</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Displaying-Buffers">Displaying Buffers</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Displaying-Buffers">Displaying Buffers</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Cloning-Windows">Cloning 
Windows</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Cloning-Windows">Cloning 
Windows</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer 
Items</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer 
Items</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Keyboard-Drags">Keyboard 
Drags</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Keyboard-Drags">Keyboard 
Drags</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Buttons
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Explicit-Buttons">Explicit Buttons</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Explicit-Buttons">Explicit Buttons</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Global-Buttons">Global 
Buttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Global-Buttons">Global 
Buttons</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Implicit-Buttons">Implicit 
Buttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Implicit-Buttons">Implicit 
Buttons</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Button-Files">Button 
Files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Button-Files">Button 
Files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Action-Types">Action 
Types</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Action-Types">Action 
Types</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Button-Type-Precedence">Button Type 
Precedence</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Button-Type-Precedence">Button Type 
Precedence</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Utilizing-Explicit-Buttons">Utilizing Explicit 
Buttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Utilizing-Explicit-Buttons">Utilizing Explicit 
Buttons</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Implicit Buttons
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Implicit-Button-Types">Implicit Button 
Types</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Implicit-Button-Types">Implicit Button 
Types</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Action-Buttons">Action 
Buttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Action-Buttons">Action 
Buttons</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Utilizing Explicit Buttons
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Creation">Creation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Creation">Creation</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Renaming">Renaming</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Renaming">Renaming</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Deletion">Deletion</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Deletion">Deletion</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Modification">Modification</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Modification">Modification</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Searching-and-Summarizing">Searching and 
Summarizing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Searching-and-Summarizing">Searching and 
Summarizing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Buttons-in-Mail">Buttons in 
Mail</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Buttons-in-Mail">Buttons in 
Mail</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Buttons-in-News">Buttons in 
News</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Buttons-in-News">Buttons in 
News</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Creation
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#By-Dragging">By Dragging</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Creation Via Action Key Drags
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#By-Dragging">By Dragging</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Creation Via Action Key Drags
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#By-Menu">By 
Menu</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Creation Via 
Menus
+<tr><td align="left" valign="top">&bull; <a href="#By-Menu">By 
Menu</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Creation Via 
Menus
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Koutliner
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Menu-Commands">Menu Commands</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Menu-Commands">Menu Commands</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Creating-Outlines">Creating 
Outlines</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Creating-Outlines">Creating 
Outlines</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Autonumbering">Autonumbering</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Autonumbering">Autonumbering</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Idstamps">Idstamps</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Idstamps">Idstamps</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Editing">Editing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Editing">Editing</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Viewing">Viewing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Viewing">Viewing</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Links">Links</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Links">Links</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Cell-Attributes">Cell 
Attributes</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Cell-Attributes">Cell 
Attributes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Koutliner-History">Koutliner History</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Koutliner-History">Koutliner History</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Editing
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Adding-and-Killing">Adding and Killing</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Adding-and-Killing">Adding and Killing</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Relocating-and-Copying">Relocating and 
Copying</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Relocating-and-Copying">Relocating and 
Copying</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Moving-Around">Moving 
Around</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Moving-Around">Moving 
Around</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Filling">Filling</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Filling">Filling</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Transposing">Transposing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Transposing">Transposing</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Splitting-and-Appending">Splitting and 
Appending</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Splitting-and-Appending">Splitting and 
Appending</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Inserting-and-Importing">Inserting and 
Importing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Inserting-and-Importing">Inserting and 
Importing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Exporting">Exporting</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Exporting">Exporting</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Viewing
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Hiding-and-Showing">Hiding and Showing</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Hiding-and-Showing">Hiding and Showing</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#View-Specs">View 
Specs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#View-Specs">View 
Specs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 HyRolo
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#HyRolo-Concepts">HyRolo Concepts</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#HyRolo-Concepts">HyRolo Concepts</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Menu">HyRolo 
Menu</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Menu">HyRolo 
Menu</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Searching">HyRolo 
Searching</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Searching">HyRolo 
Searching</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Keys">HyRolo 
Keys</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Keys">HyRolo 
Keys</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Settings">HyRolo 
Settings</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Settings">HyRolo 
Settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Developing with Hyperbole
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Hook-Variables">Hook Variables</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Hook-Variables">Hook Variables</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Creating-Types">Creating 
Types</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Creating-Types">Creating 
Types</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Explicit-Button-Technicalities">Explicit Button 
Technicalities</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Explicit-Button-Technicalities">Explicit Button 
Technicalities</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Encapsulating-Systems">Encapsulating 
Systems</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Encapsulating-Systems">Encapsulating 
Systems</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Embedding-Hyperbole">Embedding 
Hyperbole</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Embedding-Hyperbole">Embedding 
Hyperbole</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Creating Types
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Action-Type-Creation">Action Type 
Creation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Action-Type-Creation">Action Type 
Creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Implicit-Button-Type-Creation">Implicit Button Type 
Creation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Implicit-Button-Type-Creation">Implicit Button Type 
Creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Explicit Button Technicalities
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Button-Label-Normalization">Button Label 
Normalization</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Button-Label-Normalization">Button Label 
Normalization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Operational-and-Storage-Formats">Operational and Storage 
Formats</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Operational-and-Storage-Formats">Operational and Storage 
Formats</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Programmatic-Button-Creation">Programmatic Button 
Creation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Programmatic-Button-Creation">Programmatic Button 
Creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Setup
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Installation">Installation</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Installation">Installation</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Invocation">Invocation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Invocation">Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Customization">Customization</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Customization">Customization</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Customization
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Referent-Display">Referent Display</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Referent-Display">Referent Display</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Internal-Viewers">Internal 
Viewers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Internal-Viewers">Internal 
Viewers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#External-Viewers">External 
Viewers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#External-Viewers">External 
Viewers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Link-Variable-Substitution">Link Variable 
Substitution</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Link-Variable-Substitution">Link Variable 
Substitution</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Web-Search-Engines">Web 
Search Engines</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Web-Search-Engines">Web 
Search Engines</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Using-URLs-with-Find_002dFile">Using URLs with 
Find-File</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Using-URLs-with-Find_002dFile">Using URLs with 
Find-File</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Invisible-Text-Searches">Invisible Text 
Searches</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Invisible-Text-Searches">Invisible Text 
Searches</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Button-Colors">Button 
Colors</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Button-Colors">Button 
Colors</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Smart Key Reference
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Keys">Smart Mouse Keys</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Keys">Smart Mouse Keys</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Keyboard-Keys">Smart 
Keyboard Keys</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Keyboard-Keys">Smart 
Keyboard Keys</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Smart Mouse Keys
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Minibuffer-Menu-Activation">Minibuffer Menu 
Activation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Minibuffer-Menu-Activation">Minibuffer Menu 
Activation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Thing-Selection">Thing 
Selection</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Thing-Selection">Thing 
Selection</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Side_002dby_002dSide-Window-Resizing">Side-by-Side Window 
Resizing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Side_002dby_002dSide-Window-Resizing">Side-by-Side Window 
Resizing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Modeline-Clicks-and-Drags">Modeline Clicks and 
Drags</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Modeline-Clicks-and-Drags">Modeline Clicks and 
Drags</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Drags-between-Windows">Smart Mouse Drags between 
Windows</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Drags-between-Windows">Smart Mouse Drags between 
Windows</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Drags-within-a-Window">Smart Mouse Drags within a 
Window</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Drags-within-a-Window">Smart Mouse Drags within a 
Window</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Drags-outside-a-Window">Smart Mouse Drags outside a 
Window</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Drags-outside-a-Window">Smart Mouse Drags outside a 
Window</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 Smart Keyboard Keys
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Company-Mode">Smart Key - Company 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Company-Mode">Smart Key - Company 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Treemacs">Smart Key - 
Treemacs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Treemacs">Smart Key - 
Treemacs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Pushbuttons">Smart Key - Emacs 
Pushbuttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Pushbuttons">Smart Key - Emacs 
Pushbuttons</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Argument-Completion">Smart Key - Argument 
Completion</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Argument-Completion">Smart Key - Argument 
Completion</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-ID-Edit-Mode">Smart Key - ID Edit 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-ID-Edit-Mode">Smart Key - ID Edit 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029">Smart Key - 
Emacs Cross-references (Xrefs)</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029">Smart Key - 
Emacs Cross-references (Xrefs)</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Smart-Scrolling">Smart Key - Smart 
Scrolling</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Smart-Scrolling">Smart Key - Smart 
Scrolling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Smart-Menus">Smart Key - Smart 
Menus</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Smart-Menus">Smart Key - Smart 
Menus</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Dired-Mode">Smart Key - Dired 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Dired-Mode">Smart Key - Dired 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Hyperbole-Buttons">Smart Key - Hyperbole 
Buttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Hyperbole-Buttons">Smart Key - Hyperbole 
Buttons</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-View-Mode">Smart Key - View 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-View-Mode">Smart Key - View 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited 
Things</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited 
Things</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-The-Koutliner">Smart Key - The 
Koutliner</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-The-Koutliner">Smart Key - The 
Koutliner</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-RDB-Mode">Smart Key - RDB 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-RDB-Mode">Smart Key - RDB 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Help-Buffers">Smart Key - Help 
Buffers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Help-Buffers">Smart Key - Help 
Buffers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Pages-Directory-Mode">Smart Key - Pages Directory 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Pages-Directory-Mode">Smart Key - Pages Directory 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier Menu Mode 
</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier Menu Mode 
</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-C-Source-Code">Smart Key - C Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-C-Source-Code">Smart Key - C Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-C_002b_002b-Source-Code">Smart Key - C++ Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-C_002b_002b-Source-Code">Smart Key - C++ Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Assembly-Source-Code">Smart Key - Assembly Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Assembly-Source-Code">Smart Key - Assembly Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Java-Source-Code">Smart Key - Java Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Java-Source-Code">Smart Key - Java Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-JavaScript-Source-Code">Smart Key - JavaScript Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-JavaScript-Source-Code">Smart Key - JavaScript Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key - Objective-C 
Source Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key - Objective-C 
Source Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Fortran-Source-Code">Smart Key - Fortran Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Fortran-Source-Code">Smart Key - Fortran Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Occurrence-Matches">Smart Key - Occurrence 
Matches</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Occurrence-Matches">Smart Key - Occurrence 
Matches</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Calendar-Mode">Smart Key - Calendar 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Calendar-Mode">Smart Key - Calendar 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Man-Page-Apropos">Smart Key - Man Page 
Apropos</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Man-Page-Apropos">Smart Key - Man Page 
Apropos</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Outline-Mode">Smart Key - Emacs Outline 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Outline-Mode">Smart Key - Emacs Outline 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Info-Manuals">Smart Key - Info 
Manuals</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Info-Manuals">Smart Key - Info 
Manuals</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Email-Composers">Smart Key - Email 
Composers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Email-Composers">Smart Key - Email 
Composers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-GNUS-Newsreader">Smart Key - GNUS 
Newsreader</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-GNUS-Newsreader">Smart Key - GNUS 
Newsreader</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Buffer-Menus">Smart Key - Buffer 
Menus</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Buffer-Menus">Smart Key - Buffer 
Menus</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Tar-File-Mode">Smart Key - Tar File 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Tar-File-Mode">Smart Key - Tar File 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Man-Pages">Smart Key - Man 
Pages</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Man-Pages">Smart Key - Man 
Pages</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-WWW-URLs">Smart Key - WWW 
URLs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-WWW-URLs">Smart Key - WWW 
URLs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-HyRolo-Match-Buffers">Smart Key - HyRolo Match 
Buffers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-HyRolo-Match-Buffers">Smart Key - HyRolo Match 
Buffers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Image-Thumbnails">Smart Key - Image 
Thumbnails</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Image-Thumbnails">Smart Key - Image 
Thumbnails</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Gomoku-Game">Smart Key - Gomoku 
Game</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Gomoku-Game">Smart Key - Gomoku 
Game</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-The-OO_002dBrowser">Smart Key - The 
OO-Browser</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-The-OO_002dBrowser">Smart Key - The 
OO-Browser</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Default-Context">Smart Key - Default 
Context</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Default-Context">Smart Key - Default 
Context</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
 
 </pre></th></tr></table>
 
 <hr>
-<a name="Introduction"></a>
-<div class="header">
+<span id="Introduction"></span><div class="header">
 <p>
 Next: <a href="#Smart-Keys" accesskey="n" rel="next">Smart Keys</a>, Previous: 
<a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Introduction-1"></a>
-<h2 class="chapter">1 Introduction</h2>
+<span id="Introduction-1"></span><h2 class="chapter">1 Introduction</h2>
 
 <p>This edition of the GNU Hyperbole Manual is for use with any version
-7.0.7 or greater of GNU Hyperbole.  Hyperbole runs atop GNU Emacs 24.3
+7.0.8 or greater of GNU Hyperbole.  Hyperbole runs atop GNU Emacs 24.3
 or higher.  It will trigger an error if your Emacs is older.
 </p>
 <p>This chapter summarizes the structure of the rest of the manual,
@@ -817,29 +804,27 @@ explains how to subscribe to its mail lists.
 braces <kbd>{ }</kbd>, function and variable names use this 
<code>typeface</code>.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Manual-Overview" 
accesskey="1">Manual Overview</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Manual-Overview" 
accesskey="1">Manual Overview</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Motivation" 
accesskey="2">Motivation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Motivation" 
accesskey="2">Motivation</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Hyperbole-Overview" 
accesskey="3">Hyperbole Overview</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Hyperbole-Overview" 
accesskey="3">Hyperbole Overview</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Mail-Lists" 
accesskey="4">Mail Lists</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Mail-Lists" 
accesskey="4">Mail Lists</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Manual-Overview"></a>
-<div class="header">
+<span id="Manual-Overview"></span><div class="header">
 <p>
 Next: <a href="#Motivation" accesskey="n" rel="next">Motivation</a>, Previous: 
<a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a 
href="#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Manual-Overview-1"></a>
-<h3 class="section">1.1 Manual Overview</h3>
+<span id="Manual-Overview-1"></span><h3 class="section">1.1 Manual 
Overview</h3>
 
-<a name="index-file_002c-DEMO"></a>
-<a name="index-Hyperbole-demo"></a>
-<a name="index-demo-file"></a>
-<a name="index-tutorial"></a>
+<span id="index-file_002c-DEMO"></span>
+<span id="index-Hyperbole-demo"></span>
+<span id="index-demo-file"></span>
+<span id="index-tutorial"></span>
 <p>This is a reference manual with extensive details about Hyperbole use.  If
 you prefer a simpler, more interactive introduction to Hyperbole,
 the <samp>DEMO</samp> file included in the Hyperbole distribution demonstrates
@@ -906,13 +891,11 @@ comfortable with Lisp.
 <p>See <a href="#Future-Work">Future Work</a>, for future directions in 
Hyperbole&rsquo;s evolution.
 </p>
 <hr>
-<a name="Motivation"></a>
-<div class="header">
+<span id="Motivation"></span><div class="header">
 <p>
 Next: <a href="#Hyperbole-Overview" accesskey="n" rel="next">Hyperbole 
Overview</a>, Previous: <a href="#Manual-Overview" accesskey="p" 
rel="prev">Manual Overview</a>, Up: <a href="#Introduction" accesskey="u" 
rel="up">Introduction</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Motivation-1"></a>
-<h3 class="section">1.2 Motivation</h3>
+<span id="Motivation-1"></span><h3 class="section">1.2 Motivation</h3>
 
 <p>Database vendors apply tremendous resources to help solve corporate
 information management problems.  But the information that people deal
@@ -945,19 +928,17 @@ One system. One language.  One manual.  One solution.  
Learn Hyperbole and
 start moving further, faster.
 </p>
 <hr>
-<a name="Hyperbole-Overview"></a>
-<div class="header">
+<span id="Hyperbole-Overview"></span><div class="header">
 <p>
 Next: <a href="#Mail-Lists" accesskey="n" rel="next">Mail Lists</a>, Previous: 
<a href="#Motivation" accesskey="p" rel="prev">Motivation</a>, Up: <a 
href="#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Hyperbole-Overview-1"></a>
-<h3 class="section">1.3 Hyperbole Overview</h3>
+<span id="Hyperbole-Overview-1"></span><h3 class="section">1.3 Hyperbole 
Overview</h3>
 
-<a name="index-GNU-Hyperbole"></a>
-<a name="index-Hyperbole"></a>
-<a name="index-hypertext"></a>
-<a name="index-Emacs-Lisp"></a>
-<a name="index-Emacs"></a>
+<span id="index-GNU-Hyperbole"></span>
+<span id="index-Hyperbole"></span>
+<span id="index-hypertext"></span>
+<span id="index-Emacs-Lisp"></span>
+<span id="index-Emacs"></span>
 <p>GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is
 an efficient, programmable hypertextual information management
 system.  It is intended for everyday work on any GNU Emacs platform.
@@ -1031,10 +1012,10 @@ for real-world usage and is well structured).
 </p></dd>
 </dl>
 
-<a name="index-C_002dh-h-d-d"></a>
-<a name="index-file_002c-DEMO-1"></a>
-<a name="index-demonstration"></a>
-<a name="index-button-demo"></a>
+<span id="index-C_002dh-h-d-d"></span>
+<span id="index-file_002c-DEMO-1"></span>
+<span id="index-demonstration"></span>
+<span id="index-button-demo"></span>
 <p>Hyperbole may be used simply for browsing through documents
 pre-configured with Hyperbole buttons, in which case, you can safely
 ignore most of the information in this manual.  Jump right into the
@@ -1044,22 +1025,22 @@ Hyperbole, see <a href="#Setup">Setup</a>, for 
Hyperbole installation and config
 information.  The demo offers a much less technical introduction to
 Hyperbole by supplying good examples of use.
 </p>
-<div class="float"><a name="image_003aDemo"></a>
+<div class="float"><span id="image_003aDemo"></span>
 
 <img src="im/demo.png" alt="Hyperbole Minibuffer Menu and Demonstration 
Screenshot">
 <div class="float-caption"><p><strong>Image 1.1: </strong>Hyperbole Minibuffer 
Menu and Demonstration Screenshot</p></div></div><br>
 
-<a name="index-GNU-Emacs"></a>
-<a name="index-C_002dh-t"></a>
+<span id="index-GNU-Emacs"></span>
+<span id="index-C_002dh-t"></span>
 <p>You likely will want to do more than browse with Hyperbole,
 e.g. create your own buttons.  The standard Hyperbole button editing
 user interface is Emacs-based, so a basic familiarity with the Emacs
 editing model is useful.  The material covered in the Emacs
 tutorial, normally bound to <kbd>{C-h t}</kbd>, is more than
-sufficient as background.  See <a 
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Glossary";>Glossary</a>
 in <cite>the GNU Emacs Manual</cite>,
+sufficient as background.  See <a 
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Glossary";>Glossary</a>
 in <cite>the GNU Emacs Manual</cite>,
 if some emacs-related terms are unfamiliar to you.
 </p>
-<a name="index-Hyperbole-features"></a>
+<span id="index-Hyperbole-features"></span>
 <p>A Hyperbole user works with chunks of information that need to be
 organized, interlinked, and processed.  Such chunks can be hyperbuttons,
 address book contacts, items in an outline, or even database query
@@ -1088,7 +1069,7 @@ information organized into trees (hierarchies);
 under a Hyperbole user interface (a number of samples are provided).
 </li></ul>
 
-<a name="index-Hyperbole-applications"></a>
+<span id="index-Hyperbole-applications"></span>
 <p>Typical Hyperbole applications include:
 </p>
 <dl compact="compact">
@@ -1129,13 +1110,11 @@ archive entries.
 </dl>
 
 <hr>
-<a name="Mail-Lists"></a>
-<div class="header">
+<span id="Mail-Lists"></span><div class="header">
 <p>
 Previous: <a href="#Hyperbole-Overview" accesskey="p" rel="prev">Hyperbole 
Overview</a>, Up: <a href="#Introduction" accesskey="u" 
rel="up">Introduction</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Mail-Lists-1"></a>
-<h3 class="section">1.4 Mail Lists</h3>
+<span id="Mail-Lists-1"></span><h3 class="section">1.4 Mail Lists</h3>
 
 <p>If you use Hyperbole, you may join the mailing list
 &lt;hyperbole-users@gnu.org&gt; to discuss Hyperbole with users and 
maintainers.
@@ -1144,22 +1123,20 @@ Hyperbole, &lt;bug-hyperbole@gnu.org&gt;.  For more 
details,
 see <a href="#Suggestion-or-Bug-Reporting">Suggestion or Bug Reporting</a>.
 </p>
 <hr>
-<a name="Smart-Keys"></a>
-<div class="header">
+<span id="Smart-Keys"></span><div class="header">
 <p>
 Next: <a href="#Buttons" accesskey="n" rel="next">Buttons</a>, Previous: <a 
href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a 
href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Keys-1"></a>
-<h2 class="chapter">2 Smart Keys</h2>
-
-<a name="index-Smart-Key"></a>
-<a name="index-mouse-support"></a>
-<a name="index-Action-Key"></a>
-<a name="index-Assist-Key"></a>
-<a name="index-middle-mouse-key"></a>
-<a name="index-hmouse_002dmiddle_002dflag"></a>
-<a name="index-Action-Key-1"></a>
-<a name="index-Assist-Key-1"></a>
+<span id="Smart-Keys-1"></span><h2 class="chapter">2 Smart Keys</h2>
+
+<span id="index-Smart-Key"></span>
+<span id="index-mouse-support"></span>
+<span id="index-Action-Key"></span>
+<span id="index-Assist-Key"></span>
+<span id="index-middle-mouse-key"></span>
+<span id="index-hmouse_002dmiddle_002dflag"></span>
+<span id="index-Action-Key-1"></span>
+<span id="index-Assist-Key-1"></span>
 <p>Hyperbole offers two special <em>Smart Keys</em>, the Action Key and the
 Assist Key, that perform an extensive array of context-sensitive
 operations across emacs usage.  In many popular modes, they allow you
@@ -1170,53 +1147,51 @@ Keys.  See <a href="#Smart-Key-Reference">Smart Key 
Reference</a>, for complete
 behavior in all contexts.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Bindings" 
accesskey="1">Smart Key Bindings</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Bindings" 
accesskey="1">Smart Key Bindings</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Operations" 
accesskey="2">Smart Key Operations</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Operations" 
accesskey="2">Smart Key Operations</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-Argument-Selection" accesskey="3">Smart Key Argument 
Selection</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-Argument-Selection" accesskey="3">Smart Key Argument 
Selection</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Debugging" 
accesskey="4">Smart Key Debugging</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Debugging" 
accesskey="4">Smart Key Debugging</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Thing-Selection" 
accesskey="5">Smart Key Thing Selection</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-Thing-Selection" 
accesskey="5">Smart Key Thing Selection</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Key-Modeline-Clicks" accesskey="6">Smart Mouse Key Modeline 
Clicks</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Key-Modeline-Clicks" accesskey="6">Smart Mouse Key Modeline 
Clicks</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Mouse-Key-Drags" 
accesskey="7">Smart Mouse Key Drags</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Mouse-Key-Drags" 
accesskey="7">Smart Mouse Key Drags</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Smart-Key-Bindings"></a>
-<div class="header">
+<span id="Smart-Key-Bindings"></span><div class="header">
 <p>
 Next: <a href="#Smart-Key-Operations" accesskey="n" rel="next">Smart Key 
Operations</a>, Previous: <a href="#Smart-Keys" accesskey="p" rel="prev">Smart 
Keys</a>, Up: <a href="#Smart-Keys" accesskey="u" rel="up">Smart Keys</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Key-Bindings-1"></a>
-<h3 class="section">2.1 Smart Key Bindings</h3>
+<span id="Smart-Key-Bindings-1"></span><h3 class="section">2.1 Smart Key 
Bindings</h3>
 
-<a name="index-C_002du-M_002dRET"></a>
-<a name="index-M_002dRET"></a>
+<span id="index-C_002du-M_002dRET"></span>
+<span id="index-M_002dRET"></span>
 <p>From the keyboard, <kbd>{M-<span class="key">RET</span>}</kbd> is the 
Action Key and <kbd>{C-u
 M-<span class="key">RET</span>}</kbd> is the Assist Key.  These keys allow 
context-sensitive
 operation from any keyboard.
 </p>
 
-<a name="index-shift_002dmiddle-mouse-key"></a>
-<a name="index-shift_002dleft-mouse-key"></a>
-<a name="index-shift_002dright-mouse-key"></a>
-<a name="index-middle-mouse-key-1"></a>
-<a name="index-hmouse_002dmiddle_002dflag-1"></a>
+<span id="index-shift_002dmiddle-mouse-key"></span>
+<span id="index-shift_002dleft-mouse-key"></span>
+<span id="index-shift_002dright-mouse-key"></span>
+<span id="index-middle-mouse-key-1"></span>
+<span id="index-hmouse_002dmiddle_002dflag-1"></span>
 <p>From the mouse, the <em>Action Key</em> is bound to your shift-middle
 mouse key (or shift-left on a 2-button mouse).  The <em>Assist Key</em>
 is bound to your shift-right mouse key, assuming Hyperbole is run
 under an external window system.
 </p>
-<a name="index-hmouse_002dadd_002dunshifted_002dsmart_002dkeys"></a>
-<a name="index-unshifted-mouse-bindings"></a>
-<a name="index-unshifted-mouse-keys"></a>
-<a name="index-mouse-keys_002c-unshifted"></a>
-<a name="index-smart-keys_002c-unshifted"></a>
+<span id="index-hmouse_002dadd_002dunshifted_002dsmart_002dkeys"></span>
+<span id="index-unshifted-mouse-bindings"></span>
+<span id="index-unshifted-mouse-keys"></span>
+<span id="index-mouse-keys_002c-unshifted"></span>
+<span id="index-smart-keys_002c-unshifted"></span>
 <p>If you set the variable, <code>hmouse-middle-flag</code>, to 
&lsquo;<samp>t</samp>&rsquo; before
 loading Hyperbole, then you may also use the middle mouse key as the Action
 Key).  If you want both the middle mouse key as the Action Key and the
@@ -1224,14 +1199,14 @@ right mouse key as the Assist Key for ease of use, then 
within your
 personal <samp>~/.emacs</samp> file, add: <code>(add-hook 'hyperbole-init-hook
 'hmouse-add-unshifted-smart-keys)</code> and then restart Emacs.
 </p>
-<a name="index-key-binding_002c-smart-keys"></a>
-<a name="index-smart-key-commands"></a>
-<a name="index-smart-key-assignments"></a>
-<a name="index-action_002dkey"></a>
-<a name="index-assist_002dkey"></a>
-<a name="index-action_002dmouse_002dkey"></a>
-<a name="index-assist_002dmouse_002dkey"></a>
-<a name="index-hkey_002deither"></a>
+<span id="index-key-binding_002c-smart-keys"></span>
+<span id="index-smart-key-commands"></span>
+<span id="index-smart-key-assignments"></span>
+<span id="index-action_002dkey"></span>
+<span id="index-assist_002dkey"></span>
+<span id="index-action_002dmouse_002dkey"></span>
+<span id="index-assist_002dmouse_002dkey"></span>
+<span id="index-hkey_002deither"></span>
 <p>If you prefer other key assignments, simply bind the commands
 <code>action-key</code> and <code>assist-key</code> to keyboard keys.
 Hyperbole binds <kbd>{M-<span class="key">RET</span>}</kbd> to the command 
<code>hkey-either</code>.
@@ -1246,13 +1221,13 @@ actions with such key bindings.
 Mac OS X, the X Window System and MS Windows assuming your emacs program
 has been built with support for any of these window systems.
 </p>
-<a name="index-file_002c-_002eemacs"></a>
-<a name="index-hyperbole_002dtoggle_002dbindings"></a>
-<a name="index-change-key-bindings"></a>
-<a name="index-toggle-key-bindings"></a>
-<a name="index-key-bindings_002c-toggle"></a>
-<a name="index-disable-Hyperbole"></a>
-<a name="index-C_002dc-h"></a>
+<span id="index-file_002c-_002eemacs"></span>
+<span id="index-hyperbole_002dtoggle_002dbindings"></span>
+<span id="index-change-key-bindings"></span>
+<span id="index-toggle-key-bindings"></span>
+<span id="index-key-bindings_002c-toggle"></span>
+<span id="index-disable-Hyperbole"></span>
+<span id="index-C_002dc-h"></span>
 <p>If you ever need to temporarily disable the Hyperbole keyboard and mouse
 bindings, use the <code>hyperbole-toggle-bindings</code> command.  It switches
 between the Hyperbole key bindings and those set prior to loading Hyperbole
@@ -1265,27 +1240,25 @@ file.  For example, <code>(add-hook 
'hyperbole-init-hook (lambda ()
 </p>
 
 <hr>
-<a name="Smart-Key-Operations"></a>
-<div class="header">
+<span id="Smart-Key-Operations"></span><div class="header">
 <p>
 Next: <a href="#Smart-Key-Argument-Selection" accesskey="n" rel="next">Smart 
Key Argument Selection</a>, Previous: <a href="#Smart-Key-Bindings" 
accesskey="p" rel="prev">Smart Key Bindings</a>, Up: <a href="#Smart-Keys" 
accesskey="u" rel="up">Smart Keys</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Key-Operations-1"></a>
-<h3 class="section">2.2 Smart Key Operations</h3>
+<span id="Smart-Key-Operations-1"></span><h3 class="section">2.2 Smart Key 
Operations</h3>
 
-<a name="index-button-activation"></a>
-<a name="index-activation"></a>
-<a name="index-button-help"></a>
-<a name="index-help_002c-button"></a>
+<span id="index-button-activation"></span>
+<span id="index-activation"></span>
+<span id="index-button-help"></span>
+<span id="index-help_002c-button"></span>
 <p>The Action Key generally selects entities, creates links and
 activates buttons.  The Assist Key generally provides help,
 such as reporting on a button&rsquo;s attributes, or serves a complementary
 function to whatever the Action Key does within a context.
 </p>
-<a name="index-Smart-Key-operation"></a>
-<a name="index-menu-item_002c-Doc_002fSmartKeys"></a>
-<a name="index-Smart-Key-summary"></a>
-<a name="index-modeline_002c-Smart-Keys"></a>
+<span id="index-Smart-Key-operation"></span>
+<span id="index-menu-item_002c-Doc_002fSmartKeys"></span>
+<span id="index-Smart-Key-summary"></span>
+<span id="index-modeline_002c-Smart-Keys"></span>
 <p>The Hyperbole Doc/SmartKeys menu entry, <kbd>{C-h h d s}</kbd>, displays a
 summary of what the Smart Keys do in all of their different contexts.
 Alternatively, a click of the Assist Mouse Key in the right corner of a
@@ -1435,10 +1408,10 @@ Any other context (defaults)    Invalid context error   
   Invalid context error
 <p>See <a href="#Smart-Key-Reference">Smart Key Reference</a>, for extensive 
reference documentation on the
 Smart Keys.
 </p>
-<a name="index-action_002dkey_002ddefault_002dfunction"></a>
-<a name="index-assist_002dkey_002ddefault_002dfunction"></a>
-<a name="index-Smart-Key_002c-default-context"></a>
-<a name="index-default-Smart-Key-context"></a>
+<span id="index-action_002dkey_002ddefault_002dfunction"></span>
+<span id="index-assist_002dkey_002ddefault_002dfunction"></span>
+<span id="index-Smart-Key_002c-default-context"></span>
+<span id="index-default-Smart-Key-context"></span>
 <p>Note how the last line in the table explains that the default behavior of
 the Smart Keys in an unknown context is to report an error.  You can change
 these behaviors by setting two variables.  See the documentation
@@ -1446,9 +1419,9 @@ for the variables 
<code>action-key-default-function</code> and
 <code>assist-key-default-function</code> for information on how to customize
 the behavior of the Smart Keys within default contexts.
 </p>
-<a name="index-Smart-Key-help"></a>
-<a name="index-help_002c-Smart-Key"></a>
-<a name="index-context_002dsensitive-help"></a>
+<span id="index-Smart-Key-help"></span>
+<span id="index-help_002c-Smart-Key"></span>
+<span id="index-context_002dsensitive-help"></span>
 <p>When you use a mouse and you want to find out what either of the Smart
 Keys does within a context, depress the one you want to check on and
 hold it down, then press the other and release as you please.  A help
@@ -1457,8 +1430,8 @@ context, if any.  A press of either Smart Key at the end 
of that
 help buffer will restore your display to its configuration prior to
 invoking help.
 </p>
-<a name="index-C_002dh-A"></a>
-<a name="index-C_002du-C_002dh-A"></a>
+<span id="index-C_002dh-A"></span>
+<span id="index-C_002du-C_002dh-A"></span>
 <p>On the keyboard, <kbd>{C-h A}</kbd> displays this same context-sensitive
 help for the Action Key while <kbd>{C-u C-h A}</kbd> displays the help for
 the Assist Key.  Note that <kbd>{C-h a}</kbd> performs a function unrelated
@@ -1466,15 +1439,13 @@ to Hyperbole, so you must press the shift key when you 
type
 the <tt class="key">A</tt> character.
 </p>
 <hr>
-<a name="Smart-Key-Argument-Selection"></a>
-<div class="header">
+<span id="Smart-Key-Argument-Selection"></span><div class="header">
 <p>
 Next: <a href="#Smart-Key-Debugging" accesskey="n" rel="next">Smart Key 
Debugging</a>, Previous: <a href="#Smart-Key-Operations" accesskey="p" 
rel="prev">Smart Key Operations</a>, Up: <a href="#Smart-Keys" accesskey="u" 
rel="up">Smart Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Key-Argument-Selection-1"></a>
-<h3 class="section">2.3 Smart Key Argument Selection</h3>
+<span id="Smart-Key-Argument-Selection-1"></span><h3 class="section">2.3 Smart 
Key Argument Selection</h3>
 
-<a name="index-Hyperbole-help"></a>
+<span id="index-Hyperbole-help"></span>
 <p>A prime design criterion of Hyperbole&rsquo;s user interface is that you
 should be able to see what an operation will do before using it.  The
 Assist Key typically shows you what a button or minibuffer menu item
@@ -1483,9 +1454,9 @@ directly selecting an argument value with the Action Key, 
to provide
 feedback as to whether the correct item has been selected.  A second
 press/click is necessary before an argument is accepted and processed.
 </p>
-<a name="index-argument-entry"></a>
-<a name="index-direct-selection"></a>
-<a name="index-double-click"></a>
+<span id="index-argument-entry"></span>
+<span id="index-direct-selection"></span>
+<span id="index-double-click"></span>
 <p>Many Hyperbole commands prompt you for arguments.  The standard
 Hyperbole user interface has an extensive core of argument types that
 it recognizes.  Whenever Hyperbole is prompting you for an argument,
@@ -1503,33 +1474,31 @@ in the documentation for the Emacs Lisp 
<code>interactive</code> function
 are recognized.  Experiment a little and you will quickly get used to
 this direct selection technique.
 </p>
-<a name="index-completion"></a>
+<span id="index-completion"></span>
 <p>Wherever possible, standard Emacs completion is offered, as described in
-<a 
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Completion";>Completion</a>
 in <cite>the GNU Emacs Manual</cite>.  Remember to use <kbd>{?}</kbd>
+<a 
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Completion";>Completion</a>
 in <cite>the GNU Emacs Manual</cite>.  Remember to use <kbd>{?}</kbd>
 to see what your possibilities for an argument are.  Once you have a
 list of possible completions on screen, press the Action Key twice on
 any item to enter it as the argument.
 </p>
 <hr>
-<a name="Smart-Key-Debugging"></a>
-<div class="header">
+<span id="Smart-Key-Debugging"></span><div class="header">
 <p>
 Next: <a href="#Smart-Key-Thing-Selection" accesskey="n" rel="next">Smart Key 
Thing Selection</a>, Previous: <a href="#Smart-Key-Argument-Selection" 
accesskey="p" rel="prev">Smart Key Argument Selection</a>, Up: <a 
href="#Smart-Keys" accesskey="u" rel="up">Smart Keys</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Key-Debugging-1"></a>
-<h3 class="section">2.4 Smart Key Debugging</h3>
+<span id="Smart-Key-Debugging-1"></span><h3 class="section">2.4 Smart Key 
Debugging</h3>
 
 <p>Typically, <kbd>{C-h A}</kbd> and <kbd>{C-u C-h A}</kbd> which show Action 
and
 Assist Key help for the current context, are sufficient for seeing how
 the Smart Keys behave no matter where they are used.
 </p>
-<a name="index-C_002dh-h-c-d"></a>
-<a name="index-Smart-Key-debugging"></a>
-<a name="index-menu-item_002c-Cust_002fDebug_002dToggle"></a>
-<a name="index-debugging-Smart-Keys"></a>
-<a name="index-troubleshooting-Smart-Keys"></a>
-<a name="index-Messages-buffer"></a>
-<a name="index-logging-Smart-Key-behavior"></a>
+<span id="index-C_002dh-h-c-d"></span>
+<span id="index-Smart-Key-debugging"></span>
+<span id="index-menu-item_002c-Cust_002fDebug_002dToggle"></span>
+<span id="index-debugging-Smart-Keys"></span>
+<span id="index-troubleshooting-Smart-Keys"></span>
+<span id="index-Messages-buffer"></span>
+<span id="index-logging-Smart-Key-behavior"></span>
 <p>However, if a Smart Key ever behaves differently than you think it
 should or if you want to test how the Smart Keys respond in a new
 context, then the Smart Key debugging flag may be of use.  You toggle
@@ -1541,8 +1510,8 @@ exactly what is happening whenever you use a Smart Key.  
These
 messages are all prefaced with &ldquo;(HyDebug)&rdquo; and logged to the
 &ldquo;*Messages*&rdquo; buffer for later viewing.
 </p>
-<a name="index-C_002dh-h-m-c"></a>
-<a name="index-C_002dh-h-m-r"></a>
+<span id="index-C_002dh-h-m-c"></span>
+<span id="index-C_002dh-h-m-r"></span>
 <p>If you do find a problem with the Smart Keys and want to report a bug,
 use <kbd>{C-h h m r}</kbd> to compose an email message to the bug-hyperbole
 list.  Hyperbole will automatically include all of the &ldquo;(HyDebug)&rdquo;
@@ -1551,22 +1520,20 @@ when you compose an email to the hyperbole-users 
mailing list
 with <kbd>{C-h h m c}</kbd>, these messages are also included.
 </p>
 <hr>
-<a name="Smart-Key-Thing-Selection"></a>
-<div class="header">
+<span id="Smart-Key-Thing-Selection"></span><div class="header">
 <p>
 Next: <a href="#Smart-Mouse-Key-Modeline-Clicks" accesskey="n" 
rel="next">Smart Mouse Key Modeline Clicks</a>, Previous: <a 
href="#Smart-Key-Debugging" accesskey="p" rel="prev">Smart Key Debugging</a>, 
Up: <a href="#Smart-Keys" accesskey="u" rel="up">Smart Keys</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Key-Thing-Selection-1"></a>
-<h3 class="section">2.5 Smart Key Thing Selection</h3>
-
-<a name="index-sexp-selection"></a>
-<a name="index-code-block-selection"></a>
-<a name="index-selection"></a>
-<a name="index-smart-selection"></a>
-<a name="index-smart-marking"></a>
-<a name="index-region-selection"></a>
-<a name="index-things"></a>
-<a name="index-delimited-things"></a>
+<span id="Smart-Key-Thing-Selection-1"></span><h3 class="section">2.5 Smart 
Key Thing Selection</h3>
+
+<span id="index-sexp-selection"></span>
+<span id="index-code-block-selection"></span>
+<span id="index-selection"></span>
+<span id="index-smart-selection"></span>
+<span id="index-smart-marking"></span>
+<span id="index-region-selection"></span>
+<span id="index-things"></span>
+<span id="index-delimited-things"></span>
 <p>Hyperbole has some radically cool ways to select regions of structured text
 or source code and to copy or move them between buffers with a single mouse
 drag or two key presses.  A great deal of smarts are built-in so that it
@@ -1581,23 +1548,24 @@ matching tag pairs in HTML and SGML modes.  
<em>Delimited things</em> are
 those things that contain a selectable delimiter such as an opening
 parenthesis.
 </p>
-<a name="index-HTML-tag-pair"></a>
-<a name="index-SGML-tag-pair"></a>
+<span id="index-HTML-tag-pair"></span>
+<span id="index-SGML-tag-pair"></span>
+<span id="index-XML-tag-pair"></span>
 <p>The best way to mark a delimited thing is to move your cursor to the
-starting delimiter of the thing and then press the Action Key.  Typically,
-you will see the thing highlight.  You can then operate upon it as you
-would any Emacs region.  In many cases, you can do the same thing upon
-the closing delimiter, but this is not as reliable.  An Action Key
-press on the start of an HTML or SGML tag pair marks the entire region
-span of the pair.  If you use the Assist Key instead, it will mark and
-kill (delete) the thing.
-</p>
-<a name="index-drag_002c-with-region"></a>
-<a name="index-kill-region"></a>
-<a name="index-yank-region"></a>
-<a name="index-cut-region"></a>
-<a name="index-copy-region"></a>
-<a name="index-paste-region"></a>
+starting delimiter of the thing and then press the Action Key.
+Typically, you will see the thing highlight.  You can then operate
+upon it as you would any Emacs region.  In many cases, you can do the
+same thing upon the closing delimiter, but this is not as reliable.
+An Action Key press on the start of an HTML, XML, or SGML tag pair
+marks the entire region span of the pair.  If you use the Assist Key
+instead, it will mark and kill (delete) the thing.
+</p>
+<span id="index-drag_002c-with-region"></span>
+<span id="index-kill-region"></span>
+<span id="index-yank-region"></span>
+<span id="index-cut-region"></span>
+<span id="index-copy-region"></span>
+<span id="index-paste-region"></span>
 <p>Even better are Smart Mouse Key thing drags which let you copy or move
 delimited things in one operation without having to select a region.  To
 copy, simply drag with the Action Key from a thing&rsquo;s opening delimiter
@@ -1610,9 +1578,9 @@ work.
 </p>
 <p>Hyperbole also binds two convenience keys for working with things.
 </p>
-<a name="index-C_002dc-RET"></a>
-<a name="index-hui_002dselect_002dthing"></a>
-<a name="index-hui_002dselect_002dthing_002dwith_002dmouse"></a>
+<span id="index-C_002dc-RET"></span>
+<span id="index-hui_002dselect_002dthing"></span>
+<span id="index-hui_002dselect_002dthing_002dwith_002dmouse"></span>
 <p>The first such key is <kbd>{C-c <span class="key">RET</span>}</kbd> 
<code>hui-select-thing</code> which
 selects bigger and bigger syntactic regions with each successive use.
 Double or triple clicks of the Selection Key (left mouse key) do the same
@@ -1628,23 +1596,22 @@ the same or lesser indentation).  Use <kbd>{C-g}</kbd> 
to unmark the region when
 done.  Use, <code>hui-select-thing-with-mouse</code> if you want to bind this 
to
 a different mouse key to use single clicks instead of double clicks.
 </p>
-<a name="index-C_002dc-_002e"></a>
-<a name="index-hui_002dselect_002dgoto_002dmatching_002dtag"></a>
-<p>The second convenience key is bound only in HTML/web mode.  <kbd>{C-c
-.}</kbd> <code>hui-select-goto-matching-tag</code> jumps between the opening 
and
-closing tag of a pair.  It moves point to the start of the tag paired
-with the closest tag that point is within or which it precedes.  A
-second press moves point to the matching tag of the pair, allowing you
-to quickly jump back and forth between opening and closing tags.
+<span id="index-C_002dc-_002e"></span>
+<span id="index-hui_002dselect_002dgoto_002dmatching_002dtag"></span>
+<p>The second convenience key is bound in HTML/XML/SGML/web
+modes.  <kbd>{C-c .}</kbd> <code>hui-select-goto-matching-tag</code> jumps 
between
+the opening and closing tag of a pair.  It moves point to the start of
+the tag paired with the closest tag that point is within or which it
+precedes.  A second press moves point to the matching tag of the pair,
+allowing you to quickly jump back and forth between opening and
+closing tags.
 </p>
 <hr>
-<a name="Smart-Mouse-Key-Modeline-Clicks"></a>
-<div class="header">
+<span id="Smart-Mouse-Key-Modeline-Clicks"></span><div class="header">
 <p>
 Next: <a href="#Smart-Mouse-Key-Drags" accesskey="n" rel="next">Smart Mouse 
Key Drags</a>, Previous: <a href="#Smart-Key-Thing-Selection" accesskey="p" 
rel="prev">Smart Key Thing Selection</a>, Up: <a href="#Smart-Keys" 
accesskey="u" rel="up">Smart Keys</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Mouse-Key-Modeline-Clicks-1"></a>
-<h3 class="section">2.6 Smart Mouse Key Modeline Clicks</h3>
+<span id="Smart-Mouse-Key-Modeline-Clicks-1"></span><h3 class="section">2.6 
Smart Mouse Key Modeline Clicks</h3>
 
 <p>Smart Mouse Key clicks on a window&rsquo;s modeline offer many powerful 
browsing
 features, including directory editing (dired), user manual browsing, and
@@ -1654,18 +1621,18 @@ modeline actions are discussed herein.
 <ul>
 <li> Leftmost Character
 
-<a name="index-bury-buffer"></a>
-<a name="index-unbury-buffer"></a>
-<a name="index-modeline_002c-bury-buffer"></a>
-<a name="index-modeline_002c-unbury-buffer"></a>
-<a name="index-modeline_002c-leftmost-character"></a>
+<span id="index-bury-buffer"></span>
+<span id="index-unbury-buffer"></span>
+<span id="index-modeline_002c-bury-buffer"></span>
+<span id="index-modeline_002c-unbury-buffer"></span>
+<span id="index-modeline_002c-leftmost-character"></span>
 <p>Action Key clicks on the first (usually blank) character of the
 modeline bury the current buffer in the buffer list and display the
 next buffer in the list.  Assist Key clicks do the reverse and unbury
 the bottom buffer.
 </p>
-<a name="index-modeline_002c-next-buffer"></a>
-<a name="index-modeline_002c-prev-buffer"></a>
+<span id="index-modeline_002c-next-buffer"></span>
+<span id="index-modeline_002c-prev-buffer"></span>
 <p>A similar effect can be achieved with the standard Emacs mouse 1 (left) and
 3 (right) buttons on the Buffer ID element of modeline to cycle through
 previous and next buffers, respectively.  This may be easier to use since
@@ -1673,13 +1640,13 @@ you can click anywhere on the buffer identifier.
 </p>
 </li><li> Buffer ID Element
 
-<a name="index-dired"></a>
-<a name="index-directory-editor"></a>
-<a name="index-dired_002djump"></a>
-<a name="index-modeline_002c-dired"></a>
-<a name="index-buffer-id"></a>
-<a name="index-modeline_002c-buffer-id"></a>
-<a name="index-dragging-items_002c-dired"></a>
+<span id="index-dired"></span>
+<span id="index-directory-editor"></span>
+<span id="index-dired_002djump"></span>
+<span id="index-modeline_002c-dired"></span>
+<span id="index-buffer-id"></span>
+<span id="index-modeline_002c-buffer-id"></span>
+<span id="index-dragging-items_002c-dired"></span>
 <p>On the left part of the modeline is the buffer identification,
 generally the name of the buffer in use.  An Action Key click on that
 switches the window to edit the buffer&rsquo;s directory using dired.
@@ -1693,8 +1660,8 @@ path (the part to the left of the click point), starts 
another dired
 session on the ancestor directory.  Click at the end of this line or
 on the last line to end the dired session (bury its buffer).
 </p>
-<a name="index-Treemacs"></a>
-<a name="index-file-viewer_002c-Treemacs"></a>
+<span id="index-Treemacs"></span>
+<span id="index-file-viewer_002c-Treemacs"></span>
 <p>If you use the Treemacs file viewer Emacs package, you can configure 
Hyperbole
 to use this instead of Dired when you click on a modeline buffer id.
 </p>
@@ -1705,11 +1672,11 @@ to Hyperbole&rsquo;s default, use the value, 
<code>dired-jump</code>.
 </p>
 </li><li> Large Blank Area
 
-<a name="index-buffer-menu"></a>
-<a name="index-modeline_002c-buffer-menu"></a>
-<a name="index-jump-menu"></a>
-<a name="index-modeline_002c-jump-menu"></a>
-<a name="index-dragging-items_002c-buffer-menu"></a>
+<span id="index-buffer-menu"></span>
+<span id="index-modeline_002c-buffer-menu"></span>
+<span id="index-jump-menu"></span>
+<span id="index-modeline_002c-jump-menu"></span>
+<span id="index-dragging-items_002c-buffer-menu"></span>
 <p>An Action Mouse Key click in a blank area of a window modeline (away
 from left and right edges) toggles between displaying and hiding a
 list of all buffers.  Once displayed, an Action Key click on a buffer
@@ -1732,9 +1699,9 @@ wonder how you lived without it before.
 </p>
 </li><li> Right Corner
 
-<a name="index-Info-browser"></a>
-<a name="index-modeline-click-and-drag"></a>
-<a name="index-modeline_002c-Info-Browser"></a>
+<span id="index-Info-browser"></span>
+<span id="index-modeline-click-and-drag"></span>
+<span id="index-modeline_002c-Info-Browser"></span>
 <p>A click of the Action Mouse Key in the right corner of a window
 modeline (within the rightmost 3 characters) displays or hides the
 GNU Info Manual Browser, giving you quick point and click access to
@@ -1745,13 +1712,13 @@ Smart Key summary, as noted earlier.
 </p>
 </li><li> Customizable Variables
 
-<a name="index-action_002dkey_002dmodeline_002dfunction"></a>
-<a name="index-assist_002dkey_002dmodeline_002dfunction"></a>
-<a name="index-action_002dkey_002dmodeline"></a>
-<a name="index-assist_002dkey_002dmodeline"></a>
-<a name="index-hmouse_002dcontext_002dmenu"></a>
-<a name="index-hmouse_002dcontext_002dibuffer_002dmenu"></a>
-<a name="index-ibuffer-menu"></a>
+<span id="index-action_002dkey_002dmodeline_002dfunction"></span>
+<span id="index-assist_002dkey_002dmodeline_002dfunction"></span>
+<span id="index-action_002dkey_002dmodeline"></span>
+<span id="index-assist_002dkey_002dmodeline"></span>
+<span id="index-hmouse_002dcontext_002dmenu"></span>
+<span id="index-hmouse_002dcontext_002dibuffer_002dmenu"></span>
+<span id="index-ibuffer-menu"></span>
 <p>Hyperbole modeline mouse click actions are controlled by the two functions,
 <code>action-key-modeline</code> and <code>assist-key-modeline</code>.  If you 
know
 a little Emacs Lisp you can change these to do whatever you like.  When a
@@ -1766,8 +1733,8 @@ use that with the following in your Emacs initialization 
file:
 To set it back to the default use:
 <code>(setq action-key-modeline-function #'hmouse-context-menu)</code>.
 </p>
-<a name="index-hui_002dmenu_002dscreen_002dcommands"></a>
-<a name="index-modeline_002c-screen-command-menu"></a>
+<span id="index-hui_002dmenu_002dscreen_002dcommands"></span>
+<span id="index-modeline_002c-screen-command-menu"></span>
 <p>The default <code>assist-key-modeline-function</code> is to pop up a menu of
 convenient screen commands that lets you select buffers grouped by
 major mode, use HyControl, or jump to specific windows, window
@@ -1779,46 +1746,42 @@ Change the value to your desired command.  Then press 
<tt class="key">RET</tt>.
 </p></li></ul>
 
 <hr>
-<a name="Smart-Mouse-Key-Drags"></a>
-<div class="header">
+<span id="Smart-Mouse-Key-Drags"></span><div class="header">
 <p>
 Previous: <a href="#Smart-Mouse-Key-Modeline-Clicks" accesskey="p" 
rel="prev">Smart Mouse Key Modeline Clicks</a>, Up: <a href="#Smart-Keys" 
accesskey="u" rel="up">Smart Keys</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Mouse-Key-Drags-1"></a>
-<h3 class="section">2.7 Smart Mouse Key Drags</h3>
+<span id="Smart-Mouse-Key-Drags-1"></span><h3 class="section">2.7 Smart Mouse 
Key Drags</h3>
 
-<a name="index-smart-mouse-key-drag"></a>
-<a name="index-Action-Mouse-Key-drag"></a>
-<a name="index-Assist-Mouse-Key-drag"></a>
-<a name="index-drag_002c-Smart-Mouse-Key"></a>
+<span id="index-smart-mouse-key-drag"></span>
+<span id="index-Action-Mouse-Key-drag"></span>
+<span id="index-Assist-Mouse-Key-drag"></span>
+<span id="index-drag_002c-Smart-Mouse-Key"></span>
 <p>As mentioned in the section on Thing Selection, Hyperbole Smart Mouse Key
 drag actions can be quite useful.  This section summarizes other drag
 contexts and actions; for complete documentation, see <a 
href="#Smart-Mouse-Keys">Smart Mouse Keys</a>.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a 
href="#Creating-and-Deleting-Windows" accesskey="1">Creating and Deleting 
Windows</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Creating-and-Deleting-Windows" accesskey="1">Creating and Deleting 
Windows</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Saving-and-Restoring-Window-Configurations" accesskey="2">Saving and 
Restoring Window Configurations</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Saving-and-Restoring-Window-Configurations" accesskey="2">Saving and 
Restoring Window Configurations</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Resizing-Windows" 
accesskey="3">Resizing Windows</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Resizing-Windows" 
accesskey="3">Resizing Windows</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Dragging-Buffers" 
accesskey="4">Dragging Buffers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Dragging-Buffers" 
accesskey="4">Dragging Buffers</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Creating-and-Deleting-Windows"></a>
-<div class="header">
+<span id="Creating-and-Deleting-Windows"></span><div class="header">
 <p>
 Next: <a href="#Saving-and-Restoring-Window-Configurations" accesskey="n" 
rel="next">Saving and Restoring Window Configurations</a>, Previous: <a 
href="#Smart-Mouse-Key-Drags" accesskey="p" rel="prev">Smart Mouse Key 
Drags</a>, Up: <a href="#Smart-Mouse-Key-Drags" accesskey="u" rel="up">Smart 
Mouse Key Drags</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Creating-and-Deleting-Windows-1"></a>
-<h4 class="subsection">2.7.1 Creating and Deleting Windows</h4>
+<span id="Creating-and-Deleting-Windows-1"></span><h4 class="subsection">2.7.1 
Creating and Deleting Windows</h4>
 
-<a name="index-drag_002c-horizontal"></a>
-<a name="index-horizontal-drag"></a>
-<a name="index-drag_002c-vertical"></a>
-<a name="index-vertical-drag"></a>
+<span id="index-drag_002c-horizontal"></span>
+<span id="index-horizontal-drag"></span>
+<span id="index-drag_002c-vertical"></span>
+<span id="index-vertical-drag"></span>
 <p>Horizontal and vertical drags of the Smart Mouse Keys are used to split and
 delete Emacs windows.
 </p>
@@ -1829,26 +1792,24 @@ vertical drag in either direction splits the current 
window into two
 side-by-side windows.  A horizontal or vertical drag of the Assist Mouse
 Key within a single window, deletes that window.
 </p>
-<a name="index-C_002dx-_002b"></a>
-<a name="index-rebalance-windows"></a>
-<a name="index-windows_002c-rebalance"></a>
+<span id="index-C_002dx-_002b"></span>
+<span id="index-rebalance-windows"></span>
+<span id="index-windows_002c-rebalance"></span>
 <p>If you split windows many times and then delete a number of the windows,
 you&rsquo;ll be left with windows of differing heights.  Use <kbd>{C-x 
+}</kbd> to
 re-balance the sizes of the remaining windows, so they are fairly even.
 </p>
 <hr>
-<a name="Saving-and-Restoring-Window-Configurations"></a>
-<div class="header">
+<span id="Saving-and-Restoring-Window-Configurations"></span><div 
class="header">
 <p>
 Next: <a href="#Resizing-Windows" accesskey="n" rel="next">Resizing 
Windows</a>, Previous: <a href="#Creating-and-Deleting-Windows" accesskey="p" 
rel="prev">Creating and Deleting Windows</a>, Up: <a 
href="#Smart-Mouse-Key-Drags" accesskey="u" rel="up">Smart Mouse Key Drags</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Saving-and-Restoring-Window-Configurations-1"></a>
-<h4 class="subsection">2.7.2 Saving and Restoring Window Configurations</h4>
+<span id="Saving-and-Restoring-Window-Configurations-1"></span><h4 
class="subsection">2.7.2 Saving and Restoring Window Configurations</h4>
 
-<a name="index-window-configuration-drag"></a>
-<a name="index-drag_002c-window-configuration"></a>
-<a name="index-drag_002c-diagonal"></a>
-<a name="index-diagonal-drag"></a>
+<span id="index-window-configuration-drag"></span>
+<span id="index-drag_002c-window-configuration"></span>
+<span id="index-drag_002c-diagonal"></span>
+<span id="index-diagonal-drag"></span>
 <p>A window configuration consists of the set of windows within a single Emacs
 frame.  This includes their locations, buffers, and the scrolled positions of
 their buffers.
@@ -1857,23 +1818,21 @@ their buffers.
 diagonal mouse drags within a single window.  A diagonal drag in any
 direction of the Action Key saves the current window configuration to a
 ring of window configurations, just like the Emacs text kill ring.
-(See <a 
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Kill-Ring";>Kill
 Ring</a> in <cite>the Emacs Manual</cite>).  Each diagonal drag in any
+(See <a 
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Kill-Ring";>Kill
 Ring</a> in <cite>the Emacs Manual</cite>).  Each diagonal drag in any
 direction of the Assist Key restores a prior saved window configuration
 from the ring.  Window configurations are restored in reverse order of the
 way they were saved.  Since a ring is circular, after the oldest element is
 restored, the newest element will again be restored and so on.
 </p>
 <hr>
-<a name="Resizing-Windows"></a>
-<div class="header">
+<span id="Resizing-Windows"></span><div class="header">
 <p>
 Next: <a href="#Dragging-Buffers" accesskey="n" rel="next">Dragging 
Buffers</a>, Previous: <a href="#Saving-and-Restoring-Window-Configurations" 
accesskey="p" rel="prev">Saving and Restoring Window Configurations</a>, Up: <a 
href="#Smart-Mouse-Key-Drags" accesskey="u" rel="up">Smart Mouse Key Drags</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Resizing-Windows-1"></a>
-<h4 class="subsection">2.7.3 Resizing Windows</h4>
+<span id="Resizing-Windows-1"></span><h4 class="subsection">2.7.3 Resizing 
Windows</h4>
 
-<a name="index-resizing-windows"></a>
-<a name="index-drag_002c-resize-window"></a>
+<span id="index-resizing-windows"></span>
+<span id="index-drag_002c-resize-window"></span>
 <p>Emacs windows may be resized by dragging their window separators (modelines
 or vertical side lines) within a frame.  Simply depress either Smart Mouse
 Key on a modeline or near a window side, hold it down while you drag to a
@@ -1889,44 +1848,40 @@ them for resizing windows as well.
 resize the frame to move the bottom of that window up.
 </p>
 <hr>
-<a name="Dragging-Buffers"></a>
-<div class="header">
+<span id="Dragging-Buffers"></span><div class="header">
 <p>
 Previous: <a href="#Resizing-Windows" accesskey="p" rel="prev">Resizing 
Windows</a>, Up: <a href="#Smart-Mouse-Key-Drags" accesskey="u" rel="up">Smart 
Mouse Key Drags</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Dragging-Buffers_002c-Windows-and-Items"></a>
-<h4 class="subsection">2.7.4 Dragging Buffers, Windows and Items</h4>
+<span id="Dragging-Buffers_002c-Windows-and-Items"></span><h4 
class="subsection">2.7.4 Dragging Buffers, Windows and Items</h4>
 
 <p>Smart Mouse Key drags let you display buffers and windows however you want
 them.  Dired and buffer-menu items may also be displayed in specific
 locations with drags.  Below we explore these drag actions.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Swapping-Buffers" 
accesskey="1">Swapping Buffers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Swapping-Buffers" 
accesskey="1">Swapping Buffers</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Displaying-Buffers" 
accesskey="2">Displaying Buffers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Displaying-Buffers" 
accesskey="2">Displaying Buffers</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Cloning-Windows" 
accesskey="3">Cloning Windows</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Cloning-Windows" 
accesskey="3">Cloning Windows</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Displaying-File-and-Buffer-Items" accesskey="4">Displaying File and 
Buffer Items</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Displaying-File-and-Buffer-Items" accesskey="4">Displaying File and 
Buffer Items</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Keyboard-Drags" 
accesskey="5">Keyboard Drags</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Keyboard-Drags" 
accesskey="5">Keyboard Drags</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Swapping-Buffers"></a>
-<div class="header">
+<span id="Swapping-Buffers"></span><div class="header">
 <p>
 Next: <a href="#Displaying-Buffers" accesskey="n" rel="next">Displaying 
Buffers</a>, Previous: <a href="#Dragging-Buffers" accesskey="p" 
rel="prev">Dragging Buffers</a>, Up: <a href="#Dragging-Buffers" accesskey="u" 
rel="up">Dragging Buffers</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Swapping-Buffers-1"></a>
-<h4 class="subsubsection">2.7.4.1 Swapping Buffers</h4>
+<span id="Swapping-Buffers-1"></span><h4 class="subsubsection">2.7.4.1 
Swapping Buffers</h4>
 
-<a name="index-swap-buffers"></a>
-<a name="index-window_002c-swap-buffer"></a>
-<a name="index-buffer_002c-swap"></a>
-<a name="index-drag_002c-buffer-swap"></a>
+<span id="index-swap-buffers"></span>
+<span id="index-window_002c-swap-buffer"></span>
+<span id="index-buffer_002c-swap"></span>
+<span id="index-drag_002c-buffer-swap"></span>
 <p>Swapping buffer locations is quick and easy with Hyperbole.  Simply drag
 from one window to another with the Assist Key (not the Action Key).  This
 works across frames as well.
@@ -1937,17 +1892,15 @@ involving the tilde key to swap the buffers and quit 
from the Hyperbole
 minibuffer menu: <kbd>{C-h h s w ~ q}</kbd>.
 </p>
 <hr>
-<a name="Displaying-Buffers"></a>
-<div class="header">
+<span id="Displaying-Buffers"></span><div class="header">
 <p>
 Next: <a href="#Cloning-Windows" accesskey="n" rel="next">Cloning Windows</a>, 
Previous: <a href="#Swapping-Buffers" accesskey="p" rel="prev">Swapping 
Buffers</a>, Up: <a href="#Dragging-Buffers" accesskey="u" rel="up">Dragging 
Buffers</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Displaying-Buffers-1"></a>
-<h4 class="subsubsection">2.7.4.2 Displaying Buffers</h4>
+<span id="Displaying-Buffers-1"></span><h4 class="subsubsection">2.7.4.2 
Displaying Buffers</h4>
 
-<a name="index-buffer_002c-copy"></a>
-<a name="index-copy-buffer"></a>
-<a name="index-drag_002c-copy-buffer"></a>
+<span id="index-buffer_002c-copy"></span>
+<span id="index-copy-buffer"></span>
+<span id="index-drag_002c-copy-buffer"></span>
 <p>What if you want to display the same buffer in another window and not swap
 buffers?  Depress the Action Mouse Key in the open area of the modeline of
 the source window and drag to the text area of the destination window.
@@ -1958,17 +1911,15 @@ buffer stays onscreen), just drag to a window&rsquo;s 
modeline; that window will
 split before the buffer is displayed.
 </p>
 <hr>
-<a name="Cloning-Windows"></a>
-<div class="header">
+<span id="Cloning-Windows"></span><div class="header">
 <p>
 Next: <a href="#Displaying-File-and-Buffer-Items" accesskey="n" 
rel="next">Displaying File and Buffer Items</a>, Previous: <a 
href="#Displaying-Buffers" accesskey="p" rel="prev">Displaying Buffers</a>, Up: 
<a href="#Dragging-Buffers" accesskey="u" rel="up">Dragging Buffers</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Cloning-Windows-1"></a>
-<h4 class="subsubsection">2.7.4.3 Cloning Windows</h4>
+<span id="Cloning-Windows-1"></span><h4 class="subsubsection">2.7.4.3 Cloning 
Windows</h4>
 
-<a name="index-clone-window"></a>
-<a name="index-window_002c-clone"></a>
-<a name="index-drag_002c-clone-window"></a>
+<span id="index-clone-window"></span>
+<span id="index-window_002c-clone"></span>
+<span id="index-drag_002c-clone-window"></span>
 <p>To clone a window with its buffer to a new frame, simply drag the Action 
Mouse
 Key from the window to outside of Emacs and release the key.  A new frame will
 be created, selected and sized according to the original window.  Do the same
@@ -1976,20 +1927,18 @@ thing with the Assist Mouse Key and the original window 
will be deleted as well,
 unless it is the only window in that frame.
 </p>
 <hr>
-<a name="Displaying-File-and-Buffer-Items"></a>
-<div class="header">
+<span id="Displaying-File-and-Buffer-Items"></span><div class="header">
 <p>
 Next: <a href="#Keyboard-Drags" accesskey="n" rel="next">Keyboard Drags</a>, 
Previous: <a href="#Cloning-Windows" accesskey="p" rel="prev">Cloning 
Windows</a>, Up: <a href="#Dragging-Buffers" accesskey="u" rel="up">Dragging 
Buffers</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Displaying-File-and-Buffer-Items-1"></a>
-<h4 class="subsubsection">2.7.4.4 Displaying File and Buffer Items</h4>
+<span id="Displaying-File-and-Buffer-Items-1"></span><h4 
class="subsubsection">2.7.4.4 Displaying File and Buffer Items</h4>
 
-<a name="index-dired-item-drag"></a>
-<a name="index-buffer-menu-item-drag"></a>
-<a name="index-Treemacs-item-drag"></a>
-<a name="index-drag_002c-dired-item"></a>
-<a name="index-drag_002c-buffer-menu-item"></a>
-<a name="index-drag_002c-Treemacs-item"></a>
+<span id="index-dired-item-drag"></span>
+<span id="index-buffer-menu-item-drag"></span>
+<span id="index-Treemacs-item-drag"></span>
+<span id="index-drag_002c-dired-item"></span>
+<span id="index-drag_002c-buffer-menu-item"></span>
+<span id="index-drag_002c-Treemacs-item"></span>
 <p>You can also drag items to other windows with the Action Key in Dired,
 Buffer Menu, Ibuffer and Treemacs listing buffers, rather than the
 buffers themselves.  Drag with the Action Mouse Key and the selected
@@ -2007,21 +1956,19 @@ made.  An Assist Key Drag will move the the item list 
buffer to the
 destination (swapping buffers), just as it does with other buffers.
 </p>
 <hr>
-<a name="Keyboard-Drags"></a>
-<div class="header">
+<span id="Keyboard-Drags"></span><div class="header">
 <p>
 Previous: <a href="#Displaying-File-and-Buffer-Items" accesskey="p" 
rel="prev">Displaying File and Buffer Items</a>, Up: <a 
href="#Dragging-Buffers" accesskey="u" rel="up">Dragging Buffers</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Keyboard-Drags-1"></a>
-<h4 class="subsubsection">2.7.4.5 Keyboard Drags</h4>
+<span id="Keyboard-Drags-1"></span><h4 class="subsubsection">2.7.4.5 Keyboard 
Drags</h4>
 
-<a name="index-M_002do"></a>
-<a name="index-C_002du-M_002do"></a>
-<a name="index-C_002dx-o"></a>
-<a name="index-hkey_002doperate"></a>
-<a name="index-drag-emulation"></a>
-<a name="index-emulation_002c-drag"></a>
-<a name="index-keyboard-drags"></a>
+<span id="index-M_002do"></span>
+<span id="index-C_002du-M_002do"></span>
+<span id="index-C_002dx-o"></span>
+<span id="index-hkey_002doperate"></span>
+<span id="index-drag-emulation"></span>
+<span id="index-emulation_002c-drag"></span>
+<span id="index-keyboard-drags"></span>
 <p>If you run Emacs under a window system and there is no prior key binding
 on <kbd>{M-o}</kbd> when you load Hyperbole, then many Action Key drags can be
 emulated from the keyboard.  To do so, press <kbd>{M-o}</kbd>, the
@@ -2032,12 +1979,12 @@ Action Key.  <kbd>{C-u M-o}</kbd> emulates drags of the 
Assist Key.
 This will not work when Hyperbole is run from a dumb terminal Emacs
 session since drag actions are not supported without a window system.
 </p>
-<a name="index-ace_002dwindow-1"></a>
-<a name="index-hkey_002dace_002dwindow_002dsetup"></a>
-<a name="index-ace_002dwindow"></a>
-<a name="index-window-by-letter"></a>
-<a name="index-jump-to-window-by-letter"></a>
-<a name="index-keyboard_002c-jump-to-window"></a>
+<span id="index-ace_002dwindow-1"></span>
+<span id="index-hkey_002dace_002dwindow_002dsetup"></span>
+<span id="index-ace_002dwindow"></span>
+<span id="index-window-by-letter"></span>
+<span id="index-jump-to-window-by-letter"></span>
+<span id="index-keyboard_002c-jump-to-window"></span>
 <p>For even faster keyboard-based display of items and drag emulations,
 use the Emacs package <code>ace-window</code>
 (see <a 
href="https://elpa.gnu.org/packages/ace-window.html";>https://elpa.gnu.org/packages/ace-window.html</a>).
@@ -2057,20 +2004,20 @@ the drags performed by <code>hkey-operate</code>).  If 
you already have a key bo
 for <code>ace-window</code>, then just ensure it is initialized by calling
 <code>(hkey-ace-window-setup)</code> without a key argument.
 </p>
-<a name="index-link-creation-from-keyboard"></a>
-<a name="index-keyboard-link-creation"></a>
-<a name="index-M_002do-i-_003cwindow_002did_003e"></a>
-<a name="index-M_002do-m-_003cwindow_002did_003e"></a>
-<a name="index-M_002do-r-_003cwindow_002did_003e"></a>
-<a name="index-M_002do-t-_003cwindow_002did_003e"></a>
-<a name="index-drag-item"></a>
-<a name="index-replace-window-buffer"></a>
-<a name="index-swap-window-buffers"></a>
-<a name="index-throw-item"></a>
-<a name="index-buffer-replace"></a>
-<a name="index-buffers-swap"></a>
-<a name="index-item-drag"></a>
-<a name="index-item-throw"></a>
+<span id="index-link-creation-from-keyboard"></span>
+<span id="index-keyboard-link-creation"></span>
+<span id="index-M_002do-i-_003cwindow_002did_003e"></span>
+<span id="index-M_002do-m-_003cwindow_002did_003e"></span>
+<span id="index-M_002do-r-_003cwindow_002did_003e"></span>
+<span id="index-M_002do-t-_003cwindow_002did_003e"></span>
+<span id="index-drag-item"></span>
+<span id="index-replace-window-buffer"></span>
+<span id="index-swap-window-buffers"></span>
+<span id="index-throw-item"></span>
+<span id="index-buffer-replace"></span>
+<span id="index-buffers-swap"></span>
+<span id="index-item-drag"></span>
+<span id="index-item-throw"></span>
 <p>After setup, the leftmost character or two of each window&rsquo;s modeline 
will show
 the ID to type to use that window as the drag destination.  Then whenever point
 is on an item you want displayed in another window, use <kbd>{M-o i
@@ -2111,15 +2058,13 @@ trigger an error
 
 
 <hr>
-<a name="Buttons"></a>
-<div class="header">
+<span id="Buttons"></span><div class="header">
 <p>
 Next: <a href="#Menus" accesskey="n" rel="next">Menus</a>, Previous: <a 
href="#Smart-Keys" accesskey="p" rel="prev">Smart Keys</a>, Up: <a href="#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Buttons-1"></a>
-<h2 class="chapter">3 Buttons</h2>
+<span id="Buttons-1"></span><h2 class="chapter">3 Buttons</h2>
 
-<a name="index-button"></a>
+<span id="index-button"></span>
 <p>This chapter explains use of Hyperbole <em>buttons</em>.  There are several
 kinds of Hyperbole buttons: buttons that are created one at a time and
 stored in files (<em>explicit buttons</em>); buttons that can be
@@ -2131,13 +2076,13 @@ of buttons (<em>implicit buttons</em>).
 created, modified, moved or deleted.  Each button performs a specific
 action, such as linking to a file or executing a shell command.
 </p>
-<a name="index-button_002c-explicit"></a>
-<a name="index-button_002c-global"></a>
-<a name="index-button_002c-implicit"></a>
-<a name="index-button-category"></a>
-<a name="index-explicit-button"></a>
-<a name="index-global-button"></a>
-<a name="index-implicit-button"></a>
+<span id="index-button_002c-explicit"></span>
+<span id="index-button_002c-global"></span>
+<span id="index-button_002c-implicit"></span>
+<span id="index-button-category"></span>
+<span id="index-explicit-button"></span>
+<span id="index-global-button"></span>
+<span id="index-implicit-button"></span>
 <p>There are three categories of Hyperbole buttons:
 </p><dl compact="compact">
 <dt><em>explicit buttons</em></dt>
@@ -2176,7 +2121,7 @@ Implicit          a matching context   direct selection   
   other tools
 
 </pre></div>
 
-<a name="index-terminal-use"></a>
+<span id="index-terminal-use"></span>
 <p>A click on a Hyperbole button may activate it or describe its actions,
 depending on which mouse key is used.  Buttons may also be activated from a
 keyboard.  (In fact, many Hyperbole operations, including menu usage, may
@@ -2186,37 +2131,35 @@ also a key that shows you how a button will behave 
before you activate
 it, see <a href="#Smart-Key-Operations">Smart Key Operations</a>.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Explicit-Buttons" 
accesskey="1">Explicit Buttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Explicit-Buttons" 
accesskey="1">Explicit Buttons</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Global-Buttons" 
accesskey="2">Global Buttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Global-Buttons" 
accesskey="2">Global Buttons</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Implicit-Buttons" 
accesskey="3">Implicit Buttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Implicit-Buttons" 
accesskey="3">Implicit Buttons</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Button-Files" 
accesskey="4">Button Files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Button-Files" 
accesskey="4">Button Files</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Action-Types" 
accesskey="5">Action Types</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Action-Types" 
accesskey="5">Action Types</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Button-Type-Precedence" 
accesskey="6">Button Type Precedence</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Button-Type-Precedence" 
accesskey="6">Button Type Precedence</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Utilizing-Explicit-Buttons" 
accesskey="7">Utilizing Explicit Buttons</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Utilizing-Explicit-Buttons" 
accesskey="7">Utilizing Explicit Buttons</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Explicit-Buttons"></a>
-<div class="header">
+<span id="Explicit-Buttons"></span><div class="header">
 <p>
 Next: <a href="#Global-Buttons" accesskey="n" rel="next">Global Buttons</a>, 
Previous: <a href="#Buttons" accesskey="p" rel="prev">Buttons</a>, Up: <a 
href="#Buttons" accesskey="u" rel="up">Buttons</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Explicit-Buttons-1"></a>
-<h3 class="section">3.1 Explicit Buttons</h3>
+<span id="Explicit-Buttons-1"></span><h3 class="section">3.1 Explicit 
Buttons</h3>
 
-<a name="index-explicit-button-1"></a>
-<a name="index-button_002c-explicit-1"></a>
-<a name="index-button-label"></a>
-<a name="index-button-name"></a>
-<a name="index-label_002c-button"></a>
-<a name="index-name_002c-button"></a>
+<span id="index-explicit-button-1"></span>
+<span id="index-button_002c-explicit-1"></span>
+<span id="index-button-label"></span>
+<span id="index-button-name"></span>
+<span id="index-label_002c-button"></span>
+<span id="index-name_002c-button"></span>
 <p>Hyperbole creates and manages <em>explicit buttons</em> which perform
 specific actions when activated (typically through a button press).
 They look like this &lsquo;<samp>&lt;(fake button)&gt;</samp>&rsquo;.  They 
are quickly
@@ -2232,8 +2175,8 @@ code files, simply place buttons within comments.  
Buttons that you
 use for quick navigation to websites or other things you do often
 should be added to your personal button file.  See <a 
href="#Button-Files">Button Files</a>.
 </p>
-<a name="index-button_002c-moving"></a>
-<a name="index-moving-buttons"></a>
+<span id="index-button_002c-moving"></span>
+<span id="index-moving-buttons"></span>
 <p>Explicit buttons may be freely moved about within the buffer in which
 they are created.  (No present support exists for moving buttons between
 buffers; support the Hyperbole project if you would like to help make
@@ -2244,8 +2187,8 @@ to a new location if you need another copy of it.
 <p>For details on how to create, activate, delete or modify explicit
 buttons, see <a href="#Utilizing-Explicit-Buttons">Utilizing Explicit 
Buttons</a>.
 </p>
-<a name="index-link-button"></a>
-<a name="index-referent"></a>
+<span id="index-link-button"></span>
+<span id="index-referent"></span>
 <p>Each explicit button is assigned an action type that determines the actions
 it performs.  <em>Link action types</em> connect buttons to particular types
 of <em>referents</em>, the targets of their links.  Link action type names all
@@ -2253,16 +2196,16 @@ begin with <code>link-</code>.  Link action button 
referents are displayed when
 such buttons are activated with a press or a click.  See <a 
href="#Action-Types">Action Types</a>,
 for a list of standard action types including link types.
 </p>
-<a name="index-linking_002c-in_002dplace"></a>
-<a name="index-Hyperbole-data-model"></a>
+<span id="index-linking_002c-in_002dplace"></span>
+<span id="index-Hyperbole-data-model"></span>
 <p>Hyperbole does not manage referent data; this is left to the
 applications that generate the data.  This means that Hyperbole
 provides in-place linking and does not require reformatting data to
 integrate it with Hyperbole.
 </p>
-<a name="index-button-data"></a>
-<a name="index-button-attribute"></a>
-<a name="index-file_002c-_002ehypb"></a>
+<span id="index-button-data"></span>
+<span id="index-button-attribute"></span>
+<span id="index-file_002c-_002ehypb"></span>
 <p>Hyperbole stores the <em>button data</em> that gives an explicit button its
 behavior, separately from the button label, in a file named
 <samp>.hypb</samp> (<samp>_hypb</samp> under MS Windows) within the same 
directory
@@ -2274,18 +2217,16 @@ asking for help on a button.
 </p>
 
 <hr>
-<a name="Global-Buttons"></a>
-<div class="header">
+<span id="Global-Buttons"></span><div class="header">
 <p>
 Next: <a href="#Implicit-Buttons" accesskey="n" rel="next">Implicit 
Buttons</a>, Previous: <a href="#Explicit-Buttons" accesskey="p" 
rel="prev">Explicit Buttons</a>, Up: <a href="#Buttons" accesskey="u" 
rel="up">Buttons</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Global-Buttons-1"></a>
-<h3 class="section">3.2 Global Buttons</h3>
+<span id="Global-Buttons-1"></span><h3 class="section">3.2 Global Buttons</h3>
 
-<a name="index-global-button-1"></a>
-<a name="index-button_002c-global-1"></a>
-<a name="index-button-label-1"></a>
-<a name="index-label_002c-button-1"></a>
+<span id="index-global-button-1"></span>
+<span id="index-button_002c-global-1"></span>
+<span id="index-button-label-1"></span>
+<span id="index-label_002c-button-1"></span>
 <p>Access to explicit buttons depends upon the information on your screen
 since they are embedded within particular buffers.  Sometimes it is
 useful to activate buttons without regard to the information with which
@@ -2300,9 +2241,9 @@ macro that you use frequently?  Create an 
<code>exec-kbd-macro</code> button
 with an easy to type name and then you can activate it whenever the need
 arises.
 </p>
-<a name="index-C_002dh-h-g"></a>
-<a name="index-menu_002c-Gbut"></a>
-<a name="index-menu_002c-Global_002dButton"></a>
+<span id="index-C_002dh-h-g"></span>
+<span id="index-menu_002c-Gbut"></span>
+<span id="index-menu_002c-Global_002dButton"></span>
 <p>Global buttons are managed with the Hyperbole Gbut/ menu accessed with
 <kbd>{C-h h g}</kbd>.  The Create item, <kbd>{C-h h g c}</kbd>, prompts for a
 global button name, an action type, and the action&rsquo;s associated
@@ -2314,25 +2255,23 @@ the button&rsquo;s name and its action will be executed.
 personal button file, see <a href="#Button-Files">Button Files</a>.  You can 
always go into that
 file and activate, edit or annotate these buttons with comments.
 </p>
-<a name="index-bookmarks"></a>
+<span id="index-bookmarks"></span>
 <p>Emacs has a built-in feature similar to Global Buttons called Bookmarks.
 Bookmarks store places in files or link to URLs, so they are more limited
 than Hyperbole&rsquo;s global buttons and cannot utilize all of 
Hyperbole&rsquo;s
-capabilities for performing actions.  See <a 
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Bookmarks";>Bookmarks</a>
 in <cite>the Emacs
+capabilities for performing actions.  See <a 
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Bookmarks";>Bookmarks</a>
 in <cite>the Emacs
 Manual</cite>, for details on bookmarks.
 </p>
 <hr>
-<a name="Implicit-Buttons"></a>
-<div class="header">
+<span id="Implicit-Buttons"></span><div class="header">
 <p>
 Next: <a href="#Button-Files" accesskey="n" rel="next">Button Files</a>, 
Previous: <a href="#Global-Buttons" accesskey="p" rel="prev">Global 
Buttons</a>, Up: <a href="#Buttons" accesskey="u" rel="up">Buttons</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Implicit-Buttons-1"></a>
-<h3 class="section">3.3 Implicit Buttons</h3>
+<span id="Implicit-Buttons-1"></span><h3 class="section">3.3 Implicit 
Buttons</h3>
 
-<a name="index-button_002c-implicit-1"></a>
-<a name="index-implicit-button-1"></a>
-<a name="index-link_002dto_002dfile"></a>
+<span id="index-button_002c-implicit-1"></span>
+<span id="index-implicit-button-1"></span>
+<span id="index-link_002dto_002dfile"></span>
 <p><em>Implicit buttons</em> are virtual buttons recognized within the
 natural structure of a document.  For example, a web URL button that
 displays its link or an email address button that starts a mail
@@ -2351,12 +2290,12 @@ typically in another window.  An explicit button could 
do the same
 thing but has to be created manually, rather than recognized as part
 of the buffer text.
 </p>
-<a name="index-file_002c-hibtypes_002eel"></a>
-<a name="index-context"></a>
-<a name="index-boolean-expressions"></a>
-<a name="index-activating-implicit-button"></a>
-<a name="index-menu-item_002c-Ibut_002fAct"></a>
-<a name="index-C_002dh-h-i-a"></a>
+<span id="index-file_002c-hibtypes_002eel"></span>
+<span id="index-context"></span>
+<span id="index-boolean-expressions"></span>
+<span id="index-activating-implicit-button"></span>
+<span id="index-menu-item_002c-Ibut_002fAct"></span>
+<span id="index-C_002dh-h-i-a"></span>
 <p>Unlike explicit buttons, implicit buttons have no individual button
 data other than their text and optional labels.  You use implicit
 button types which include boolean expressions (predicates) that match
@@ -2372,9 +2311,9 @@ current point.
 The Hyperbole Smart Keys offer additional extensive context-sensitive
 point-and-click type behavior beyond implicit button types.  See <a 
href="#Smart-Key-Operations">Smart Key Operations</a>.
 </p>
-<a name="index-implicit-button-labels"></a>
-<a name="index-labeling-implicit-buttons"></a>
-<a name="index-naming-implicit-buttons"></a>
+<span id="index-implicit-button-labels"></span>
+<span id="index-labeling-implicit-buttons"></span>
+<span id="index-naming-implicit-buttons"></span>
 <p>Individual implicit buttons may be labeled/named, allowing activation
 by name or use as a link target by other buttons.  Here is a pathname
 button with a label of &rsquo;My Emacs Files&rsquo;:
@@ -2390,23 +2329,21 @@ on the text of an implicit button, <kbd>{C-h h i 
l}</kbd> will label it.  Or
 you may simply type the label and delimiters manually.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Implicit-Button-Types" 
accesskey="1">Implicit Button Types</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Implicit-Button-Types" 
accesskey="1">Implicit Button Types</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Action-Buttons" 
accesskey="2">Action Buttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Action-Buttons" 
accesskey="2">Action Buttons</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Implicit-Button-Types"></a>
-<div class="header">
+<span id="Implicit-Button-Types"></span><div class="header">
 <p>
 Next: <a href="#Action-Buttons" accesskey="n" rel="next">Action Buttons</a>, 
Previous: <a href="#Implicit-Buttons" accesskey="p" rel="prev">Implicit 
Buttons</a>, Up: <a href="#Implicit-Buttons" accesskey="u" rel="up">Implicit 
Buttons</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Implicit-Button-Types-1"></a>
-<h4 class="subsection">3.3.1 Implicit Button Types</h4>
+<span id="Implicit-Button-Types-1"></span><h4 class="subsection">3.3.1 
Implicit Button Types</h4>
 
-<a name="index-ibtypes_002c-list-of"></a>
-<a name="index-implicit-button-types"></a>
+<span id="index-ibtypes_002c-list-of"></span>
+<span id="index-implicit-button-types"></span>
 <p>Below is a list of standard implicit button types in the order in which
 Hyperbole tries to match to the types when looking for an implicit
 button; <kbd>{C-h h i t <span class="key">RET</span>}</kbd> provides similar 
information.  See
@@ -2415,9 +2352,9 @@ implicit button types (they are listed in increasing 
order of priority).
 </p>
 <dl compact="compact">
 <dd>
-<a name="index-ibtypes-doc_002did"></a>
-<a name="index-online-library"></a>
-<a name="index-document-identifier"></a>
+<span id="index-ibtypes-doc_002did"></span>
+<span id="index-online-library"></span>
+<span id="index-document-identifier"></span>
 </dd>
 <dt><code>doc-id</code></dt>
 <dd><p>Display a document from a local document library given its id.  Ids 
must be
@@ -2427,15 +2364,15 @@ not installed by default.  You must manually configure 
it and load it from
 the file, <samp><code>${hyperb:dir}</code>/hib-doc-id.el</samp>).  See the 
commentary
 at the top of that file for more information.
 </p>
-<a name="index-ibtypes-completion"></a>
-<a name="index-completion-1"></a>
+<span id="index-ibtypes-completion"></span>
+<span id="index-completion-1"></span>
 </dd>
 <dt><code>completion</code></dt>
 <dd><p>Insert the completion at point (from a completions buffer) into the
 minibuffer or the other window.
 </p>
-<a name="index-ibtypes-hyp_002dsource"></a>
-<a name="index-Hyperbole-report"></a>
+<span id="index-ibtypes-hyp_002dsource"></span>
+<span id="index-Hyperbole-report"></span>
 </dd>
 <dt><code>hyp-source</code></dt>
 <dd><p>Turn source location entries following an &lsquo;@loc&gt;&rsquo; line 
in Hyperbole
@@ -2445,8 +2382,8 @@ explicit buttons in the <samp>DEMO</samp> file and each 
button in that report
 buffer behaves the same as the corresponding button in the original
 <samp>DEMO</samp> file.
 </p>
-<a name="index-ibtypes-hyp_002daddress"></a>
-<a name="index-Hyperbole-mail-list"></a>
+<span id="index-ibtypes-hyp_002daddress"></span>
+<span id="index-Hyperbole-mail-list"></span>
 </dd>
 <dt><code>hyp-address</code></dt>
 <dd><p>Within a mail or Usenet news composer window, make a Hyperbole
@@ -2457,8 +2394,8 @@ for <code>actypes::hyp-config</code>.  For example, an 
Action Mouse Key
 click on &lt;hyperbole-users@gnu.org&gt; in a mail composer window would
 activate this implicit button type.
 </p>
-<a name="index-ibtypes-Info_002dnode"></a>
-<a name="index-Info-node"></a>
+<span id="index-ibtypes-Info_002dnode"></span>
+<span id="index-Info-node"></span>
 </dd>
 <dt><code>Info-node</code></dt>
 <dd><p>Make a &quot;(filename)nodename&quot; button display the associated 
Info node.
@@ -2466,13 +2403,13 @@ Also make a &quot;(filename)itemname&quot; button 
display the associated Info
 index item.  Examples are &quot;(hyperbole)Implicit Buttons&quot; and
 &ldquo;(hyperbole)C-c /&rdquo;.
 </p>
-<a name="index-ibtypes-www_002durl"></a>
-<a name="index-URL"></a>
-<a name="index-World_002dwide-Web"></a>
-<a name="index-WWW"></a>
-<a name="index-Action-Key_002c-web-browsing"></a>
-<a name="index-Action-Key_002c-web-browsing-1"></a>
-<a name="index-browse_002durl_002dbrowser_002dfunction"></a>
+<span id="index-ibtypes-www_002durl"></span>
+<span id="index-URL"></span>
+<span id="index-World_002dwide-Web"></span>
+<span id="index-WWW"></span>
+<span id="index-Action-Key_002c-web-browsing"></span>
+<span id="index-Action-Key_002c-web-browsing-1"></span>
+<span id="index-browse_002durl_002dbrowser_002dfunction"></span>
 </dd>
 <dt><code>www-url</code></dt>
 <dd><p>When not in an Emacs web browser buffer, follow any non-ftp URL (link) 
at point.
@@ -2480,18 +2417,18 @@ The variable, <code>browse-url-browser-function</code>, 
may be used to customize
 which URL browser is called.  Terse URLs which lack a protocol prefix,
 like www.gnu.org, are also recognized.
 </p>
-<a name="index-ibtypes-gnus_002dpush_002dbutton"></a>
-<a name="index-GNUS-push_002dbuttons"></a>
-<a name="index-hiding-signatures"></a>
-<a name="index-signatures_002c-hiding"></a>
+<span id="index-ibtypes-gnus_002dpush_002dbutton"></span>
+<span id="index-GNUS-push_002dbuttons"></span>
+<span id="index-hiding-signatures"></span>
+<span id="index-signatures_002c-hiding"></span>
 </dd>
 <dt><code>gnus-push-button</code></dt>
 <dd><p>Activate GNUS-specific article push-buttons, e.g. for hiding 
signatures.  GNUS
 is a news and mail reader.
 </p>
-<a name="index-ibtypes-texinfo_002dref"></a>
-<a name="index-Texinfo-cross_002dreference"></a>
-<a name="index-cross_002dreference_002c-Texinfo"></a>
+<span id="index-ibtypes-texinfo_002dref"></span>
+<span id="index-Texinfo-cross_002dreference"></span>
+<span id="index-cross_002dreference_002c-Texinfo"></span>
 </dd>
 <dt><code>texinfo-ref</code></dt>
 <dd><p>Display Texinfo, Info node or help associated with Texinfo node, menu 
item,
@@ -2504,10 +2441,10 @@ is shown.
 <p>For @code, @findex, @var and @vindex references, the associated
 documentation string is displayed.
 </p>
-<a name="index-ibtypes-mail_002daddress"></a>
-<a name="index-e_002dmail-address"></a>
-<a name="index-rolo-address"></a>
-<a name="index-address"></a>
+<span id="index-ibtypes-mail_002daddress"></span>
+<span id="index-e_002dmail-address"></span>
+<span id="index-rolo-address"></span>
+<span id="index-address"></span>
 </dd>
 <dt><code>mail-address</code></dt>
 <dd><p>If on an e-mail address in a specific buffer type, compose mail to that
@@ -2515,40 +2452,40 @@ address in another window. Applies to the rolo match 
buffer, any buffer
 attached to a file in <code>hyrolo-file-list</code>, or any buffer
 with <samp>mail</samp> or <samp>rolo</samp> (case-insensitive) within its name.
 </p>
-<a name="index-ibtypes-patch_002dmsg"></a>
-<a name="index-patch-output"></a>
+<span id="index-ibtypes-patch_002dmsg"></span>
+<span id="index-patch-output"></span>
 </dd>
 <dt><code>patch-msg</code></dt>
 <dd><p>Jump to the source code associated with output from the 
&lsquo;<samp>patch</samp>&rsquo;
 program.  Patch applies diffs to source code.
 </p>
-<a name="index-ibtypes-elisp_002dcompiler_002dmsg"></a>
-<a name="index-byte-compiler-error"></a>
-<a name="index-Emacs-Lisp-compiler-error"></a>
-<a name="index-compiler-error"></a>
+<span id="index-ibtypes-elisp_002dcompiler_002dmsg"></span>
+<span id="index-byte-compiler-error"></span>
+<span id="index-Emacs-Lisp-compiler-error"></span>
+<span id="index-compiler-error"></span>
 </dd>
 <dt><code>elisp-compiler-msg</code></dt>
 <dd><p>Jump to the source code for a definition associated with an Emacs
 Lisp byte-compiler error message.  Works when activated anywhere
 within an error line.
 </p>
-<a name="index-ibtypes-debugger_002dsource"></a>
-<a name="index-gdb"></a>
-<a name="index-dbx"></a>
-<a name="index-xdb"></a>
-<a name="index-stack-frame"></a>
-<a name="index-breakpoint"></a>
-<a name="index-source-line"></a>
+<span id="index-ibtypes-debugger_002dsource"></span>
+<span id="index-gdb"></span>
+<span id="index-dbx"></span>
+<span id="index-xdb"></span>
+<span id="index-stack-frame"></span>
+<span id="index-breakpoint"></span>
+<span id="index-source-line"></span>
 </dd>
 <dt><code>debugger-source</code></dt>
 <dd><p>Jump to the source line associated with a debugger stack frame or
 breakpoint line.  This works with gdb, dbx, and xdb.  Such lines are
 recognized in any buffer.
 </p>
-<a name="index-ibtypes-ripgrep_002dmsg"></a>
-<a name="index-grep"></a>
-<a name="index-ripgrep"></a>
-<a name="index-match-lines"></a>
+<span id="index-ibtypes-ripgrep_002dmsg"></span>
+<span id="index-grep"></span>
+<span id="index-ripgrep"></span>
+<span id="index-match-lines"></span>
 </dd>
 <dt><code>ripgrep-msg</code></dt>
 <dd><p>Jump to line associated with a ripgrep (rg) line numbered msg.
@@ -2556,9 +2493,9 @@ Ripgrep outputs each pathname once followed by all 
matching lines in
 that pathname.  Messages are recognized in any buffer (other than a
 helm completion buffer).
 </p>
-<a name="index-ibtypes-ipython_002dstack_002dframe"></a>
-<a name="index-ipython"></a>
-<a name="index-stack-frame-1"></a>
+<span id="index-ibtypes-ipython_002dstack_002dframe"></span>
+<span id="index-ipython"></span>
+<span id="index-stack-frame-1"></span>
 </dd>
 <dt><code>ipython-stack-frame</code></dt>
 <dd><p>Jump to line associated with an ipython stack frame line numbered msg.
@@ -2566,19 +2503,19 @@ ipython outputs each pathname once followed by all 
matching lines in that
 pathname.  Messages are recognized in any buffer (other than a helm completion
 buffer).
 </p>
-<a name="index-ibtypes-grep_002dmsg"></a>
-<a name="index-grep-1"></a>
-<a name="index-compiler-error-1"></a>
-<a name="index-match-lines-1"></a>
+<span id="index-ibtypes-grep_002dmsg"></span>
+<span id="index-grep-1"></span>
+<span id="index-compiler-error-1"></span>
+<span id="index-match-lines-1"></span>
 </dd>
 <dt><code>grep-msg</code></dt>
 <dd><p>Jump to a line associated with a grep or compilation error message.
 Messages are recognized in any buffer.
 </p>
-<a name="index-ibtypes-ilink"></a>
-<a name="index-implicit-button-link"></a>
-<a name="index-link-to-implicit-button"></a>
-<a name="index-ilink"></a>
+<span id="index-ibtypes-ilink"></span>
+<span id="index-implicit-button-link"></span>
+<span id="index-link-to-implicit-button"></span>
+<span id="index-ilink"></span>
 </dd>
 <dt><code>link-to-ibut &lt;ilink&gt;</code></dt>
 <dd><p>At point, activate a link to an implicit button within the current 
buffer.
@@ -2589,10 +2526,10 @@ where button_file_path is given only when the link is 
to another file,
 e.g. &lt;ilink: my series of keys: ${hyperb:dir}/HYPB&gt;.
 </p>
 
-<a name="index-ibtypes-glink"></a>
-<a name="index-global-button-link"></a>
-<a name="index-link-to-global-button"></a>
-<a name="index-glink"></a>
+<span id="index-ibtypes-glink"></span>
+<span id="index-global-button-link"></span>
+<span id="index-link-to-global-button"></span>
+<span id="index-glink"></span>
 </dd>
 <dt><code>link-to-gbut &lt;glink&gt;</code></dt>
 <dd><p>At point, activate a link to a global button.
@@ -2600,10 +2537,10 @@ Execulte the global button&rsquo;s action in the 
context of the current buffer.
 </p>
 <p>Recognizes the format &rsquo;&lt;glink:&rsquo; button_label 
&rsquo;&gt;&rsquo;, e.g. &lt;glink: open todos&gt;.
 </p>
-<a name="index-ibtypes-elink"></a>
-<a name="index-explicit-button-link"></a>
-<a name="index-link-to-explicit-button"></a>
-<a name="index-elink"></a>
+<span id="index-ibtypes-elink"></span>
+<span id="index-explicit-button-link"></span>
+<span id="index-link-to-explicit-button"></span>
+<span id="index-elink"></span>
 </dd>
 <dt><code>link-to-ebut &lt;elink&gt;</code></dt>
 <dd><p>At point, activate a link to an explicit button within the current 
buffer.
@@ -2613,31 +2550,31 @@ Execute The explicit button&rsquo;s action in the 
context of the current buffer.
 where : button_file_path is given only when the link is to another file,
 e.g. &lt;elink: project-list: ~/projs&gt;.&quot;
 </p>
-<a name="index-ibtypes-klink"></a>
-<a name="index-klink"></a>
-<a name="index-koutline-link"></a>
-<a name="index-kcell-link"></a>
+<span id="index-ibtypes-klink"></span>
+<span id="index-klink"></span>
+<span id="index-koutline-link"></span>
+<span id="index-kcell-link"></span>
 </dd>
 <dt><code>klink</code></dt>
 <dd><p>Follow a link delimited by &lt;&gt; to a koutline cell.
 See the documentation for <code>actypes::link-to-kotl</code> for valid link
 specifiers.
 </p>
-<a name="index-ibtypes-man_002dapropos"></a>
-<a name="index-UNIX-manual"></a>
-<a name="index-man-pages"></a>
-<a name="index-man-apropos"></a>
+<span id="index-ibtypes-man_002dapropos"></span>
+<span id="index-UNIX-manual"></span>
+<span id="index-man-pages"></span>
+<span id="index-man-apropos"></span>
 </dd>
 <dt><code>man-apropos</code></dt>
 <dd><p>Make man apropos entries (from &lsquo;<samp>man -k</samp>&rsquo;) 
display associated man pages
 when selected.
 </p>
-<a name="index-ibtypes-rfc"></a>
-<a name="index-Internet-RFC"></a>
-<a name="index-Request-For-Comment"></a>
-<a name="index-RFC"></a>
-<a name="index-remote-file"></a>
-<a name="index-ftp"></a>
+<span id="index-ibtypes-rfc"></span>
+<span id="index-Internet-RFC"></span>
+<span id="index-Request-For-Comment"></span>
+<span id="index-RFC"></span>
+<span id="index-remote-file"></span>
+<span id="index-ftp"></span>
 </dd>
 <dt><code>rfc</code></dt>
 <dd><p>Retrieve and display an Internet rfc referenced at point.  The
@@ -2646,9 +2583,9 @@ following formats are recognized: RFC822, rfc-822, and 
RFC 822.  The
 retrieve RFCs.  Requires the Emacs builtin Tramp library for ftp file
 retrievals.
 </p>
-<a name="index-ibtypes-kbd_002dkey"></a>
-<a name="index-key-sequence"></a>
-<a name="index-sequence-of-keys"></a>
+<span id="index-ibtypes-kbd_002dkey"></span>
+<span id="index-key-sequence"></span>
+<span id="index-sequence-of-keys"></span>
 </dd>
 <dt><code>kbd-key</code></dt>
 <dd><p>Execute a key series (series of key sequences) found around point,
@@ -2664,9 +2601,9 @@ will not be recognized.
 </li><li> or a valid key sequence together with its interactive arguments.
 </li></ul>
 
-<a name="index-ibtypes-dir_002dsummary"></a>
-<a name="index-file_002c-MANIFEST"></a>
-<a name="index-file_002c-DIR"></a>
+<span id="index-ibtypes-dir_002dsummary"></span>
+<span id="index-file_002c-MANIFEST"></span>
+<span id="index-file_002c-DIR"></span>
 </dd>
 <dt><code>dir-summary</code></dt>
 <dd><p>Detect filename buttons in files named &quot;MANIFEST&quot; or 
&quot;DIR&quot;.  Display selected
@@ -2674,9 +2611,9 @@ files.  Each filename must be at the beginning of the 
line and must be
 followed by one or more spaces and then another non-space, non-parenthesis,
 non-brace character.
 </p>
-<a name="index-ibtypes-text_002dtoc"></a>
-<a name="index-table-of-contents"></a>
-<a name="index-toc-implicit-button-type"></a>
+<span id="index-ibtypes-text_002dtoc"></span>
+<span id="index-table-of-contents"></span>
+<span id="index-toc-implicit-button-type"></span>
 </dd>
 <dt><code>text-toc</code></dt>
 <dd><p>Jump to the text file section referenced by a table of contents entry
@@ -2688,10 +2625,10 @@ followed by one or more asterisk characters.  Each line 
which begins a
 new file section must start with one or more asterisk characters at the
 very beginning of the line.
 </p>
-<a name="index-ibtypes-cscope"></a>
-<a name="index-C_002fC_002b_002b-call-trees"></a>
-<a name="index-C_002fC_002b_002b-cross_002dreference"></a>
-<a name="index-Cscope"></a>
+<span id="index-ibtypes-cscope"></span>
+<span id="index-C_002fC_002b_002b-call-trees"></span>
+<span id="index-C_002fC_002b_002b-cross_002dreference"></span>
+<span id="index-Cscope"></span>
 </dd>
 <dt><code>cscope</code></dt>
 <dd><p>Jump to a C/C++ source line associated with a Cscope C analyzer output 
line.
@@ -2700,65 +2637,65 @@ must be loaded and the open source cscope program 
available from
 http://cscope.sf.net must be installed for this button type to do
 anything.
 </p>
-<a name="index-ibtypes-etags"></a>
-<a name="index-etags-entry"></a>
-<a name="index-TAGS-file"></a>
-<a name="index-tag"></a>
+<span id="index-ibtypes-etags"></span>
+<span id="index-etags-entry"></span>
+<span id="index-TAGS-file"></span>
+<span id="index-tag"></span>
 </dd>
 <dt><code>etags</code></dt>
 <dd><p>Jump to the source line associated with an etags file entry in a TAGS 
buffer.
 If on a tag entry line, jump to the source line for the tag.  If on a
 pathname line or line preceding it, jump to the associated file.
 </p>
-<a name="index-ibtypes-ctags"></a>
-<a name="index-ctags-entry"></a>
-<a name="index-tags-file"></a>
+<span id="index-ibtypes-ctags"></span>
+<span id="index-ctags-entry"></span>
+<span id="index-tags-file"></span>
 </dd>
 <dt><code>ctags</code></dt>
 <dd><p>Jump to the source line associated with a ctags file entry in any 
buffer.
 Ctags files are used by old editors like vi to lookup identifiers.
 Emacs uses the newer, more flexible Etags format.
 </p>
-<a name="index-ibtypes-id_002dcflow"></a>
-<a name="index-C-call-tree"></a>
-<a name="index-call-tree_002c-C"></a>
-<a name="index-C-flow-graph"></a>
+<span id="index-ibtypes-id_002dcflow"></span>
+<span id="index-C-call-tree"></span>
+<span id="index-call-tree_002c-C"></span>
+<span id="index-C-flow-graph"></span>
 </dd>
 <dt><code>id-cflow</code></dt>
 <dd><p>Expand or collapse C call trees and jump to code definitions.
 Requires cross-reference tables built by the external <code>cxref</code>
 program.
 </p>
-<a name="index-ibtypes-rfc_002dtoc"></a>
-<a name="index-Internet-RFC-1"></a>
-<a name="index-Request-For-Comment-1"></a>
-<a name="index-RFC-1"></a>
-<a name="index-table-of-contents-1"></a>
+<span id="index-ibtypes-rfc_002dtoc"></span>
+<span id="index-Internet-RFC-1"></span>
+<span id="index-Request-For-Comment-1"></span>
+<span id="index-RFC-1"></span>
+<span id="index-table-of-contents-1"></span>
 </dd>
 <dt><code>rfc-toc</code></dt>
 <dd><p>Summarize contents of an Internet rfc from anywhere within an rfc 
buffer.
 Each line of the summary may be selected to jump to the associated section.
 </p>
-<a name="index-ibtypes-actions"></a>
-<a name="index-action-implicit-button"></a>
-<a name="index-functon-call-implicit-button"></a>
-<a name="index-variable-display-implicit-button"></a>
+<span id="index-ibtypes-actions"></span>
+<span id="index-action-implicit-button"></span>
+<span id="index-functon-call-implicit-button"></span>
+<span id="index-variable-display-implicit-button"></span>
 </dd>
 <dt><code>action</code></dt>
 <dd><p>Execute an angle bracket delimited Hyperbole action, Elisp function 
call or
 display of an Elisp variable and its value.
 </p>
-<a name="index-ibtypes-markdown_002dinternal_002dlink"></a>
-<a name="index-markdown-link"></a>
+<span id="index-ibtypes-markdown_002dinternal_002dlink"></span>
+<span id="index-markdown-link"></span>
 </dd>
 <dt><code>markdown-internal-link</code></dt>
 <dd><p>Display any in-file Markdown link referent.  Pathnames and urls are
 handled elsewhere.
 </p>
-<a name="index-ibtypes-git_002dreference"></a>
-<a name="index-git-reference"></a>
-<a name="index-version-control"></a>
-<a name="index-hibtypes_002dgit_002ddefault_002dproject"></a>
+<span id="index-ibtypes-git_002dreference"></span>
+<span id="index-git-reference"></span>
+<span id="index-version-control"></span>
+<span id="index-hibtypes_002dgit_002ddefault_002dproject"></span>
 </dd>
 <dt><code>git-reference</code></dt>
 <dd><p>Display the git entity associated with REFERENCE and optional PROJECT.
@@ -2787,23 +2724,23 @@ See <samp>DEMO#Git (Local) References</samp> for 
examples.
 </p></dd>
 </dl>
 
-<a name="index-hibtypes_002dgit_002ddefault_002dproject-1"></a>
+<span id="index-hibtypes_002dgit_002ddefault_002dproject-1"></span>
 <p>If given, PROJECT overrides any project value in REFERENCE.  If no PROJECT
 value is provided, it defaults to the value of 
<code>hibtypes-git-default-project</code>. 
 </p>
-<a name="index-ibtypes-git_002dcommit_002dreference"></a>
-<a name="index-git-commit-reference"></a>
-<a name="index-version-control-1"></a>
+<span id="index-ibtypes-git_002dcommit_002dreference"></span>
+<span id="index-git-commit-reference"></span>
+<span id="index-version-control-1"></span>
 </dd>
 <dt><code>git-commit-reference</code></dt>
 <dd><p>Display the diff for a git commit reference, e.g. commit a55e21, 
typically
 produced by git log.
 </p>
-<a name="index-ibtypes-github_002dreference"></a>
-<a name="index-github-reference"></a>
-<a name="index-version-control-2"></a>
-<a name="index-hibtypes_002dgithub_002ddefault_002dproject"></a>
-<a name="index-hibtypes_002dgithub_002ddefault_002duser"></a>
+<span id="index-ibtypes-github_002dreference"></span>
+<span id="index-github-reference"></span>
+<span id="index-version-control-2"></span>
+<span id="index-hibtypes_002dgithub_002ddefault_002dproject"></span>
+<span id="index-hibtypes_002dgithub_002ddefault_002duser"></span>
 </dd>
 <dt><code>github-reference</code></dt>
 <dd><p>Display the Github entity associated with REFERENCE and optional USER 
and PROJECT.
@@ -2836,17 +2773,17 @@ See <samp>../DEMO#Github (Remote) References</samp> for 
examples.
 </p></dd>
 </dl>
 
-<a name="index-hibtypes_002dgithub_002ddefault_002duser-1"></a>
+<span id="index-hibtypes_002dgithub_002ddefault_002duser-1"></span>
 <p>USER defaults to the value of <code>hibtypes-github-default-user</code>.
 If given, PROJECT overrides any project value in REFERENCE.  If no
 PROJECT value is provided, it defaults to the value of
 <code>hibtypes-github-default-project</code>.
 </p>
-<a name="index-ibtypes-gitlab_002dreference"></a>
-<a name="index-gitlab-reference"></a>
-<a name="index-version-control-3"></a>
-<a name="index-hibtypes_002dgitlab_002ddefault_002dproject"></a>
-<a name="index-hibtypes_002dgitlab_002ddefault_002duser"></a>
+<span id="index-ibtypes-gitlab_002dreference"></span>
+<span id="index-gitlab-reference"></span>
+<span id="index-version-control-3"></span>
+<span id="index-hibtypes_002dgitlab_002ddefault_002dproject"></span>
+<span id="index-hibtypes_002dgitlab_002ddefault_002duser"></span>
 </dd>
 <dt><code>gitlab-reference</code></dt>
 <dd><p>Display the Gitlab entity associated with REFERENCE and optional USER 
and PROJECT.
@@ -2881,18 +2818,18 @@ or
 </p></dd>
 </dl>
 
-<a name="index-hibtypes_002dgitlab_002ddefault_002duser-1"></a>
+<span id="index-hibtypes_002dgitlab_002ddefault_002duser-1"></span>
 <p>USER defaults to the value of <code>hibtypes-gitlab-default-user</code>.
 If given, PROJECT overrides any project value in REFERENCE.  If no
 PROJECT value is provided, it defaults to the value of
 <code>hibtypes-gitlab-default-project</code>.
 </p>
-<a name="index-ibtypes-social_002dreference"></a>
-<a name="index-hashtag"></a>
-<a name="index-username"></a>
-<a name="index-social-media"></a>
-<a name="index-social-reference"></a>
-<a name="index-hibtypes_002dsocial_002ddefault_002dservice"></a>
+<span id="index-ibtypes-social_002dreference"></span>
+<span id="index-hashtag"></span>
+<span id="index-username"></span>
+<span id="index-social-media"></span>
+<span id="index-social-reference"></span>
+<span id="index-hibtypes_002dsocial_002ddefault_002dservice"></span>
 </dd>
 <dt><code>social-reference</code></dt>
 <dd><p>Display the web page associated with a social media hashtag or
@@ -2912,9 +2849,9 @@ value of <code>hibtypes-social-default-service</code> 
(default value of
 &ldquo;twitter&rdquo;) when not given, so #hashtag would be the same as
 twitter#hashtag.
 </p>
-<a name="index-ibtypes-debbugs_002dgnu_002dmode"></a>
-<a name="index-bug-tracking"></a>
-<a name="index-issue-tracking"></a>
+<span id="index-ibtypes-debbugs_002dgnu_002dmode"></span>
+<span id="index-bug-tracking"></span>
+<span id="index-issue-tracking"></span>
 </dd>
 <dt><code>debbugs-gnu-mode</code></dt>
 <dd><p>Debbugs is a client-server issue tracker used by GNU free software
@@ -2926,7 +2863,7 @@ displays the discussion of the selected issue; an Assist 
Key press
 pretty prints the status of the issue to a window below the listing
 window.
 </p>
-<a name="index-ibtypes-debbugs_002dgnu_002dquery"></a>
+<span id="index-ibtypes-debbugs_002dgnu_002dquery"></span>
 </dd>
 <dt><code>debbugs-gnu-query</code></dt>
 <dd><p>Debbugs queries may be issued by activating this implicit button type.
@@ -2936,20 +2873,20 @@ single id number, it displays the original message 
submission for that
 id and allows browsing of the followup discussion.  The following
 buffer text formats are accepted (with point prior to any attribute):
 </p>
-<div class="smallexample">
-<pre class="smallexample">bug#id-number, bug# id-number, bug #id-number or bug 
id-number
+<div class="example">
+<pre class="example">bug#id-number, bug# id-number, bug #id-number or bug 
id-number
 bug?attr1=val1&amp;attr2=val2&amp;attr3=val3
 bug#id-number?attr1=val1&amp;attr2=val2&amp;attr3=val3
 </pre></div>
 
-<a name="index-file_002c-hib_002ddebbugs_002eel"></a>
+<span id="index-file_002c-hib_002ddebbugs_002eel"></span>
 <p>Note that <em>issue</em> or <em>debbugs</em> may also be used in place
 of <em>bug</em>.  See the documentation at the top of
 the <samp>hib-debbugs.el</samp> file for detailed query format information.
 </p>
-<a name="index-ibtypes-annot_002dbib"></a>
-<a name="index-bibliography"></a>
-<a name="index-reference"></a>
+<span id="index-ibtypes-annot_002dbib"></span>
+<span id="index-bibliography"></span>
+<span id="index-reference"></span>
 </dd>
 <dt><code>annot-bib</code></dt>
 <dd><p>Display annotated bibliography entries defined within the same buffer
@@ -2958,10 +2895,10 @@ begin with a word constituent character, and must not 
be in buffers
 whose names begin with a &lsquo; &rsquo; or &lsquo;*&rsquo; character.
 </p>
 
-<a name="index-ibtypes-function_002din_002dbuffer"></a>
-<a name="index-file_002c-func_002dmenu_002eel"></a>
-<a name="index-function-menu"></a>
-<a name="index-func_002dmenu"></a>
+<span id="index-ibtypes-function_002din_002dbuffer"></span>
+<span id="index-file_002c-func_002dmenu_002eel"></span>
+<span id="index-function-menu"></span>
+<span id="index-func_002dmenu"></span>
 </dd>
 <dt><code>function-in-buffer</code></dt>
 <dd><p>Return the function name defined within this buffer that point is
@@ -2969,34 +2906,45 @@ within or after, else &lsquo;<samp>nil</samp>&rsquo;.  
This triggers only when t
 func-menu library has been loaded and the current major mode is one
 handled by func-menu.
 </p>
-<a name="index-link_002c-pathname-line-and-column"></a>
-<a name="index-line-and-column"></a>
-<a name="index-pathname_002c-line-and-column"></a>
-<a name="index-ibtypes-pathname_002dline_002dand_002dcolumn"></a>
+<span id="index-link_002c-pathname-line-and-column"></span>
+<span id="index-line-and-column"></span>
+<span id="index-pathname_002c-line-and-column"></span>
+<span id="index-ibtypes-pathname_002dline_002dand_002dcolumn"></span>
 </dd>
 <dt><code>pathname-line-and-column</code></dt>
 <dd><p>Make a valid pathname:line-num[:column-num] pattern display the path
 at line-num and optional column-num.  Also works for remote pathnames.
-</p>
-<a name="index-ibtypes-pathname"></a>
-<a name="index-hpath_003aat_002dp"></a>
-<a name="index-hpath_003afind"></a>
-<a name="index-hpath_003asuffixes"></a>
-<a name="index-Tramp"></a>
-<a name="index-ftp-1"></a>
-<a name="index-pathname"></a>
-<a name="index-remote-path"></a>
-<a name="index-filename"></a>
-<a name="index-link_002c-pathname"></a>
+May also contain hash-style link references with the following format:
+<samp>&lt;path&gt;[#&lt;link-anchor&gt;]:&lt;line-num&gt;[:&lt;column-num&gt;]</samp>.
+</p>
+
+<span id="index-ibtypes-pathname"></span>
+<span id="index-hpath_003aat_002dp"></span>
+<span id="index-hpath_003afind"></span>
+<span id="index-hpath_003asuffixes"></span>
+<span id="index-Tramp"></span>
+<span id="index-ftp-1"></span>
+<span id="index-pathname"></span>
+<span id="index-remote-path"></span>
+<span id="index-filename"></span>
+<span id="index-link_002c-pathname"></span>
+<span id="index-environment-variables"></span>
+<span id="index-Emacs-Lisp-variables"></span>
+<span id="index-Lisp-variables"></span>
 </dd>
 <dt><code>pathname</code></dt>
 <dd><p>Make a valid pathname display the path entry.  Also works for
 delimited and non-delimited remote pathnames, Texinfo @file{}
-entries, and hash-style link references to HTML, Markdown or Emacs
-outline headings, and MSWindows paths (see <samp>${hyperb:dir}/DEMO#POSIX
-and MSWindows Paths</samp> for details).  Emacs Lisp library files
-(filenames without any directory component that end in .el and .elc)
-are looked up using the <code>load-path</code> directory list.
+entries, and hash-style link references to HTML, XML, SGML, Markdown
+or Emacs outline headings, shell script comments, and MSWindows paths
+(see <samp>${hyperb:dir}/DEMO#POSIX and MSWindows Paths</samp> for
+details).  Emacs Lisp library files (filenames without any directory
+component that end in .el and .elc) are located using
+the <code>load-path</code> directory list.
+</p>
+<p>The pathname may contain references to Emacs Lisp variables or shell
+environment variables using the syntax, \&quot;${variable-name}\&quot;.
+See <a href="#Link-Variable-Substitution">Link Variable Substitution</a>, for 
how this handled.
 </p>
 <p>See the function documentation for <code>hpath:at-p</code> for possible
 delimiters.  See the variable documentation for <code>hpath:suffixes</code> for
@@ -3004,16 +2952,16 @@ suffixes that are added to or removed from the pathname 
when searching
 for a valid match.  See the function documentation for <code>hpath:find</code>
 for special file display options.
 </p>
-<a name="index-ibtypes-org_002dmode"></a>
-<a name="index-org_002dmode"></a>
-<a name="index-Org-mode"></a>
-<a name="index-radio-target"></a>
-<a name="index-code-block"></a>
-<a name="index-links"></a>
-<a name="index-C_002dc-C_002dc"></a>
-<a name="index-M_002dRET-1"></a>
-<a name="index-org_002dctrl_002dc_002dctrl_002dc"></a>
-<a name="index-org_002dmeta_002dreturn"></a>
+<span id="index-ibtypes-org_002dmode"></span>
+<span id="index-org_002dmode"></span>
+<span id="index-Org-mode"></span>
+<span id="index-radio-target"></span>
+<span id="index-code-block"></span>
+<span id="index-links"></span>
+<span id="index-C_002dc-C_002dc"></span>
+<span id="index-M_002dRET-1"></span>
+<span id="index-org_002dctrl_002dc_002dctrl_002dc"></span>
+<span id="index-org_002dmeta_002dreturn"></span>
 </dd>
 <dt><code>org-mode</code></dt>
 <dd><p>For users of Emacs Org mode, Hyperbole does quite a few things.
@@ -3042,16 +2990,14 @@ the Org mode standard binding of <kbd>{M-<span 
class="key">RET</span>}</kbd>, <c
 </dl>
 
 <hr>
-<a name="Action-Buttons"></a>
-<div class="header">
+<span id="Action-Buttons"></span><div class="header">
 <p>
 Previous: <a href="#Implicit-Button-Types" accesskey="p" rel="prev">Implicit 
Button Types</a>, Up: <a href="#Implicit-Buttons" accesskey="u" 
rel="up">Implicit Buttons</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Action-Buttons-1"></a>
-<h4 class="subsection">3.3.2 Action Buttons</h4>
+<span id="Action-Buttons-1"></span><h4 class="subsection">3.3.2 Action 
Buttons</h4>
 
-<a name="index-action-button"></a>
-<a name="index-implicit-action-button"></a>
+<span id="index-action-button"></span>
+<span id="index-implicit-action-button"></span>
 <p>Explicit buttons all use the same syntax and store their action data
 in a file separate from the button source file.  Implicit buttons have
 no external data but use a unique syntax per implicit button type to
@@ -3124,15 +3070,13 @@ name with: <kbd>{C-h h g a}</kbd>.
 </p>
 
 <hr>
-<a name="Button-Files"></a>
-<div class="header">
+<span id="Button-Files"></span><div class="header">
 <p>
 Next: <a href="#Action-Types" accesskey="n" rel="next">Action Types</a>, 
Previous: <a href="#Implicit-Buttons" accesskey="p" rel="prev">Implicit 
Buttons</a>, Up: <a href="#Buttons" accesskey="u" rel="up">Buttons</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Button-Files-1"></a>
-<h3 class="section">3.4 Button Files</h3>
+<span id="Button-Files-1"></span><h3 class="section">3.4 Button Files</h3>
 
-<a name="index-button-files"></a>
+<span id="index-button-files"></span>
 <p>It is often convenient to create files filled with buttons as a means
 of navigating distributed information pools or for other purposes.
 These files can also serve as useful roadmaps that guide a user
@@ -3140,17 +3084,17 @@ through both unfamiliar and highly familiar information 
spaces.  Files
 that are created specifically for this purpose are
 called <em>Hyperbole button files</em>.
 </p>
-<a name="index-hbmap_003afilename"></a>
-<a name="index-button-file_002c-personal"></a>
-<a name="index-button-file_002c-directory"></a>
+<span id="index-hbmap_003afilename"></span>
+<span id="index-button-file_002c-personal"></span>
+<span id="index-button-file_002c-directory"></span>
 <p>The Hyperbole menu system provides quick access to two types of these
 button files: personal and directory-specific, through the ButFile menu.
 (The variable, <code>hbmap:filename</code>, contains the base name of these
 button files.  Its standard value is <samp>HYPB</samp>.)
 </p>
-<a name="index-dir_002c-_007e_002f_002ehyperb"></a>
-<a name="index-hbmap_003adir_002duser"></a>
-<a name="index-global-button-2"></a>
+<span id="index-dir_002c-_007e_002f_002ehyperb"></span>
+<span id="index-hbmap_003adir_002duser"></span>
+<span id="index-global-button-2"></span>
 <p>A personal button file may serve as a user&rsquo;s own roadmap to frequently
 used resources, like a personal home page.  Selection of the
 ButFile/PersonalFile menu item, <kbd>{C-h h b p}</kbd>, displays this file for
@@ -3175,18 +3119,16 @@ files at the top of your personal button file and do so 
for your colleagues.
 This provides a flexible means of connecting to such resources.
 </p>
 <hr>
-<a name="Action-Types"></a>
-<div class="header">
+<span id="Action-Types"></span><div class="header">
 <p>
 Next: <a href="#Button-Type-Precedence" accesskey="n" rel="next">Button Type 
Precedence</a>, Previous: <a href="#Button-Files" accesskey="p" 
rel="prev">Button Files</a>, Up: <a href="#Buttons" accesskey="u" 
rel="up">Buttons</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Action-Types-1"></a>
-<h3 class="section">3.5 Action Types</h3>
+<span id="Action-Types-1"></span><h3 class="section">3.5 Action Types</h3>
 
-<a name="index-action-type"></a>
-<a name="index-argument_002c-use"></a>
-<a name="index-action"></a>
-<a name="index-button-action"></a>
+<span id="index-action-type"></span>
+<span id="index-argument_002c-use"></span>
+<span id="index-action"></span>
+<span id="index-button-action"></span>
 <p><em>Action types</em> are special functions that specify Hyperbole button
 behaviors.  Each action type may be used by any category of button:
 global, explicit, or implicit.  The arguments needed by an action type
@@ -3199,35 +3141,35 @@ the desired result.  This body is called the button 
<em>action</em>.
 you need know is the set of action types that you can work with when
 creating explicit or global buttons.
 </p>
-<a name="index-actypes_002c-list-of"></a>
+<span id="index-actypes_002c-list-of"></span>
 <p>The standard action types included with Hyperbole in alphabetical order
 are:
 </p>
 <dl compact="compact">
-<dd><a name="index-actypes-annot_002dbib"></a>
+<dd><span id="index-actypes-annot_002dbib"></span>
 </dd>
 <dt><code>annot-bib</code></dt>
 <dd><p>Follow an internal reference KEY within an annotated bibliography,
 delimiters = [ ].
 </p>
-<a name="index-actypes-completion"></a>
+<span id="index-actypes-completion"></span>
 </dd>
 <dt><code>completion</code></dt>
 <dd><p>Insert a completion at point into the minibuffer or a buffer.
 Unless point is at the end of buffer or if a completion has already been 
 inserted, in which case, delete the completions window.
 </p>
-<a name="index-actypes-display_002dvariable"></a>
+<span id="index-actypes-display_002dvariable"></span>
 </dd>
 <dt><code>display-variable-value</code></dt>
 <dd><p>Display a message showing the given variable name and its value.
 </p>
-<a name="index-actypes-eval_002delisp"></a>
+<span id="index-actypes-eval_002delisp"></span>
 </dd>
 <dt><code>eval-elisp</code></dt>
 <dd><p>Evaluate a Lisp expression LISP-EXPR for its side-effects and return 
any non-nil value.
 </p>
-<a name="index-actypes-exec_002dkbd_002dmacro"></a>
+<span id="index-actypes-exec_002dkbd_002dmacro"></span>
 </dd>
 <dt><code>exec-kbd-macro</code></dt>
 <dd><p>Execute a KBD-MACRO REPEAT-COUNT times.  KBD-MACRO may be a string of
@@ -3235,7 +3177,7 @@ editor command characters, a function symbol or nil to 
use the last
 defined keyboard macro.  Optional REPEAT-COUNT nil means execute once,
 zero means repeat until error.
 </p>
-<a name="index-actypes-exec_002dshell_002dcmd"></a>
+<span id="index-actypes-exec_002dshell_002dcmd"></span>
 </dd>
 <dt><code>exec-shell-cmd</code></dt>
 <dd><p>Execute a SHELL-CMD string asynchronously.  Optional non-nil second
@@ -3243,84 +3185,93 @@ argument INTERNAL-CMD inhibits display of the shell 
command line
 executed.  Optional non-nil third argument KILL-PREV means kill the last
 output to the shell buffer before executing SHELL-CMD.
 </p>
-<a name="index-actypes-exec_002dwindow_002dcmd"></a>
+<span id="index-actypes-exec_002dwindow_002dcmd"></span>
 </dd>
 <dt><code>exec-window-cmd</code></dt>
 <dd><p>Asynchronously execute an external window-based SHELL-CMD string.
 </p>
-<a name="index-actypes-function_002din_002dbuffer"></a>
+<span id="index-actypes-function_002din_002dbuffer"></span>
 </dd>
 <dt><code>function-in-buffer</code></dt>
 <dd><p>Display the definition of function NAME found at POS in the current 
buffer.
 </p>
-<a name="index-actypes-hyp_002dconfig"></a>
+<span id="index-actypes-hyp_002dconfig"></span>
 </dd>
 <dt><code>hyp-config</code></dt>
 <dd><p>Insert Hyperbole configuration and debugging information at the end
 of the current buffer or within optional OUT-BUF.
 </p>
-<a name="index-actypes-hyp_002drequest"></a>
+<span id="index-actypes-hyp_002drequest"></span>
 </dd>
 <dt><code>hyp-request</code></dt>
 <dd><p>Insert help for composing a Hyperbole support/discussion message into
 the current buffer or the optional OUT-BUF.
 </p>
-<a name="index-actypes-hyp_002dsource"></a>
+<span id="index-actypes-hyp_002dsource"></span>
 </dd>
 <dt><code>hyp-source</code></dt>
 <dd><p>Display a buffer or file from a line beginning with 
<code>hbut:source-prefix</code>.
 </p>
-<a name="index-actypes-kbd_002dkey"></a>
+<span id="index-actypes-kbd_002dkey"></span>
 </dd>
 <dt><code>kbd-key</code></dt>
 <dd><p>Execute the function binding for KEY-SEQUENCE, delimited by {}.
 Return &lsquo;<samp>t</samp>&rsquo; if a KEY-SEQUENCE has a binding, else 
&lsquo;<samp>nil</samp>&rsquo;.
 </p>
-<a name="index-link-action-types"></a>
-<a name="index-actypes-link_002dto_002dbuffer_002dtmp"></a>
+<span id="index-link-action-types"></span>
+<span id="index-actypes-link_002dto_002dbookmark"></span>
+</dd>
+<dt><code>link-to-bookmark</code></dt>
+<dd><p>Display an Emacs BOOKMARK.
+When creating the button, if in Bookmark Menu mode, use the bookmark
+nearest point as the default.  Otherwise, utilize the most recently used
+bookmark in the current file (bookmark-current-bookmark) as the default,
+if any.
+</p>
+<span id="index-actypes-link_002dto_002dbuffer_002dtmp"></span>
 </dd>
 <dt><code>link-to-buffer-tmp</code></dt>
 <dd><p>Display a BUFFER.  This type of link is for use in  a single editor 
session.
 Use <code>link-to-file</code> instead for a permanent link.
 </p>
-<a name="index-actypes-link_002dto_002ddirectory"></a>
+<span id="index-actypes-link_002dto_002ddirectory"></span>
 </dd>
 <dt><code>link-to-directory</code></dt>
 <dd><p>Display a DIRECTORY in Dired mode.
 </p>
-<a name="index-actypes-link_002dto_002ddoc"></a>
+<span id="index-actypes-link_002dto_002ddoc"></span>
 </dd>
 <dt><code>link-to-doc</code></dt>
 <dd><p>Display an online version of a document given by DOC-ID.  If the online
 version of a document is not found in <code>doc-id-indices</code>, signal an 
error.
 </p>
-<a name="index-actypes-link_002dto_002debut"></a>
+<span id="index-actypes-link_002dto_002debut"></span>
 </dd>
 <dt><code>link-to-ebut</code></dt>
 <dd><p>Perform an action given by an explicit button, specified by KEY and 
KEY-FILE.
 </p>
-<a name="index-actypes-link_002dto_002delisp_002ddoc"></a>
+<span id="index-actypes-link_002dto_002delisp_002ddoc"></span>
 </dd>
 <dt><code>link-to-elisp-doc</code></dt>
 <dd><p>Display the documentation for FUNC-SYMBOL.
 </p>
-<a name="index-actypes-link_002dto_002dfile"></a>
+<span id="index-actypes-link_002dto_002dfile"></span>
 </dd>
 <dt><code>link-to-file</code></dt>
 <dd><p>Display a file given by PATH scrolled to optional POINT.  If POINT is 
given,
 display the buffer with POINT at the top of the window.
 </p>
-<a name="index-actypes-link_002dto_002dfile_002dline"></a>
+<span id="index-actypes-link_002dto_002dfile_002dline"></span>
 </dd>
 <dt><code>link-to-file-line</code></dt>
 <dd><p>Display a file given by PATH scrolled to LINE-NUM.
 </p>
-<a name="index-actypes-link_002dto_002dgbut"></a>
+<span id="index-actypes-link_002dto_002dgbut"></span>
 </dd>
 <dt><code>link-to-gbut</code></dt>
 <dd><p>Perform an action given by an existing global button, specified by KEY.
 </p>
-<a name="index-actypes-link_002dto_002dInfo_002dindex_002ditem"></a>
+<span id="index-actypes-link_002dto_002dInfo_002dindex_002ditem"></span>
 </dd>
 <dt><code>link-to-Info-index-item</code></dt>
 <dd><p>Display an Info index ITEM cross-reference.
@@ -3328,7 +3279,7 @@ ITEM must be a string of the form (filename)item-name.  
During
 button creation, completion for both filename and item-name is
 available.  Filename may be given without the .info suffix.&quot;
 </p>
-<a name="index-actypes-link_002dto_002dInfo_002dnode"></a>
+<span id="index-actypes-link_002dto_002dInfo_002dnode"></span>
 </dd>
 <dt><code>link-to-Info-node</code></dt>
 <dd><p>Display an Info NODE.  NODE must be a string of the form
@@ -3336,13 +3287,13 @@ available.  Filename may be given without the .info 
suffix.&quot;
 filename and nodename is available.  Filename may be given without the
 .info suffix.
 </p>
-<a name="index-actypes-link_002dto_002dibut"></a>
+<span id="index-actypes-link_002dto_002dibut"></span>
 </dd>
 <dt><code>link-to-ibut</code></dt>
 <dd><p>Perform an action given by an implicit button, specified by KEY, 
optional KEY-FILE and POINT.
 </p>
-<a name="index-actypes-link_002dto_002dkcell"></a>
-<a name="index-kcell_003aref_002dto_002did"></a>
+<span id="index-actypes-link_002dto_002dkcell"></span>
+<span id="index-kcell_003aref_002dto_002did"></span>
 </dd>
 <dt><code>link-to-kcell</code></dt>
 <dd><p>Display a Hyperbole outline cell, given by FILE and CELL-REF, at the
@@ -3352,7 +3303,7 @@ valid CELL-REF formats.
 <p>If FILE is &lsquo;<samp>nil</samp>&rsquo;, use the current buffer.  If 
CELL-REF is
 &lsquo;<samp>nil</samp>&rsquo;, show the first cell in the view.
 </p>
-<a name="index-actypes-link_002dto_002dkotl"></a>
+<span id="index-actypes-link_002dto_002dkotl"></span>
 </dd>
 <dt><code>link-to-kotl</code></dt>
 <dd><p>Display at the top of a window the referent pointed to by LINK.
@@ -3366,14 +3317,14 @@ LINK may be of any of the following forms, with or 
without delimiters:
 <p>See the documentation for <code>(kcell:ref-to-id)</code> for valid cell-ref
 formats.
 </p>
-<a name="index-actypes-link_002dto_002dmail"></a>
+<span id="index-actypes-link_002dto_002dmail"></span>
 </dd>
 <dt><code>link-to-mail</code></dt>
 <dd><p>Display a mail message with MAIL-MSG-ID from optional MAIL-FILE.  See
 the documentation for the variable <code>hmail:init-function</code> for
 information on how to specify the mail reader to use.
 </p>
-<a name="index-actypes-link_002dto_002dregexp_002dmatch"></a>
+<span id="index-actypes-link_002dto_002dregexp_002dmatch"></span>
 </dd>
 <dt><code>link-to-regexp-match</code></dt>
 <dd><p>Find REGEXP&rsquo;s Nth occurrence in SOURCE and display the location 
at the
@@ -3381,13 +3332,13 @@ top of the selected window.  SOURCE is a pathname 
unless optional
 BUFFER-P is non-nil, then SOURCE must be a buffer name or buffer.
 Return &lsquo;<samp>t</samp>&rsquo; if found, signal an error if not.
 </p>
-<a name="index-actypes-link_002dto_002drfc"></a>
+<span id="index-actypes-link_002dto_002drfc"></span>
 </dd>
 <dt><code>link-to-rfc</code></dt>
 <dd><p>Retrieve and display an Internet rfc given by RFC-NUM.  RFC-NUM may be
 a string or an integer.
 </p>
-<a name="index-actypes-link_002dto_002dstring_002dmatch"></a>
+<span id="index-actypes-link_002dto_002dstring_002dmatch"></span>
 </dd>
 <dt><code>link-to-string-match</code></dt>
 <dd><p>Find STRING&rsquo;s Nth occurrence in SOURCE and display the location 
at the
@@ -3395,29 +3346,29 @@ top of the selected window.  SOURCE is a pathname 
unless optional
 BUFFER-P is non-nil, then SOURCE must be a buffer name or buffer.
 Return &lsquo;<samp>t</samp>&rsquo; if found, &lsquo;<samp>nil</samp>&rsquo; 
if not.
 </p>
-<a name="index-actypes-link_002dto_002dtexinfo_002dnode"></a>
+<span id="index-actypes-link_002dto_002dtexinfo_002dnode"></span>
 </dd>
 <dt><code>link-to-texinfo-node</code></dt>
 <dd><p>Display the Texinfo node with NODENAME (a string) from the current 
buffer.
 </p>
-<a name="index-actypes-link_002dto_002dweb_002dsearch"></a>
-<a name="index-link_002c-web-search"></a>
-<a name="index-web-search-link"></a>
+<span id="index-actypes-link_002dto_002dweb_002dsearch"></span>
+<span id="index-link_002c-web-search"></span>
+<span id="index-web-search-link"></span>
 </dd>
 <dt><code>link-to-web-search</code></dt>
 <dd><p>Search web SERVICE-NAME for SEARCH-TERM.  Uses 
<code>hyperbole-web-search-alist</code>
 to match each service to its search url.  Uses 
<code>hyperbole-web-search-browser-function</code>
 and the <code>browse-url</code> package to display search results.
 </p>
-<a name="index-actypes-man_002dshow"></a>
-<a name="index-hpath_003adisplay_002dwhere"></a>
-<a name="index-man-page"></a>
+<span id="index-actypes-man_002dshow"></span>
+<span id="index-hpath_003adisplay_002dwhere"></span>
+<span id="index-man-page"></span>
 </dd>
 <dt><code>man-show</code></dt>
 <dd><p>Display a man page on TOPIC, which may be of the form 
&lsquo;<samp>&lt;command&gt;(&lt;section&gt;</samp>&rsquo;).
 Use <code>hpath:display-where</code> setting to control where the man page is 
displayed.
 </p>
-<a name="index-actypes-rfc_002dtoc"></a>
+<span id="index-actypes-rfc_002dtoc"></span>
 </dd>
 <dt><code>rfc-toc</code></dt>
 <dd><p>Compute and display a summary of an Internet rfc in BUF-NAME.  Assume
@@ -3425,18 +3376,18 @@ point has already been moved to the start of the region 
to summarize.
 Optional OPOINT is the point to return to in BUF-NAME after displaying
 the summary.
 </p>
-<a name="index-actypes-text_002dtoc"></a>
-<a name="index-table-of-contents-2"></a>
-<a name="index-toc-action-type"></a>
+<span id="index-actypes-text_002dtoc"></span>
+<span id="index-table-of-contents-2"></span>
+<span id="index-toc-action-type"></span>
 </dd>
 <dt><code>text-toc</code></dt>
 <dd><p>Jump to the text file SECTION referenced by a table of contents entry 
at point.
 </p>
-<a name="index-actypes-www_002durl"></a>
-<a name="index-URL-1"></a>
-<a name="index-World_002dwide-Web-1"></a>
-<a name="index-WWW-1"></a>
-<a name="index-browse_002durl_002dbrowser_002dfunction-1"></a>
+<span id="index-actypes-www_002durl"></span>
+<span id="index-URL-1"></span>
+<span id="index-World_002dwide-Web-1"></span>
+<span id="index-WWW-1"></span>
+<span id="index-browse_002durl_002dbrowser_002dfunction-1"></span>
 </dd>
 <dt><code>www-url</code></dt>
 <dd><p>Follow a link given by a URL.  The variable,
@@ -3448,8 +3399,8 @@ See its documentation string for details.
 </dl>
 
 
-<a name="index-action-1"></a>
-<a name="index-hui_003aebut_002dprompt_002dfor_002daction"></a>
+<span id="index-action-1"></span>
+<span id="index-hui_003aebut_002dprompt_002dfor_002daction"></span>
 <p>Action types create a convenient way of specifying button behavior
 without the need to know how to program.  Expert users who are familiar
 with Emacs Lisp, however, may find that they often want to tailor button
@@ -3462,24 +3413,22 @@ entered for the action.  An action may be any Lisp form 
that Emacs
 Lisp can evaluate.
 </p>
 <hr>
-<a name="Button-Type-Precedence"></a>
-<div class="header">
+<span id="Button-Type-Precedence"></span><div class="header">
 <p>
 Next: <a href="#Utilizing-Explicit-Buttons" accesskey="n" rel="next">Utilizing 
Explicit Buttons</a>, Previous: <a href="#Action-Types" accesskey="p" 
rel="prev">Action Types</a>, Up: <a href="#Buttons" accesskey="u" 
rel="up">Buttons</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Button-Type-Precedence-1"></a>
-<h3 class="section">3.6 Button Type Precedence</h3>
+<span id="Button-Type-Precedence-1"></span><h3 class="section">3.6 Button Type 
Precedence</h3>
 
-<a name="index-button-precedence"></a>
-<a name="index-precedence_002c-buttons"></a>
-<a name="index-button-label-overlap"></a>
+<span id="index-button-precedence"></span>
+<span id="index-precedence_002c-buttons"></span>
+<span id="index-button-label-overlap"></span>
 <p>Explicit buttons always take precedence over implicit buttons.  Thus, if
 a button selection is made which falls within both an explicit and
 implicit button, only the explicit button will be selected.  Explicit
 button labels are not allowed to overlap; Hyperbole&rsquo;s behavior in such
 cases is undefined.
 </p>
-<a name="index-ibtype_002c-evaluation-order"></a>
+<span id="index-ibtype_002c-evaluation-order"></span>
 <p>If there is no explicit button at point during a selection request,
 then each implicit button type predicate is tested in turn until one
 returns non-nil or all are exhausted.  Since two implicit button types
@@ -3492,7 +3441,7 @@ to keep this order in mind when defining new implicit 
button types.
 By making match predicates as specific as possible, one can minimize
 any overlapping implicit button domains.
 </p>
-<a name="index-type-redefinition"></a>
+<span id="index-type-redefinition"></span>
 <p>Once a type name is defined, its precedence relative to other types
 remains the same even if its body is redefined, as long as its name is
 not changed.  This allows incremental modifications to types without
@@ -3500,13 +3449,11 @@ any worry of altering their precedences.  See <a 
href="#Creating-Types">Creating
 information on how to develop or modify types.
 </p>
 <hr>
-<a name="Utilizing-Explicit-Buttons"></a>
-<div class="header">
+<span id="Utilizing-Explicit-Buttons"></span><div class="header">
 <p>
 Previous: <a href="#Button-Type-Precedence" accesskey="p" rel="prev">Button 
Type Precedence</a>, Up: <a href="#Buttons" accesskey="u" rel="up">Buttons</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Utilizing-Explicit-Buttons-1"></a>
-<h3 class="section">3.7 Utilizing Explicit Buttons</h3>
+<span id="Utilizing-Explicit-Buttons-1"></span><h3 class="section">3.7 
Utilizing Explicit Buttons</h3>
 
 <p>Explicit buttons are a fundamental building block for creating personal
 or organizational hypertext networks with Hyperbole.  This section
@@ -3514,30 +3461,28 @@ summarizes the user-level operations available for 
managing these
 buttons.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Creation" 
accesskey="1">Creation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Creation" 
accesskey="1">Creation</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Renaming" 
accesskey="2">Renaming</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Renaming" 
accesskey="2">Renaming</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Deletion" 
accesskey="3">Deletion</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Deletion" 
accesskey="3">Deletion</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Modification" 
accesskey="4">Modification</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Modification" 
accesskey="4">Modification</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Searching-and-Summarizing" 
accesskey="5">Searching and Summarizing</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Searching-and-Summarizing" 
accesskey="5">Searching and Summarizing</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Buttons-in-Mail" 
accesskey="6">Buttons in Mail</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Buttons-in-Mail" 
accesskey="6">Buttons in Mail</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Buttons-in-News" 
accesskey="7">Buttons in News</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Buttons-in-News" 
accesskey="7">Buttons in News</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Creation"></a>
-<div class="header">
+<span id="Creation"></span><div class="header">
 <p>
 Next: <a href="#Renaming" accesskey="n" rel="next">Renaming</a>, Previous: <a 
href="#Utilizing-Explicit-Buttons" accesskey="p" rel="prev">Utilizing Explicit 
Buttons</a>, Up: <a href="#Utilizing-Explicit-Buttons" accesskey="u" 
rel="up">Utilizing Explicit Buttons</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Creation-1"></a>
-<h4 class="subsection">3.7.1 Creation</h4>
+<span id="Creation-1"></span><h4 class="subsection">3.7.1 Creation</h4>
 
 <p>Creating explicit buttons is fun and easy.  You can always try them
 out immediately after creating them or can utilize the Assist Key to
@@ -3546,30 +3491,28 @@ dragging between windows with the Action Mouse Key or 
by using the
 Hyperbole menus.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#By-Dragging" 
accesskey="1">By Dragging</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Creation Via Action Key Drags
+<tr><td align="left" valign="top">&bull; <a href="#By-Dragging" 
accesskey="1">By Dragging</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Creation Via Action Key Drags
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#By-Menu" accesskey="2">By 
Menu</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Creation Via 
Menus
+<tr><td align="left" valign="top">&bull; <a href="#By-Menu" accesskey="2">By 
Menu</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Creation Via 
Menus
 </td></tr>
 </table>
 
 <hr>
-<a name="By-Dragging"></a>
-<div class="header">
+<span id="By-Dragging"></span><div class="header">
 <p>
 Next: <a href="#By-Menu" accesskey="n" rel="next">By Menu</a>, Previous: <a 
href="#Creation" accesskey="p" rel="prev">Creation</a>, Up: <a href="#Creation" 
accesskey="u" rel="up">Creation</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Creation-Via-Action-Key-Drags"></a>
-<h4 class="subsubsection">3.7.1.1 Creation Via Action Key Drags</h4>
-
-<a name="index-explicit-button-creation"></a>
-<a name="index-button-creation"></a>
-<a name="index-creating-buttons"></a>
-<a name="index-link-creation"></a>
-<a name="index-creating-links"></a>
-<a name="index-direct-link-creation"></a>
-<a name="index-mouse-drag_002c-link-creation"></a>
-<a name="index-drag"></a>
-<a name="index-Action-Key-drag"></a>
+<span id="Creation-Via-Action-Key-Drags"></span><h4 
class="subsubsection">3.7.1.1 Creation Via Action Key Drags</h4>
+
+<span id="index-explicit-button-creation"></span>
+<span id="index-button-creation"></span>
+<span id="index-creating-buttons"></span>
+<span id="index-link-creation"></span>
+<span id="index-creating-links"></span>
+<span id="index-direct-link-creation"></span>
+<span id="index-mouse-drag_002c-link-creation"></span>
+<span id="index-drag"></span>
+<span id="index-Action-Key-drag"></span>
 <p>The most efficient way to create an explicit link button interactively
 is to use the Action Mouse Key to drag from a non-read-only button
 source window to a window showing its desired link referent.  More
@@ -3620,13 +3563,11 @@ Buffer without File      link-to-buffer-tmp
 
 
 <hr>
-<a name="By-Menu"></a>
-<div class="header">
+<span id="By-Menu"></span><div class="header">
 <p>
 Previous: <a href="#By-Dragging" accesskey="p" rel="prev">By Dragging</a>, Up: 
<a href="#Creation" accesskey="u" rel="up">Creation</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Creation-Via-Menus"></a>
-<h4 class="subsubsection">3.7.1.2 Creation Via Menus</h4>
+<span id="Creation-Via-Menus"></span><h4 class="subsubsection">3.7.1.2 
Creation Via Menus</h4>
 
 <p>You may instead use the Hyperbole menus to create explicit buttons.
 First, mark a short region of text in any fashion allowed by Emacs
@@ -3647,8 +3588,8 @@ prompt you for an action type for the button.  Use the 
<kbd>{?}</kbd>
 completion list key to see the available types.  The type selected
 determines any following values for which you are prompted.
 </p>
-<a name="index-button-instance"></a>
-<a name="index-instance-number"></a>
+<span id="index-button-instance"></span>
+<span id="index-instance-number"></span>
 <p>If a previous button with the same label exists in the same buffer,
 Hyperbole will add an <em>instance number</em> to the label when it adds
 the delimiters so that the name is unique.  Thus, you don&rsquo;t have to
@@ -3658,7 +3599,7 @@ label again and delimit it yourself or copy and paste the 
button with
 its delimiters.  Hyperbole will interpret all occurrences of the same
 delimited label within a buffer as the same button.
 </p>
-<a name="index-link_002c-creation"></a>
+<span id="index-link_002c-creation"></span>
 <p>If you create link buttons using the Hyperbole menus, the best
 technique is to place on screen both the source buffer for the button
 and the buffer to which it will link.  Mark the region of text to use
@@ -3668,16 +3609,14 @@ the direct selection techniques mentioned in <a 
href="#Smart-Key-Argument-Select
 </p>
 
 <hr>
-<a name="Renaming"></a>
-<div class="header">
+<span id="Renaming"></span><div class="header">
 <p>
 Next: <a href="#Deletion" accesskey="n" rel="next">Deletion</a>, Previous: <a 
href="#Creation" accesskey="p" rel="prev">Creation</a>, Up: <a 
href="#Utilizing-Explicit-Buttons" accesskey="u" rel="up">Utilizing Explicit 
Buttons</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Renaming-1"></a>
-<h4 class="subsection">3.7.2 Renaming</h4>
+<span id="Renaming-1"></span><h4 class="subsection">3.7.2 Renaming</h4>
 
-<a name="index-explicit-button-renaming"></a>
-<a name="index-button-renaming"></a>
+<span id="index-explicit-button-renaming"></span>
+<span id="index-button-renaming"></span>
 <p>Once an explicit button has been created, its label text must be
 treated specially.  Any inter-word spacing within the label may be
 freely changed, as may happen when a paragraph is refilled, but a
@@ -3692,10 +3631,10 @@ prompt for the button label to replace and the label to 
replace it
 with and then will perform the renaming.  All occurrences of the same
 button in the buffer will be renamed.
 </p>
-<a name="index-file_002c-_002eemacs-1"></a>
-<a name="index-file_002c-hyperbole_002eel"></a>
-<a name="index-C_002dc-C_002dr"></a>
-<a name="index-hui_003aebut_002drename"></a>
+<span id="index-file_002c-_002eemacs-1"></span>
+<span id="index-file_002c-hyperbole_002eel"></span>
+<span id="index-C_002dc-C_002dr"></span>
+<span id="index-hui_003aebut_002drename"></span>
 <p>The rename command may be invoked from the Hyperbole menu via
 Ebut/Rename.  A faster method is to use a key bound to the
 <code>hui:ebut-rename</code> command.  Hyperbole typically binds this to
@@ -3706,22 +3645,20 @@ file: <code>(global-set-key &quot;\C-c\C-r&quot; 
'hui:ebut-rename)</code>.
 </p>
 
 <hr>
-<a name="Deletion"></a>
-<div class="header">
+<span id="Deletion"></span><div class="header">
 <p>
 Next: <a href="#Modification" accesskey="n" rel="next">Modification</a>, 
Previous: <a href="#Renaming" accesskey="p" rel="prev">Renaming</a>, Up: <a 
href="#Utilizing-Explicit-Buttons" accesskey="u" rel="up">Utilizing Explicit 
Buttons</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Deletion-1"></a>
-<h4 class="subsection">3.7.3 Deletion</h4>
+<span id="Deletion-1"></span><h4 class="subsection">3.7.3 Deletion</h4>
 
-<a name="index-explicit-button-deletion"></a>
-<a name="index-button-deletion"></a>
+<span id="index-explicit-button-deletion"></span>
+<span id="index-button-deletion"></span>
 <p>Ebut/Delete works similarly to the Rename command but deletes the
 selected button.  The button&rsquo;s delimiters are removed to confirm the
 deletion.  If the delete command is invoked with a prefix argument, then
 both the button label and the delimiters are removed as confirmation.
 </p>
-<a name="index-hui_003aebut_002ddelete_002dconfirm_002dp"></a>
+<span id="index-hui_003aebut_002ddelete_002dconfirm_002dp"></span>
 <p>Presently there is no way to recover a deleted button; it must
 be recreated.  Therefore, the <code>hui:ebut-delete-confirm-p</code> variable
 is true by default, causing Hyperbole to require confirmation before
@@ -3729,18 +3666,16 @@ interactively deleting explicit buttons.  Set it to 
&lsquo;<samp>nil</samp>&rsqu
 prefer no confirmation.
 </p>
 <hr>
-<a name="Modification"></a>
-<div class="header">
+<span id="Modification"></span><div class="header">
 <p>
 Next: <a href="#Searching-and-Summarizing" accesskey="n" rel="next">Searching 
and Summarizing</a>, Previous: <a href="#Deletion" accesskey="p" 
rel="prev">Deletion</a>, Up: <a href="#Utilizing-Explicit-Buttons" 
accesskey="u" rel="up">Utilizing Explicit Buttons</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Modification-1"></a>
-<h4 class="subsection">3.7.4 Modification</h4>
+<span id="Modification-1"></span><h4 class="subsection">3.7.4 Modification</h4>
 
-<a name="index-explicit-button-modification"></a>
-<a name="index-button-modification"></a>
-<a name="index-Smart-Mouse-Key-drag"></a>
-<a name="index-button-attributes"></a>
+<span id="index-explicit-button-modification"></span>
+<span id="index-button-modification"></span>
+<span id="index-Smart-Mouse-Key-drag"></span>
+<span id="index-button-attributes"></span>
 <p>Ebut/Modify prompts you with each of the elements from the button&rsquo;s
 attributes list and allows you to modify each in turn.  Ebut/Edit does
 the exact same thing and is there for people who prefer that term.
@@ -3752,17 +3687,15 @@ button with a mouse drag.  Remember that drags may also 
be emulated from
 the keyboard.  See <a href="#Creation">Creation</a>.
 </p>
 <hr>
-<a name="Searching-and-Summarizing"></a>
-<div class="header">
+<span id="Searching-and-Summarizing"></span><div class="header">
 <p>
 Next: <a href="#Buttons-in-Mail" accesskey="n" rel="next">Buttons in Mail</a>, 
Previous: <a href="#Modification" accesskey="p" rel="prev">Modification</a>, 
Up: <a href="#Utilizing-Explicit-Buttons" accesskey="u" rel="up">Utilizing 
Explicit Buttons</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Searching-and-Summarizing-1"></a>
-<h4 class="subsection">3.7.5 Searching and Summarizing</h4>
+<span id="Searching-and-Summarizing-1"></span><h4 class="subsection">3.7.5 
Searching and Summarizing</h4>
 
-<a name="index-explicit-button-summary"></a>
-<a name="index-button-summary"></a>
-<a name="index-button-help-1"></a>
+<span id="index-explicit-button-summary"></span>
+<span id="index-button-summary"></span>
+<span id="index-button-help-1"></span>
 <p>The Ebut/Help menu may be used to summarize either a single explicit
 button or all such buttons within a buffer.  The buttons summarized may
 then be activated directly from the summary.
@@ -3773,8 +3706,8 @@ the button at point.  Ebut/Help/OrderedButs summarizes 
the buttons in
 alphabetical order.  All of these summary commands eliminate duplicate
 occurrences of buttons from their help displays.
 </p>
-<a name="index-explicit-button-searching"></a>
-<a name="index-button-searching"></a>
+<span id="index-explicit-button-searching"></span>
+<span id="index-button-searching"></span>
 <p>Ebut/Search prompts for a search pattern and searches across all the
 locations in which you have previously created explicit buttons.  It
 asks you whether to match to any part of a button label or to whole
@@ -3790,17 +3723,15 @@ buttons created by others or for searching on 
particular button
 attributes.
 </p>
 <hr>
-<a name="Buttons-in-Mail"></a>
-<div class="header">
+<span id="Buttons-in-Mail"></span><div class="header">
 <p>
 Next: <a href="#Buttons-in-News" accesskey="n" rel="next">Buttons in News</a>, 
Previous: <a href="#Searching-and-Summarizing" accesskey="p" 
rel="prev">Searching and Summarizing</a>, Up: <a 
href="#Utilizing-Explicit-Buttons" accesskey="u" rel="up">Utilizing Explicit 
Buttons</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Buttons-in-Mail-1"></a>
-<h4 class="subsection">3.7.6 Buttons in Mail</h4>
+<span id="Buttons-in-Mail-1"></span><h4 class="subsection">3.7.6 Buttons in 
Mail</h4>
 
-<a name="index-C_002dx-m"></a>
-<a name="index-mail"></a>
-<a name="index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts"></a>
+<span id="index-C_002dx-m"></span>
+<span id="index-mail"></span>
+<span id="index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts"></span>
 <p>Hyperbole supports embedding buttons within electronic mail messages
 composed in Emacs.  An enhanced mail reader may then be used to
 activate the buttons within messages just like any other buttons.
@@ -3808,30 +3739,30 @@ Because this involves complex changes to mail support 
functions, this
 feature is disabled by default.  Use the Cust/Msg-Toggle-Ebuts
 minibuffer menu item to enable it.
 </p>
-<a name="index-button-mailing"></a>
-<a name="index-button-posting"></a>
-<a name="index-mailing-buttons"></a>
-<a name="index-posting-buttons"></a>
-<a name="index-mail-reader"></a>
-<a name="index-mailer-initialization"></a>
-<a name="index-Rmail"></a>
-<a name="index-VM"></a>
-<a name="index-MH_002de"></a>
-<a name="index-Gnus"></a>
-<a name="index-USENET"></a>
-<a name="index-news"></a>
-<a name="index-file_002c-hmail_002eel"></a>
-<p>Hyperbole supports the following mail readers: Rmail (see <a 
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Rmail";>Reading
+<span id="index-button-mailing"></span>
+<span id="index-button-posting"></span>
+<span id="index-mailing-buttons"></span>
+<span id="index-posting-buttons"></span>
+<span id="index-mail-reader"></span>
+<span id="index-mailer-initialization"></span>
+<span id="index-Rmail"></span>
+<span id="index-VM"></span>
+<span id="index-MH_002de"></span>
+<span id="index-Gnus"></span>
+<span id="index-USENET"></span>
+<span id="index-news"></span>
+<span id="index-file_002c-hmail_002eel"></span>
+<p>Hyperbole supports the following mail readers: Rmail (see <a 
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Rmail";>Reading
 Mail with Rmail</a> in <cite>the GNU Emacs Manual</cite>), VM (see <a 
href="vm.html#Introduction">Introduction</a> in <cite>the VM Manual</cite>) and 
MH-e.  Button inclusion and activation within USENET news
 articles is also supported in the same fashion via the Gnus news reader if
-available at your site (see <a 
href="http://www.gnu.org/software/emacs/manual/html_mono/gnus.html#Top";>The 
Gnus Newsreader</a> in <cite>the Gnus
+available at your site (see <a 
href="https://www.gnu.org/software/emacs/manual/html_mono/gnus.html#Top";>The 
Gnus Newsreader</a> in <cite>the Gnus
 Manual</cite>).  (The <samp>hmail.el</samp> file defines a generalized 
interface that can
 be used to hook in other mail or news readers if the necessary interface
 functions are written.)
 </p>
-<a name="index-mail_002dyank_002doriginal"></a>
-<a name="index-C_002dc-C_002dy"></a>
-<a name="index-mail-inclusion"></a>
+<span id="index-mail_002dyank_002doriginal"></span>
+<span id="index-C_002dc-C_002dy"></span>
+<span id="index-mail-inclusion"></span>
 <p>All explicit buttons to be mailed must be created within the outgoing
 message buffer. There is no present support for including text from
 other buffers or files which contain explicit buttons, except for the
@@ -3859,9 +3790,9 @@ to a non-Hyperbole user.  The user will simply see the 
text
 of the message followed by a series of lines of button data at its end.
 Hyperbole mail users never see this data in its raw form.
 </p>
-<a name="index-smail_003acomment"></a>
-<a name="index-mail-comment"></a>
-<a name="index-Hyperbole-mail-comment"></a>
+<span id="index-smail_003acomment"></span>
+<span id="index-mail-comment"></span>
+<span id="index-Hyperbole-mail-comment"></span>
 <p>In order to alert readers of your mail messages that you can handle
 Hyperbole mail buttons, you can set the variable, <code>smail:comment</code>,
 to an expression that automatically inserts a comment into each
@@ -3883,11 +3814,11 @@ Hyperbole.
 <pre class="example">Comments: GNU Hyperbole mail buttons accepted, vX.X.X.
 </pre></div>
 
-<a name="index-file_002c-_002eemacs-2"></a>
+<span id="index-file_002c-_002eemacs-2"></span>
 <p>where the X&rsquo;s indicate your Hyperbole version number.  You can cut
 this out of particular messages before you send them when need be.
 </p>
-<a name="index-actype_002c-link_002dto_002dmail"></a>
+<span id="index-actype_002c-link_002dto_002dmail"></span>
 <p>A final mail-related facility provided by Hyperbole is the ability to
 save a pointer to a received mail message by creating an explicit button
 with a <code>link-to-mail</code> action type.  When prompted for the mail
@@ -3897,21 +3828,19 @@ described in <a 
href="#Smart-Key-Argument-Selection">Smart Key Argument Selectio
 </p>
 
 <hr>
-<a name="Buttons-in-News"></a>
-<div class="header">
+<span id="Buttons-in-News"></span><div class="header">
 <p>
 Previous: <a href="#Buttons-in-Mail" accesskey="p" rel="prev">Buttons in 
Mail</a>, Up: <a href="#Utilizing-Explicit-Buttons" accesskey="u" 
rel="up">Utilizing Explicit Buttons</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Buttons-in-News-1"></a>
-<h4 class="subsection">3.7.7 Buttons in News</h4>
+<span id="Buttons-in-News-1"></span><h4 class="subsection">3.7.7 Buttons in 
News</h4>
 
-<a name="index-button-posting-1"></a>
-<a name="index-news-reader_002fposter"></a>
-<a name="index-posting-news"></a>
-<a name="index-Gnus-1"></a>
-<a name="index-USENET-1"></a>
-<a name="index-file_002c-hyperbole_002eel-1"></a>
-<a name="index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts-1"></a>
+<span id="index-button-posting-1"></span>
+<span id="index-news-reader_002fposter"></span>
+<span id="index-posting-news"></span>
+<span id="index-Gnus-1"></span>
+<span id="index-USENET-1"></span>
+<span id="index-file_002c-hyperbole_002eel-1"></span>
+<span id="index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts-1"></span>
 <p>Explicit buttons may be embedded within outgoing USENET news articles
 and may be activated from within the Gnus news reader.  Because this
 involves complex changes to news support functions, this feature is
@@ -3936,7 +3865,7 @@ therefore limit distribution of such messages.  For 
example, if most
 people at your site read news with Gnus and use Hyperbole, it would be
 reasonable to embed buttons in postings to local newsgroups.
 </p>
-<a name="index-news-comment"></a>
+<span id="index-news-comment"></span>
 <p>In order to alert readers of your postings that they may send you
 personal replies with embedded Hyperbole buttons, the system inserts
 into news postings the same comment that is included within mail
@@ -3946,22 +3875,20 @@ explanation of how to turn this feature on.
 
 
 <hr>
-<a name="Menus"></a>
-<div class="header">
+<span id="Menus"></span><div class="header">
 <p>
 Next: <a href="#HyControl" accesskey="n" rel="next">HyControl</a>, Previous: 
<a href="#Buttons" accesskey="p" rel="prev">Buttons</a>, Up: <a href="#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Menus-1"></a>
-<h2 class="chapter">4 Menus</h2>
-
-<a name="index-Emacs-1"></a>
-<a name="index-Hyperbole-menubar-menu"></a>
-<a name="index-Hyperbole-pulldown-menu"></a>
-<a name="index-menu-use"></a>
-<a name="index-pulldown-menu"></a>
-<a name="index-menubar_002c-Hyperbole-menu"></a>
-<a name="index-menu-item_002c-Remove_002dThis_002dMenu"></a>
-<a name="index-removing-Hyperbole-menu"></a>
+<span id="Menus-1"></span><h2 class="chapter">4 Menus</h2>
+
+<span id="index-Emacs-1"></span>
+<span id="index-Hyperbole-menubar-menu"></span>
+<span id="index-Hyperbole-pulldown-menu"></span>
+<span id="index-menu-use"></span>
+<span id="index-pulldown-menu"></span>
+<span id="index-menubar_002c-Hyperbole-menu"></span>
+<span id="index-menu-item_002c-Remove_002dThis_002dMenu"></span>
+<span id="index-removing-Hyperbole-menu"></span>
 <p>Pulldown and popup menus are available to invoke Hyperbole commands,
 including those from the HyRolo and the Koutliner.  These menus operate
 like any other application menus and are fairly self-explanatory.  Use
@@ -3970,25 +3897,25 @@ get rid of the menu if you do not need it.  Invoking 
Hyperbole from
 the keyboard, as explained below, will add the menu back to the
 menubar.  Here is the Hyperbole Menubar Menu and its Find submenu.
 </p>
-<div class="float"><a name="image_003aHyperbole-Menu"></a>
+<div class="float"><span id="image_003aHyperbole-Menu"></span>
 
 <img src="im/menu-hyperbole.png" alt="Hyperbole Menu">
 <div class="float-caption"><p><strong>Image 4.1: </strong>Hyperbole Menubar 
Menu</p></div></div>
-<div class="float"><a name="image_003aFind-Menu"></a>
+<div class="float"><span id="image_003aFind-Menu"></span>
 
 <img src="im/menu-find.png" alt="Find Menu">
 <div class="float-caption"><p><strong>Image 4.2: </strong>Find Menubar 
Menu</p></div></div><br>
 
-<a name="index-hyperbole_002dpopup_002dmenu"></a>
-<a name="index-popup-menu"></a>
-<a name="index-hyperbole-popup-menu"></a>
+<span id="index-hyperbole_002dpopup_002dmenu"></span>
+<span id="index-popup-menu"></span>
+<span id="index-hyperbole-popup-menu"></span>
 <p>The Hyperbole popup menu, <code>hyperbole-popup-menu</code>, replicates the
 Hyperbole menubar menu.  It can be bound to a mouse key but is not
 bound to one by default.   It can also be assigned as the default
 Action or Assist Key action to use when no matching context is found.
 See <a href="#Smart-Key-_002d-Default-Context">Smart Key - Default 
Context</a>, for details.
 </p>
-<a name="index-minibuffer-menus"></a>
+<span id="index-minibuffer-menus"></span>
 <p>The rest of this section discusses only the
 specialized <em>minibuffer menus</em> which appear in the minibuffer
 window and work with all emacs versions on all display devices.
@@ -3997,31 +3924,31 @@ but additionally allow for fast menu item selection via 
the keyboard
 or mouse.  When used with the keyboard, they provide command access
 similar to key bindings.
 </p>
-<a name="index-C_002dh-h"></a>
-<a name="index-minibuffer-menu"></a>
-<a name="index-file_002c-hyperbole_002eel-2"></a>
-<a name="index-invoking-Hyperbole"></a>
-<a name="index-starting-Hyperbole"></a>
-<a name="index-Hyperbole_002c-starting"></a>
-<a name="index-Hyperbole-main-menu"></a>
+<span id="index-C_002dh-h"></span>
+<span id="index-minibuffer-menu"></span>
+<span id="index-file_002c-hyperbole_002eel-2"></span>
+<span id="index-invoking-Hyperbole"></span>
+<span id="index-starting-Hyperbole"></span>
+<span id="index-Hyperbole_002c-starting"></span>
+<span id="index-Hyperbole-main-menu"></span>
 <p>The top-level Hyperbole minibuffer menu is invoked from a key given in your
 <samp>hyperbole.el</samp> file (by default, <kbd>{C-h h}</kbd>) or with a click
 of the Action Mouse Key in the minibuffer when it is inactive.  It should
 look like this:
 </p>
-<div class="smallexample">
-<pre class="smallexample">Hy&gt;  Act Butfile/ Cust/ Doc/ Ebut/ Find/ Gbut/ 
Hist Ibut/ Kotl/ Msg/ Rolo/ Screen/ Win/
+<div class="example">
+<pre class="example">Hy&gt;  Act Butfile/ Cust/ Doc/ Ebut/ Find/ Gbut/ Hist 
Ibut/ Kotl/ Msg/ Rolo/ Screen/ Win/
 </pre></div>
 
-<a name="index-submenus"></a>
-<a name="index-menu-help"></a>
-<a name="index-help_002c-menu-items"></a>
-<a name="index-menu-item-selection"></a>
-<a name="index-selection_002c-menu-items"></a>
-<a name="index-TAB"></a>
-<a name="index-M_002df"></a>
-<a name="index-Shift_002d"></a>
-<a name="index-M_002db"></a>
+<span id="index-submenus"></span>
+<span id="index-menu-help"></span>
+<span id="index-help_002c-menu-items"></span>
+<span id="index-menu-item-selection"></span>
+<span id="index-selection_002c-menu-items"></span>
+<span id="index-TAB"></span>
+<span id="index-M_002df"></span>
+<span id="index-Shift_002d"></span>
+<span id="index-M_002db"></span>
 <p>All menu items are selected via the first character of their names (letter
 case does not matter), with presses of the Action Key or by using
 {<tt class="key">TAB</tt>} or <kbd>{M-f}</kbd> to move forward an item, 
<kbd>{Shift-<span class="key">TAB</span>}</kbd>
@@ -4030,12 +3957,12 @@ current item.  A press of the Assist Key on an item 
displays help for the
 item, including the action that it performs.  &quot;/&quot; at the end of an 
item name
 indicates that it brings up a submenu.
 </p>
-<a name="index-C_002dt"></a>
-<a name="index-q"></a>
-<a name="index-C_002dg"></a>
-<a name="index-menu_002c-top_002dlevel"></a>
-<a name="index-top_002dlevel-menu"></a>
-<a name="index-menu-prefix"></a>
+<span id="index-C_002dt"></span>
+<span id="index-q"></span>
+<span id="index-C_002dg"></span>
+<span id="index-menu_002c-top_002dlevel"></span>
+<span id="index-top_002dlevel-menu"></span>
+<span id="index-menu-prefix"></span>
 <p>While a menu is active, to re-activate the top-level Hyperbole menu,
 use <kbd>{C-t}</kbd> or press the Action Key while on the menu prefix
 (before the &lsquo;<samp>&gt;</samp>&rsquo; character).  This allows you to 
browse the
@@ -4047,18 +3974,18 @@ are at a menu prompt or any other Hyperbole prompt.
 <p>The top-level Hyperbole minibuffer menu items serve the following purposes:
 </p>
 <dl compact="compact">
-<dd><a name="index-menu-item_002c-Act"></a>
-<a name="index-menu-item_002c-Activate_002dButton_002dat_002dPoint"></a>
+<dd><span id="index-menu-item_002c-Act"></span>
+<span id="index-menu-item_002c-Activate_002dButton_002dat_002dPoint"></span>
 </dd>
 <dt><strong>Act</strong></dt>
 <dd><p>Activation of any button at point.  If there is no button at
 point, it prompts for the label of an explicit button within the
 current buffer to activate.
 </p>
-<a name="index-menu_002c-Button_002dFile"></a>
-<a name="index-menu_002c-Butfile"></a>
-<a name="index-button-file_002c-HYPB"></a>
-<a name="index-file_002c-HYPB"></a>
+<span id="index-menu_002c-Button_002dFile"></span>
+<span id="index-menu_002c-Butfile"></span>
+<span id="index-button-file_002c-HYPB"></span>
+<span id="index-file_002c-HYPB"></span>
 </dd>
 <dt><strong>Butfile/</strong></dt>
 <dd><p>Easy access to a directory-specific or personal file of buttons.
@@ -4066,10 +3993,10 @@ current buffer to activate.
 <samp>~/.hyperb/HYPB</samp> is the personal file of global buttons.
 These are good places to begin experimenting with button creation.
 </p>
-<a name="index-menu_002c-Customize"></a>
-<a name="index-menu_002c-Cust"></a>
-<a name="index-customize"></a>
-<a name="index-option-settings"></a>
+<span id="index-menu_002c-Customize"></span>
+<span id="index-menu_002c-Cust"></span>
+<span id="index-customize"></span>
+<span id="index-option-settings"></span>
 </dd>
 <dt><strong>Cust/</strong></dt>
 <dd><p>Hyperbole option customization.  This includes whether ftp and www
@@ -4080,9 +4007,9 @@ entries, and whether to use proportional or windowful 
scrolling when a
 Smart Key is pressed at the end of a line.
 See <a href="#Customization">Customization</a>.
 </p>
-<a name="index-menu_002c-KeyBindings"></a>
-<a name="index-key-binding_002c-menu"></a>
-<a name="index-mouse-bindings"></a>
+<span id="index-menu_002c-KeyBindings"></span>
+<span id="index-key-binding_002c-menu"></span>
+<span id="index-mouse-bindings"></span>
 <p>The &lsquo;<samp>KeyBindings/</samp>&rsquo; submenu allows individual 
changes to each
 keyboard key that Hyperbole binds for its commands, notably the Action
 Key.  See <a href="#Smart-Key-Bindings">Smart Key Bindings</a>, for more 
information.
@@ -4091,17 +4018,17 @@ Key.  See <a href="#Smart-Key-Bindings">Smart Key 
Bindings</a>, for more informa
 global key bindings, how to temporarily disable them and how to manage
 its overriding of local bindings that hide global Hyperbole keys.
 </p>
-<a name="index-menu_002c-Explicit_002dButton"></a>
-<a name="index-menu_002c-EBut"></a>
+<span id="index-menu_002c-Explicit_002dButton"></span>
+<span id="index-menu_002c-EBut"></span>
 </dd>
 <dt><strong>Ebut/</strong></dt>
 <dd><p>All explicit button commands.  The window-system-based Hyperbole
 menu includes an activation menu item for each explicit button found
 in the current buffer.
 </p>
-<a name="index-menu_002c-Documentation"></a>
-<a name="index-menu_002c-Doc"></a>
-<a name="index-menu_002c-Types"></a>
+<span id="index-menu_002c-Documentation"></span>
+<span id="index-menu_002c-Doc"></span>
+<span id="index-menu_002c-Types"></span>
 </dd>
 <dt><strong>Doc/</strong></dt>
 <dd><p>Hyperbole documentation quick access.  This menu contains an About item
@@ -4109,10 +4036,10 @@ which describes Hyperbole and a Demo item which 
demonstrates a number of
 interactive Hyperbole features.  It also contains the Types/ submenu for
 documentation on Hyperbole implicit button and action types.
 </p>
-<a name="index-Find"></a>
-<a name="index-Grep"></a>
-<a name="index-menu_002c-Find"></a>
-<a name="index-search"></a>
+<span id="index-Find"></span>
+<span id="index-Grep"></span>
+<span id="index-menu_002c-Find"></span>
+<span id="index-search"></span>
 </dd>
 <dt><strong>Find/</strong></dt>
 <dd><p>Buffer and file line finding commands and web searching.  This menu
@@ -4125,19 +4052,19 @@ access to popular web search engines.
 </p>
 <p>Below are each of the commands on the Find menu.
 </p>
-<a name="index-match-lines-2"></a>
-<a name="index-remove-lines"></a>
-<a name="index-save-lines"></a>
-<a name="index-locate-files"></a>
-<a name="index-grep-files"></a>
-<a name="index-menu-item_002c-GrepFile"></a>
-<a name="index-menu-item_002c-LocateFiles"></a>
-<a name="index-menu-item_002c-MatchFileBuffers"></a>
-<a name="index-menu-item_002c-OccurHere"></a>
-<a name="index-menu-item_002c-RemoveLines"></a>
-<a name="index-menu-item_002c-SaveLines"></a>
-<a name="index-hypb_003argrep_002dcommand"></a>
-<a name="index-locate_002dcommand"></a>
+<span id="index-match-lines-2"></span>
+<span id="index-remove-lines"></span>
+<span id="index-save-lines"></span>
+<span id="index-locate-files"></span>
+<span id="index-grep-files"></span>
+<span id="index-menu-item_002c-GrepFile"></span>
+<span id="index-menu-item_002c-LocateFiles"></span>
+<span id="index-menu-item_002c-MatchFileBuffers"></span>
+<span id="index-menu-item_002c-OccurHere"></span>
+<span id="index-menu-item_002c-RemoveLines"></span>
+<span id="index-menu-item_002c-SaveLines"></span>
+<span id="index-hypb_003argrep_002dcommand"></span>
+<span id="index-locate_002dcommand"></span>
 <ul>
 <li> GrepFiles -        Show numbered line matches for a regexp in all
                    non-backup, non-auto-save files below the current directory.
@@ -4161,12 +4088,12 @@ access to popular web search engines.
 </li><li> RemoveLines -      Following point, remove all lines that match 
regexp.
 
 </li><li> SaveLines -        Following point, keep only lines that match 
regexp.
-<a name="index-menu_002c-Find_002fWeb"></a>
-<a name="index-menu_002c-Web"></a>
-<a name="index-searching-the-web"></a>
-<a name="index-web-search"></a>
-<a name="index-C_002dc-_002f"></a>
-<a name="index-hyperbole_002dweb_002dsearch_002dbrowser_002dfunction"></a>
+<span id="index-menu_002c-Find_002fWeb"></span>
+<span id="index-menu_002c-Web"></span>
+<span id="index-searching-the-web"></span>
+<span id="index-web-search"></span>
+<span id="index-C_002dc-_002f"></span>
+<span id="index-hyperbole_002dweb_002dsearch_002dbrowser_002dfunction"></span>
 
 </li><li> Web/ -             Select a search engine and term and search with 
them.
                    Hyperbole binds the key <kbd>{C-c /}</kbd> for quick
@@ -4180,60 +4107,60 @@ access to popular web search engines.
 
 <p>The Find/Web menu looks like this:
 </p>
-<div class="smallexample">
-<pre class="smallexample">Web&gt;  Amazon Bing Dictionary Elisp Facebook 
Google Hub(git)
+<div class="example">
+<pre class="example">Web&gt;  Amazon Bing Dictionary Elisp Facebook Google 
Hub(git)
       Images Maps RFCs StackOverflow Twitter Wikipedia Youtube
 </pre></div>
 </li></ul>
 
-<a name="index-menu_002c-Global_002dButton-1"></a>
-<a name="index-menu_002c-Gbut-1"></a>
+<span id="index-menu_002c-Global_002dButton-1"></span>
+<span id="index-menu_002c-Gbut-1"></span>
 </dd>
 <dt><strong>Gbut/</strong></dt>
 <dd><p>All global button commands.  Global buttons are accessed by name
 rather than by direct selection.  The Hyperbole menubar menu also
 includes an activation menu item for each global button.
-<a name="index-menu-item_002c-Back_002dto_002dPrior_002dLocation"></a>
-<a name="index-menu-item_002c-Hist"></a>
-<a name="index-history"></a>
+<span id="index-menu-item_002c-Back_002dto_002dPrior_002dLocation"></span>
+<span id="index-menu-item_002c-Hist"></span>
+<span id="index-history"></span>
 </p></dd>
 <dt><strong>Hist</strong></dt>
 <dd><p>Return to previous positions in the button traversal history.
 </p>
-<a name="index-menu_002c-Implicit_002dButton"></a>
-<a name="index-menu_002c-Ibut"></a>
+<span id="index-menu_002c-Implicit_002dButton"></span>
+<span id="index-menu_002c-Ibut"></span>
 </dd>
 <dt><strong>Ibut/</strong></dt>
 <dd><p>All implicit button commands.
 </p>
-<a name="index-menu_002c-Mail_002dLists"></a>
-<a name="index-menu_002c-Msg"></a>
+<span id="index-menu_002c-Mail_002dLists"></span>
+<span id="index-menu_002c-Msg"></span>
 </dd>
 <dt><strong>Msg/</strong></dt>
 <dd><p>Hyperbole-specific email messaging commands.  Use this to send mail to
 a Hyperbole discussion mailing list.
 </p>
-<a name="index-menu_002c-Outliner"></a>
-<a name="index-menu_002c-Koutline"></a>
-<a name="index-menu_002c-Kotl"></a>
+<span id="index-menu_002c-Outliner"></span>
+<span id="index-menu_002c-Koutline"></span>
+<span id="index-menu_002c-Kotl"></span>
 </dd>
 <dt><strong>Kotl/</strong></dt>
 <dd><p>Autonumbered, structured outliner commands with per-node hyperlink 
anchors.
 See <a href="#Koutliner">Koutliner</a>.
 </p>
-<a name="index-menu_002c-Rolo"></a>
+<span id="index-menu_002c-Rolo"></span>
 </dd>
 <dt><strong>Rolo/</strong></dt>
 <dd><p>Hierarchical, multi-file contact manager lookup and edit commands.
 See <a href="#HyRolo">HyRolo</a>.
 </p>
-<a name="index-menu_002c-Screen"></a>
+<span id="index-menu_002c-Screen"></span>
 </dd>
 <dt><strong>Screen/</strong></dt>
 <dd><p>Window, frame and buffer display control commands.  See <a 
href="#HyControl">HyControl</a>.
 </p>
-<a name="index-menu_002c-Window_002dConfigurations"></a>
-<a name="index-menu_002c-WinConfig"></a>
+<span id="index-menu_002c-Window_002dConfigurations"></span>
+<span id="index-menu_002c-WinConfig"></span>
 </dd>
 <dt><strong>Win/</strong></dt>
 <dd><p>Window configuration management commands, such as adding and restoring
@@ -4243,21 +4170,19 @@ window configurations by name.  See <a 
href="#Window-Configurations">Window Conf
 </dl>
 
 <hr>
-<a name="HyControl"></a>
-<div class="header">
+<span id="HyControl"></span><div class="header">
 <p>
 Next: <a href="#Koutliner" accesskey="n" rel="next">Koutliner</a>, Previous: 
<a href="#Menus" accesskey="p" rel="prev">Menus</a>, Up: <a href="#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="HyControl-1"></a>
-<h2 class="chapter">5 HyControl</h2>
+<span id="HyControl-1"></span><h2 class="chapter">5 HyControl</h2>
 
-<a name="index-windows-control"></a>
-<a name="index-frames-control"></a>
-<a name="index-HyControl"></a>
-<a name="index-invoking-HyControl"></a>
-<a name="index-starting-HyControl"></a>
-<a name="index-screen"></a>
-<a name="index-display"></a>
+<span id="index-windows-control"></span>
+<span id="index-frames-control"></span>
+<span id="index-HyControl"></span>
+<span id="index-invoking-HyControl"></span>
+<span id="index-starting-HyControl"></span>
+<span id="index-screen"></span>
+<span id="index-display"></span>
 <p>Hyperbole includes the fastest, easiest-to-use Emacs window and frame
 management system available, HyControl, found under the Hyperbole
 Screen menu.  If you use a lot of Emacs windows or frames (typically,
@@ -4268,14 +4193,14 @@ down to the pixel-level if desired.  You adjust the 
location, size and
 display elements of your windows and frames until they look as you like
 and then simply quit HyControl and go back to work.
 </p>
-<a name="index-C_002dc-_005c"></a>
-<a name="index-screen_002c-C_002dc-_005c"></a>
-<a name="index-C_002dh-h-s-w"></a>
-<a name="index-screen_002c-C_002dh-h-s-w"></a>
-<a name="index-C_002dh-h-s-f"></a>
-<a name="index-screen_002c-C_002dh-h-s-f"></a>
-<a name="index-menu-item_002c-WindowsControl"></a>
-<a name="index-menu-item_002c-FramesControl"></a>
+<span id="index-C_002dc-_005c"></span>
+<span id="index-screen_002c-C_002dc-_005c"></span>
+<span id="index-C_002dh-h-s-w"></span>
+<span id="index-screen_002c-C_002dh-h-s-w"></span>
+<span id="index-C_002dh-h-s-f"></span>
+<span id="index-screen_002c-C_002dh-h-s-f"></span>
+<span id="index-menu-item_002c-WindowsControl"></span>
+<span id="index-menu-item_002c-FramesControl"></span>
 <p>Hyperbole binds the key <kbd>{C-c \}</kbd> for quick access to 
HyControl&rsquo;s
 window control menu, if it was not already bound prior to Hyperbole&rsquo;s
 initialization; otherwise, the Screen/WindowsControl minibuffer menu
@@ -4283,10 +4208,10 @@ item, <kbd>{C-h h s w}</kbd>, will do the same thing.  
To start HyControl
 with the frames menu instead, use Screen/FramesControl, <kbd>{C-h h s
 f}</kbd>.
 </p>
-<a name="index-submodes"></a>
-<a name="index-screen_002c-t"></a>
-<a name="index-screen_002c-q"></a>
-<a name="index-screen_002c-Q"></a>
+<span id="index-submodes"></span>
+<span id="index-screen_002c-t"></span>
+<span id="index-screen_002c-q"></span>
+<span id="index-screen_002c-Q"></span>
 <p>Once in HyControl, your minibuffer window at the bottom of the
 selected frame will display a summary of keys you may use to adjust
 your windows until you press <kbd>{q}</kbd> or <kbd>{Q}</kbd> to quit from
@@ -4294,8 +4219,8 @@ HyControl.  The key, <kbd>{t}</kbd>, will always toggle 
between controlling
 frames and windows, the <em>submodes</em> of HyControl, with the upper
 left of the minibuffer prompt showing which type of control is active.
 </p>
-<a name="index-numeric-argument"></a>
-<a name="index-multiplier"></a>
+<span id="index-numeric-argument"></span>
+<span id="index-multiplier"></span>
 <p>A number of commands take a single numeric argument, e.g. movement and
 sizing, which you can enter by typing a period to clear the argument,
 followed by any positive number up to 1000.  You may also use
@@ -4309,32 +4234,32 @@ and frame submodes.
 </p>
 <dl compact="compact">
 <dd>
-<a name="index-HyControl-help"></a>
-<a name="index-HyControl_002c-see-screen"></a>
-<a name="index-screen_002c-_003f"></a>
-<a name="index-_003f"></a>
+<span id="index-HyControl-help"></span>
+<span id="index-HyControl_002c-see-screen"></span>
+<span id="index-screen_002c-_003f"></span>
+<span id="index-_003f"></span>
 </dd>
 <dt><kbd>{?}</kbd></dt>
 <dd><p>Toggle whether HyControl displays key binding help in the minibuffer.
 </p>
-<a name="index-HyControl_002c-see-screen-1"></a>
-<a name="index-screen_002c-_002e"></a>
-<a name="index-_002e"></a>
+<span id="index-HyControl_002c-see-screen-1"></span>
+<span id="index-screen_002c-_002e"></span>
+<span id="index-_002e"></span>
 </dd>
 <dt><kbd>{.}</kbd></dt>
 <dd><p>Clear the prefix argument to a value of 0.
 </p>
-<a name="index-screen_002c-0_002d9"></a>
-<a name="index-0_002d9"></a>
+<span id="index-screen_002c-0_002d9"></span>
+<span id="index-0_002d9"></span>
 </dd>
 <dt><kbd>{0-9}</kbd></dt>
 <dd><p>Multiply the prefix argument by 10 and add the digit pressed.
 </p>
-<a name="index-windows-grid"></a>
-<a name="index-grid-of-windows"></a>
-<a name="index-HyControl-windows-grid"></a>
-<a name="index-screen_002c-_0040"></a>
-<a name="index-_0040"></a>
+<span id="index-windows-grid"></span>
+<span id="index-grid-of-windows"></span>
+<span id="index-HyControl-windows-grid"></span>
+<span id="index-screen_002c-_0040"></span>
+<span id="index-_0040"></span>
 </dd>
 <dt><kbd>{@}</kbd></dt>
 <dd>
@@ -4343,7 +4268,7 @@ the prefix argument or via a prompted input.  Left digit 
of the argument is
 the number of grid rows and the right digit is the number of grid columns
 to display.
 </p>
-<div class="float"><a name="image_003a2x3_002dWindows_002dGrid"></a>
+<div class="float"><span id="image_003a2x3_002dWindows_002dGrid"></span>
 
 <img src="im/wgrid-2x3.png" alt="2x3 Windows Grid">
 <div class="float-caption"><p><strong>Image 5.1: </strong>2x3 Windows 
Grid</p></div></div><br>
@@ -4354,7 +4279,7 @@ should be displayed first in the grid windows, then 
prompt for the grid size.
 <p>Otherwise, prompt for the grid size if the prefix argument is an invalid
 size.
 </p>
-<a name="index-hycontrol_002ddisplay_002dbuffer_002dpredicate_002dlist"></a>
+<span 
id="index-hycontrol_002ddisplay_002dbuffer_002dpredicate_002dlist"></span>
 <p>With a current buffer in Dired, Buffer Menu or IBuffer mode that
 contains marked items, the buffers associated with those items are
 displayed first in the grid (unless the prefix argument is 0).
@@ -4376,10 +4301,10 @@ following commands from using the often large grid size 
argument.
 repeatedly prompt you for a grid size and then display it.  When you
 are done, simply press <kbd>{<span class="key">RET</span>}</kbd> to exit.
 </p>
-<a name="index-frame-resize"></a>
-<a name="index-hycontrol_002dframe_002dwidths"></a>
-<a name="index-screen_002c-a"></a>
-<a name="index-a"></a>
+<span id="index-frame-resize"></span>
+<span id="index-hycontrol_002dframe_002dwidths"></span>
+<span id="index-screen_002c-a"></span>
+<span id="index-a"></span>
 </dd>
 <dt><kbd>{a}</kbd></dt>
 <dd><p>Cycle through common width adjustments of a frame, such as 25% and
@@ -4387,82 +4312,82 @@ are done, simply press <kbd>{<span 
class="key">RET</span>}</kbd> to exit.
 <code>hycontrol-frame-widths</code> and typically go from widest to
 narrowest.
 </p>
-<a name="index-hycontrol_002dframe_002dheights"></a>
-<a name="index-screen_002c-A"></a>
-<a name="index-A"></a>
+<span id="index-hycontrol_002dframe_002dheights"></span>
+<span id="index-screen_002c-A"></span>
+<span id="index-A"></span>
 </dd>
 <dt><kbd>{A}</kbd></dt>
 <dd><p>Cycle through common height adjustments of a frame, such as 33.3% and
 75%.  Heights are given in screen percentages by the list
 <code>hycontrol-frame-heights</code> and typically go from tallest to shortest.
 </p>
-<a name="index-screen_002c-h"></a>
-<a name="index-h"></a>
+<span id="index-screen_002c-h"></span>
+<span id="index-h"></span>
 </dd>
 <dt><kbd>{h}</kbd></dt>
 <dd><p>Increase height by argument lines (line height determined by buffer
 character height).
 </p>
-<a name="index-screen_002c-s"></a>
-<a name="index-s"></a>
+<span id="index-screen_002c-s"></span>
+<span id="index-s"></span>
 </dd>
 <dt><kbd>{s}</kbd></dt>
 <dd><p>Shorten height by argument lines.
 </p>
-<a name="index-screen_002c-w"></a>
-<a name="index-w"></a>
+<span id="index-screen_002c-w"></span>
+<span id="index-w"></span>
 </dd>
 <dt><kbd>{w}</kbd></dt>
 <dd><p>Widen by argument characters.
 </p>
-<a name="index-screen_002c-n"></a>
-<a name="index-n"></a>
+<span id="index-screen_002c-n"></span>
+<span id="index-n"></span>
 </dd>
 <dt><kbd>{n}</kbd></dt>
 <dd><p>Narrow by argument characters.
 </p>
-<a name="index-screen_002c-_0025"></a>
-<a name="index-_0025"></a>
+<span id="index-screen_002c-_0025"></span>
+<span id="index-_0025"></span>
 </dd>
 <dt><kbd>{%}</kbd></dt>
 <dd><p>In FRAMES mode, resize frame&rsquo;s height and width to about argument 
percent
 of the screen size.
 </p>
-<a name="index-screen_002c-H"></a>
-<a name="index-H"></a>
+<span id="index-screen_002c-H"></span>
+<span id="index-H"></span>
 </dd>
 <dt><kbd>{H}</kbd></dt>
 <dd><p>In FRAMES mode, resize frame&rsquo;s height to about argument percent 
of the
 screen size.
 </p>
-<a name="index-screen_002c-W"></a>
-<a name="index-W"></a>
+<span id="index-screen_002c-W"></span>
+<span id="index-W"></span>
 </dd>
 <dt><kbd>{W}</kbd></dt>
 <dd><p>In FRAMES mode, resize frame&rsquo;s width to about argument percent of 
the
 screen size.
 </p>
-<a name="index-screen_002c-up"></a>
-<a name="index-screen_002c-down"></a>
-<a name="index-screen_002c-left"></a>
-<a name="index-screen_002c-right"></a>
-<a name="index-up"></a>
+<span id="index-screen_002c-up"></span>
+<span id="index-screen_002c-down"></span>
+<span id="index-screen_002c-left"></span>
+<span id="index-screen_002c-right"></span>
+<span id="index-up"></span>
 </dd>
 <dt><kbd>{up}</kbd></dt>
-<dd><a name="index-down"></a>
+<dd><span id="index-down"></span>
 </dd>
 <dt><kbd>{down}</kbd></dt>
-<dd><a name="index-left"></a>
+<dd><span id="index-left"></span>
 </dd>
 <dt><kbd>{left}</kbd></dt>
-<dd><a name="index-right"></a>
+<dd><span id="index-right"></span>
 </dd>
 <dt><kbd>{right}</kbd></dt>
 <dd><p>Move frame in the specified direction by argument pixels.
 </p>
-<a name="index-frame-relocate"></a>
-<a name="index-screen_002c-c"></a>
-<a name="index-c"></a>
+<span id="index-frame-relocate"></span>
+<span id="index-screen_002c-c"></span>
+<span id="index-c"></span>
 </dd>
 <dt><kbd>{c}</kbd></dt>
 <dd><p>With each press, cycle the selected frame&rsquo;s position clockwise 
through
@@ -4470,47 +4395,47 @@ the middle of edges and corners of the screen.  With an 
argument of 0,
 reset the cycle position to the upper left corner.  Respects the pixel
 edge offsets returned by <code>hycontrol-get-screen-offsets</code>.
 </p>
-<a name="index-delete-frame"></a>
-<a name="index-frame_002c-delete"></a>
-<a name="index-screen_002c-d"></a>
-<a name="index-d"></a>
+<span id="index-delete-frame"></span>
+<span id="index-frame_002c-delete"></span>
+<span id="index-screen_002c-d"></span>
+<span id="index-d"></span>
 </dd>
 <dt><kbd>{d}</kbd></dt>
 <dd><p>Delete selected window or frame based on mode.
-<a name="index-screen_002c-D"></a>
-<a name="index-D"></a>
+<span id="index-screen_002c-D"></span>
+<span id="index-D"></span>
 </p></dd>
 <dt><kbd>{D}</kbd></dt>
 <dd><p>Prompt for confirmation and then delete non-selected windows or frames
 based on mode.
 </p>
-<a name="index-frame_002c-lower"></a>
-<a name="index-lower-frame"></a>
-<a name="index-screen_002c-l"></a>
-<a name="index-l"></a>
+<span id="index-frame_002c-lower"></span>
+<span id="index-lower-frame"></span>
+<span id="index-screen_002c-l"></span>
+<span id="index-l"></span>
 </dd>
 <dt><kbd>{l}</kbd></dt>
 <dd><p>In FRAMES mode, lower the selected frame below all other Emacs session 
frames.
 </p>
-<a name="index-frame_002c-other"></a>
-<a name="index-other-frame"></a>
-<a name="index-other-window"></a>
-<a name="index-window_002c-other"></a>
-<a name="index-screen_002c-o"></a>
-<a name="index-o"></a>
+<span id="index-frame_002c-other"></span>
+<span id="index-other-frame"></span>
+<span id="index-other-window"></span>
+<span id="index-window_002c-other"></span>
+<span id="index-screen_002c-o"></span>
+<span id="index-o"></span>
 </dd>
 <dt><kbd>{o}</kbd></dt>
 <dd><p>Select the next window in the window list, across all visible frames.
-<a name="index-screen_002c-O"></a>
-<a name="index-O"></a>
+<span id="index-screen_002c-O"></span>
+<span id="index-O"></span>
 </p></dd>
 <dt><kbd>{O}</kbd></dt>
 <dd><p>Select the next visible frame.
 </p>
-<a name="index-keypad"></a>
-<a name="index-numeric-keypad"></a>
-<a name="index-screen_002c-keypad-number"></a>
-<a name="index-keypad-number"></a>
+<span id="index-keypad"></span>
+<span id="index-numeric-keypad"></span>
+<span id="index-screen_002c-keypad-number"></span>
+<span id="index-keypad-number"></span>
 </dd>
 <dt><kbd>{keypad number}</kbd></dt>
 <dd><p>In FRAMES mode, move the frame directly to the screen edge position 
given
@@ -4519,89 +4444,89 @@ bottom right corner and 8 moves it to the middle of the 
top edge.
 Keypad numeric keys do not adjust the argument.  Respects the pixel edge
 offsets returned by <code>hycontrol-get-screen-offsets</code>.
 </p>
-<a name="index-virtual-numeric-keypad"></a>
-<a name="index-screen_002c-p"></a>
-<a name="index-p"></a>
+<span id="index-virtual-numeric-keypad"></span>
+<span id="index-screen_002c-p"></span>
+<span id="index-p"></span>
 </dd>
 <dt><kbd>{p}</kbd></dt>
 <dd><p>Display a virtual numeric keypad for emulating a keypad on keyboards 
without one.
 Each digit key operates just as a numeric keypad key would.
 </p>
-<a name="index-frame_002c-raise"></a>
-<a name="index-raise-frame"></a>
-<a name="index-screen_002c-r"></a>
-<a name="index-r"></a>
+<span id="index-frame_002c-raise"></span>
+<span id="index-raise-frame"></span>
+<span id="index-screen_002c-r"></span>
+<span id="index-r"></span>
 </dd>
 <dt><kbd>{r}</kbd></dt>
 <dd><p>In FRAMES mode, raise the selected frame above all other Emacs session 
frames.
 </p>
-<a name="index-window_002c-make"></a>
-<a name="index-make-window"></a>
-<a name="index-hycontrol_002dframe_002doffset"></a>
-<a name="index-screen_002c-_005b"></a>
-<a name="index-_005b"></a>
+<span id="index-window_002c-make"></span>
+<span id="index-make-window"></span>
+<span id="index-hycontrol_002dframe_002doffset"></span>
+<span id="index-screen_002c-_005b"></span>
+<span id="index-_005b"></span>
 </dd>
 <dt><kbd>{[}</kbd></dt>
 <dd><p>Create a new atop window or frame depending on mode.  If a frame, it is
 sized to the same size as the selected window and offset from the
 selected frame by the pixel amounts given by
 <code>hycontrol-frame-offset</code>.
-<a name="index-screen_002c-_005d"></a>
-<a name="index-_005d"></a>
+<span id="index-screen_002c-_005d"></span>
+<span id="index-_005d"></span>
 </p></dd>
 <dt><kbd>{]}</kbd></dt>
 <dd><p>Create a new sideways window or frame depending on mode.
 </p>
-<a name="index-frame-configuration"></a>
-<a name="index-window-configuration"></a>
-<a name="index-screen_002c-_0028"></a>
-<a name="index-_0028"></a>
+<span id="index-frame-configuration"></span>
+<span id="index-window-configuration"></span>
+<span id="index-screen_002c-_0028"></span>
+<span id="index-_0028"></span>
 </dd>
 <dt><kbd>{(}</kbd></dt>
 <dd><p>Save the current window or frame configuration based on mode.  Whenever,
 HyControl is invoked, the current window and frame configurations are
 saved automatically.  So use this command only if you have changed the
 configuration and wish to save it temporarily.
-<a name="index-screen_002c-_0029"></a>
-<a name="index-_0029"></a>
+<span id="index-screen_002c-_0029"></span>
+<span id="index-_0029"></span>
 </p></dd>
 <dt><kbd>{)}</kbd></dt>
 <dd><p>After confirmation, restore the last saved window or frame configuration
 based on mode.
 </p>
-<a name="index-window_002c-clone-1"></a>
-<a name="index-clone-window-1"></a>
-<a name="index-hycontrol_002dkeep_002dwindow_002dflag"></a>
-<a name="index-screen_002c-f"></a>
-<a name="index-f"></a>
+<span id="index-window_002c-clone-1"></span>
+<span id="index-clone-window-1"></span>
+<span id="index-hycontrol_002dkeep_002dwindow_002dflag"></span>
+<span id="index-screen_002c-f"></span>
+<span id="index-f"></span>
 </dd>
 <dt><kbd>{f}</kbd></dt>
 <dd><p>Clone the selected window to a new similarly sized frame.
-<a name="index-screen_002c-F"></a>
-<a name="index-F"></a>
+<span id="index-screen_002c-F"></span>
+<span id="index-F"></span>
 </p></dd>
 <dt><kbd>{F}</kbd></dt>
 <dd><p>Clone the selected window to a new similarly sized frame.  Delete the
 original window unless there is only one window in the source frame or
 if <code>hycontrol-keep-window-flag</code> is non-nil.
 </p>
-<a name="index-frame_002c-to-edge"></a>
-<a name="index-frame_002c-percentage-resize"></a>
-<a name="index-resize-frame-percentage"></a>
-<a name="index-screen_002c-i"></a>
-<a name="index-screen_002c-j"></a>
-<a name="index-screen_002c-k"></a>
-<a name="index-screen_002c-m"></a>
-<a name="index-i"></a>
+<span id="index-frame_002c-to-edge"></span>
+<span id="index-frame_002c-percentage-resize"></span>
+<span id="index-resize-frame-percentage"></span>
+<span id="index-screen_002c-i"></span>
+<span id="index-screen_002c-j"></span>
+<span id="index-screen_002c-k"></span>
+<span id="index-screen_002c-m"></span>
+<span id="index-i"></span>
 </dd>
 <dt><kbd>{i}</kbd></dt>
-<dd><a name="index-j"></a>
+<dd><span id="index-j"></span>
 </dd>
 <dt><kbd>{j}</kbd></dt>
-<dd><a name="index-k"></a>
+<dd><span id="index-k"></span>
 </dd>
 <dt><kbd>{k}</kbd></dt>
-<dd><a name="index-m"></a>
+<dd><span id="index-m"></span>
 </dd>
 <dt><kbd>{m}</kbd></dt>
 <dd><p>Expand the selected frame to the respective screen edge based on U.S.
@@ -4611,22 +4536,22 @@ of the screen (50% by default if ARG is 1 or nil) but 
keep it at the screen
 edge.  Respects the pixel edge offsets returned by
 <code>hycontrol-get-screen-offsets</code>.
 </p>
-<a name="index-balance-windows"></a>
-<a name="index-windows_002c-balance"></a>
-<a name="index-equalize-windows"></a>
-<a name="index-windows_002c-equalize"></a>
-<a name="index-screen_002c-_003d"></a>
-<a name="index-_003d"></a>
+<span id="index-balance-windows"></span>
+<span id="index-windows_002c-balance"></span>
+<span id="index-equalize-windows"></span>
+<span id="index-windows_002c-equalize"></span>
+<span id="index-screen_002c-_003d"></span>
+<span id="index-_003d"></span>
 </dd>
 <dt><kbd>{=}</kbd></dt>
 <dd><p>After confirmation, in WINDOWS mode, make the current frame&rsquo;s 
windows
 approximately the same size.  In FRAMES mode, make all visible frames
 the size of the selected frame.
 </p>
-<a name="index-shrink-window"></a>
-<a name="index-window_002c-shrink"></a>
-<a name="index-screen_002c-_002d"></a>
-<a name="index-_002d"></a>
+<span id="index-shrink-window"></span>
+<span id="index-window_002c-shrink"></span>
+<span id="index-screen_002c-_002d"></span>
+<span id="index-_002d"></span>
 </dd>
 <dt><kbd>{-}</kbd></dt>
 <dd><p>In WINDOWS mode, shrink window to its smallest possible number of lines
@@ -4634,62 +4559,62 @@ to display the entire buffer, if possible.  Otherwise 
or if the window
 is already displaying all of its lines, shrink it to about one line,
 if possible.
 </p>
-<a name="index-frame_002c-shrink"></a>
-<a name="index-shrink-frame"></a>
+<span id="index-frame_002c-shrink"></span>
+<span id="index-shrink-frame"></span>
 <p>In FRAMES mode, make the frame as small as possible while still
 displaying it.
 </p>
-<a name="index-window_002c-maximize"></a>
-<a name="index-maximize-window"></a>
-<a name="index-frame_002c-maximize"></a>
-<a name="index-maximize-frame"></a>
-<a name="index-screen_002c-_002b"></a>
-<a name="index-_002b"></a>
+<span id="index-window_002c-maximize"></span>
+<span id="index-maximize-window"></span>
+<span id="index-frame_002c-maximize"></span>
+<span id="index-maximize-frame"></span>
+<span id="index-screen_002c-_002b"></span>
+<span id="index-_002b"></span>
 </dd>
 <dt><kbd>{+}</kbd></dt>
 <dd><p>Make the window or frame (based on mode) as large as possible.  In 
FRAMES
 mode, a second press of this key restores its size to whatever it was prior
 to the first use of this command.
 </p>
-<a name="index-burying"></a>
-<a name="index-unburying"></a>
-<a name="index-buffer_002c-bury"></a>
-<a name="index-buffer_002c-unbury"></a>
-<a name="index-screen_002c-b"></a>
-<a name="index-b"></a>
+<span id="index-burying"></span>
+<span id="index-unburying"></span>
+<span id="index-buffer_002c-bury"></span>
+<span id="index-buffer_002c-unbury"></span>
+<span id="index-screen_002c-b"></span>
+<span id="index-b"></span>
 </dd>
 <dt><kbd>{b}</kbd></dt>
 <dd><p>Bury the selected buffer within the buffer list, displaying the next
 buffer.
-<a name="index-screen_002c-u"></a>
-<a name="index-u"></a>
+<span id="index-screen_002c-u"></span>
+<span id="index-u"></span>
 </p></dd>
 <dt><kbd>{u}</kbd></dt>
 <dd><p>Unbury the bottom buffer in the buffer list and display it in the
 selected window.
 </p>
-<a name="index-swapping"></a>
-<a name="index-buffer_002c-swap-1"></a>
-<a name="index-screen_002c-_007e"></a>
-<a name="index-_007e"></a>
+<span id="index-swapping"></span>
+<span id="index-buffer_002c-swap-1"></span>
+<span id="index-screen_002c-_007e"></span>
+<span id="index-_007e"></span>
 </dd>
 <dt><kbd>{~}</kbd></dt>
 <dd><p>Swap two buffers between the selected window or frame and one other.
 In WINDOWS mode, there must be precisely two windows in the selected
 frame.  In FRAMES mode, the second frame must have a single window.
 </p>
-<a name="index-zooming"></a>
-<a name="index-window_002c-zoom"></a>
-<a name="index-frame_002c-zoom"></a>
-<a name="index-zoom_002dfrm_002eel"></a>
-<a name="index-screen_002c-Z"></a>
-<a name="index-Z"></a>
+<span id="index-zooming"></span>
+<span id="index-window_002c-zoom"></span>
+<span id="index-frame_002c-zoom"></span>
+<span id="index-zoom_002dfrm_002eel"></span>
+<span id="index-screen_002c-Z"></span>
+<span id="index-Z"></span>
 </dd>
 <dt><kbd>{Z}</kbd></dt>
 <dd><p>Zoom in selected window or frame text based on mode, increasing default
 face size.
-<a name="index-screen_002c-z"></a>
-<a name="index-z"></a>
+<span id="index-screen_002c-z"></span>
+<span id="index-z"></span>
 </p></dd>
 <dt><kbd>{z}</kbd></dt>
 <dd><p>Zoom out selected window or frame text based on mode, increasing default
@@ -4700,21 +4625,21 @@ sizes by which to zoom.
 <p>FRAMES mode zooming requires the separately available
 <samp>zoom-frm.el</samp> library.  WINDOWS zooming works without this library.
 </p>
-<a name="index-HyControl-switch-modes"></a>
-<a name="index-HyControl-toggle-modes"></a>
-<a name="index-toggle-HyControl-mode"></a>
-<a name="index-screen_002c-t-1"></a>
-<a name="index-t"></a>
+<span id="index-HyControl-switch-modes"></span>
+<span id="index-HyControl-toggle-modes"></span>
+<span id="index-toggle-HyControl-mode"></span>
+<span id="index-screen_002c-t-1"></span>
+<span id="index-t"></span>
 </dd>
 <dt><kbd>{t}</kbd></dt>
 <dd><p>Toggle between WINDOWS and FRAMES submodes.
 </p>
-<a name="index-HyControl-quit"></a>
-<a name="index-HyControl-exit"></a>
-<a name="index-quit-HyControl"></a>
-<a name="index-exit-HyControl"></a>
-<a name="index-screen_002c-q-1"></a>
-<a name="index-q-1"></a>
+<span id="index-HyControl-quit"></span>
+<span id="index-HyControl-exit"></span>
+<span id="index-quit-HyControl"></span>
+<span id="index-exit-HyControl"></span>
+<span id="index-screen_002c-q-1"></span>
+<span id="index-q-1"></span>
 </dd>
 <dt><kbd>{q}</kbd></dt>
 <dd><p>Quit from HyControl mode and restore normal key bindings.
@@ -4726,18 +4651,18 @@ sizes by which to zoom.
 settings.  You may ignore it if you are not familiar with Emacs
 variables and functions or with customized Emacs.
 </p>
-<a name="index-HyControl-edge-placement"></a>
-<a name="index-HyControl-corner-placement"></a>
+<span id="index-HyControl-edge-placement"></span>
+<span id="index-HyControl-corner-placement"></span>
 <p>HyControl allows placement of frames at screen edges and corners with the
 frame cycle command, <kbd>{c}</kbd>, and direct placement using the layout of 
the
 numeric keypad keys, if available, or the <kbd>p</kbd> virtual keypad key
 otherwise.  (Note that a screen may span multiple physical monitors).
 </p>
-<a name="index-HyControl-screen-edge-offsets"></a>
-<a name="index-screen_002c-edge-offsets"></a>
-<a name="index-hycontrol_002dscreen_002doffset_002dalist"></a>
-<a name="index-hycontrol_002dset_002dscreen_002doffsets"></a>
-<a name="index-hycontrol_002dget_002dscreen_002doffsets"></a>
+<span id="index-HyControl-screen-edge-offsets"></span>
+<span id="index-screen_002c-edge-offsets"></span>
+<span id="index-hycontrol_002dscreen_002doffset_002dalist"></span>
+<span id="index-hycontrol_002dset_002dscreen_002doffsets"></span>
+<span id="index-hycontrol_002dget_002dscreen_002doffsets"></span>
 <p>To prevent widgets and toolbars at the corners of the screen from
 being obscured, HyControl can offset each frame from each screen edge
 by a fixed number of pixels.  These offsets are specified by the
@@ -4748,17 +4673,17 @@ values.  <code>hycontrol-get-screen-offsets</code> 
returns the list of offsets
 in clockwise order starting from the top edge.  Both functions display a
 minibuffer message with the current offsets when called interactively.
 </p>
-<a name="index-hycontrol_002dframe_002doffset-1"></a>
-<a name="index-frame_002c-make"></a>
-<a name="index-make-frame"></a>
+<span id="index-hycontrol_002dframe_002doffset-1"></span>
+<span id="index-frame_002c-make"></span>
+<span id="index-make-frame"></span>
 <p>When HyControl creates a new frame, it automatically sizes it to the
 same size as the previously selected frame and offsets it from that
 frame by the (X . Y) number of pixels given in the variable,
 <code>hycontrol-frame-offset</code>.
 </p>
-<a name="index-file_002c-hycontrol_002eel"></a>
-<a name="index-hycontrol_002denable_002dframes_002dmode"></a>
-<a name="index-hycontrol_002denable_002d_002dwindows_002dmode"></a>
+<span id="index-file_002c-hycontrol_002eel"></span>
+<span id="index-hycontrol_002denable_002dframes_002dmode"></span>
+<span id="index-hycontrol_002denable_002d_002dwindows_002dmode"></span>
 <p>The source code for the HyControl system is in <samp>hycontrol.el</samp>
 within your Hyperbole source directory, given by <code>hyperb:dir</code>.
 HyControl uses standard Emacs keymaps, so any keys can be rebound.
@@ -4771,20 +4696,18 @@ press that key, the other command can be reached by 
pressing <kbd>{t}</kbd>.
 </p>
 
 <hr>
-<a name="Koutliner"></a>
-<div class="header">
+<span id="Koutliner"></span><div class="header">
 <p>
 Next: <a href="#HyRolo" accesskey="n" rel="next">HyRolo</a>, Previous: <a 
href="#HyControl" accesskey="p" rel="prev">HyControl</a>, Up: <a href="#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Koutliner-1"></a>
-<h2 class="chapter">6 Koutliner</h2>
+<span id="Koutliner-1"></span><h2 class="chapter">6 Koutliner</h2>
 
-<a name="index-outliner"></a>
-<a name="index-autonumber"></a>
-<a name="index-relative-autonumber"></a>
-<a name="index-permanent-identifier"></a>
-<a name="index-idstamp"></a>
-<a name="index-hyperlink-anchor"></a>
+<span id="index-outliner"></span>
+<span id="index-autonumber"></span>
+<span id="index-relative-autonumber"></span>
+<span id="index-permanent-identifier"></span>
+<span id="index-idstamp"></span>
+<span id="index-hyperlink-anchor"></span>
 <p>The Hyperbole outliner, the Koutliner (pronounced Kay-outliner),
 produces structured, autonumbered documents composed of hierarchies of
 cells.  Each <em>cell</em> has two identifiers, a
@@ -4797,9 +4720,9 @@ See <a href="#Autonumbering">Autonumbering</a>.
 <p>Cells also store their time of creation and the user who created the
 cell.  User-defined attributes may also be added to cells.  See <a 
href="#Cell-Attributes">Cell Attributes</a>.
 </p>
-<a name="index-file_002c-EXAMPLE_002ekotl"></a>
-<a name="index-menu_002c-Outline_002fExample"></a>
-<a name="index-C_002dh-h-k-e"></a>
+<span id="index-file_002c-EXAMPLE_002ekotl"></span>
+<span id="index-menu_002c-Outline_002fExample"></span>
+<span id="index-C_002dh-h-k-e"></span>
 <p>This chapter expands on the information given in the 
<samp>EXAMPLE.kotl</samp>
 file included with Hyperbole.  Use <kbd>{C-h h k e}</kbd> to display that
 file, as pictured on the following page.  It is an actual outline file
@@ -4810,60 +4733,58 @@ when you invoke this command.
 <p>See <a href="#Koutliner-Keys">Koutliner Keys</a>, for a full summary of the 
key bindings and
 commands available in the Koutliner.
 </p>
-<div class="float"><a name="image_003aKoutliner"></a>
+<div class="float"><span id="image_003aKoutliner"></span>
 
 <img src="im/koutliner.png" alt="Koutliner Screenshot">
 <div class="float-caption"><p><strong>Image 6.1: </strong>Koutliner 
Screenshot</p></div></div><br>
 
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Menu-Commands" 
accesskey="1">Menu Commands</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Menu-Commands" 
accesskey="1">Menu Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Creating-Outlines" 
accesskey="2">Creating Outlines</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Creating-Outlines" 
accesskey="2">Creating Outlines</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Autonumbering" 
accesskey="3">Autonumbering</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Autonumbering" 
accesskey="3">Autonumbering</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Idstamps" 
accesskey="4">Idstamps</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Idstamps" 
accesskey="4">Idstamps</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Editing" 
accesskey="5">Editing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Editing" 
accesskey="5">Editing</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Viewing" 
accesskey="6">Viewing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Viewing" 
accesskey="6">Viewing</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Links" 
accesskey="7">Links</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Links" 
accesskey="7">Links</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Cell-Attributes" 
accesskey="8">Cell Attributes</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Cell-Attributes" 
accesskey="8">Cell Attributes</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Koutliner-History" 
accesskey="9">Koutliner History</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Koutliner-History" 
accesskey="9">Koutliner History</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 
 <hr>
-<a name="Menu-Commands"></a>
-<div class="header">
+<span id="Menu-Commands"></span><div class="header">
 <p>
 Next: <a href="#Creating-Outlines" accesskey="n" rel="next">Creating 
Outlines</a>, Previous: <a href="#Koutliner" accesskey="p" 
rel="prev">Koutliner</a>, Up: <a href="#Koutliner" accesskey="u" 
rel="up">Koutliner</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Menu-Commands-1"></a>
-<h3 class="section">6.1 Menu Commands</h3>
+<span id="Menu-Commands-1"></span><h3 class="section">6.1 Menu Commands</h3>
 
 <p>The Kotl/ menu entry on the Hyperbole minibuffer menu provides access to
 a number of major Koutliner commands:
 </p>
-<a name="index-outliner-commands"></a>
-<a name="index-Koutliner-commands"></a>
-<a name="index-Koutliner-menu"></a>
-<a name="index-menu_002c-Koutliner"></a>
-<a name="index-kotl_002dmode_003ashow_002dall"></a>
-<a name="index-kvspec_003atoggle_002dblank_002dlines"></a>
-<a name="index-kfile_003afind"></a>
-<a name="index-kotl_002dmode_003ahide_002dsublevels"></a>
-<a name="index-kotl_002dmode_003ahide_002dtree"></a>
-<a name="index-kotl_002dmode_003akill_002dtree"></a>
-<a name="index-klink_003acreate"></a>
-<a name="index-kotl_002dmode_003aoverview"></a>
-<a name="index-kotl_002dmode_003ashow_002dtree"></a>
-<a name="index-kotl_002dmode_003atop_002dcells"></a>
-<a name="index-kvspec_003aactivate"></a>
+<span id="index-outliner-commands"></span>
+<span id="index-Koutliner-commands"></span>
+<span id="index-Koutliner-menu"></span>
+<span id="index-menu_002c-Koutliner"></span>
+<span id="index-kotl_002dmode_003ashow_002dall"></span>
+<span id="index-kvspec_003atoggle_002dblank_002dlines"></span>
+<span id="index-kfile_003afind"></span>
+<span id="index-kotl_002dmode_003ahide_002dsublevels"></span>
+<span id="index-kotl_002dmode_003ahide_002dtree"></span>
+<span id="index-kotl_002dmode_003akill_002dtree"></span>
+<span id="index-klink_003acreate"></span>
+<span id="index-kotl_002dmode_003aoverview"></span>
+<span id="index-kotl_002dmode_003ashow_002dtree"></span>
+<span id="index-kotl_002dmode_003atop_002dcells"></span>
+<span id="index-kvspec_003aactivate"></span>
 <div class="example">
 <pre class="example">Menu Item    Command                    Description
 ====================================================================
@@ -4883,40 +4804,38 @@ Vspec        kvspec:activate            Set a view 
specification
 ====================================================================
 </pre></div>
 
-<a name="index-C_002dmouse_002d3"></a>
-<a name="index-popup-menu_002c-Koutliner"></a>
-<a name="index-menubar-menu_002c-Koutliner"></a>
+<span id="index-C_002dmouse_002d3"></span>
+<span id="index-popup-menu_002c-Koutliner"></span>
+<span id="index-menubar-menu_002c-Koutliner"></span>
 <p>The popup and menubar Koutline menu, as displayed here, offers a more
 complete set of the Koutliner commands.  <kbd>{C-mouse-3}</kbd> pops up the
 mode-specific menu in Emacs.  Experiment with the menu or
 read the following sections explaining commands.
 </p>
-<div class="float"><a name="image_003aKoutline-Menu"></a>
+<div class="float"><span id="image_003aKoutline-Menu"></span>
 
 <img src="im/menu-koutline.png" alt="Koutline Menu">
 <div class="float-caption"><p><strong>Image 6.2: </strong>Koutline 
Menu</p></div></div><br>
 
 <hr>
-<a name="Creating-Outlines"></a>
-<div class="header">
+<span id="Creating-Outlines"></span><div class="header">
 <p>
 Next: <a href="#Autonumbering" accesskey="n" rel="next">Autonumbering</a>, 
Previous: <a href="#Menu-Commands" accesskey="p" rel="prev">Menu Commands</a>, 
Up: <a href="#Koutliner" accesskey="u" rel="up">Koutliner</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Creating-Outlines-1"></a>
-<h3 class="section">6.2 Creating Outlines</h3>
+<span id="Creating-Outlines-1"></span><h3 class="section">6.2 Creating 
Outlines</h3>
 
-<a name="index-outline-file-suffix"></a>
-<a name="index-outline_002c-creating"></a>
-<a name="index-file_002c-_002ekotl-suffix"></a>
+<span id="index-outline-file-suffix"></span>
+<span id="index-outline_002c-creating"></span>
+<span id="index-file_002c-_002ekotl-suffix"></span>
 <p>In addition to the Kotl/Create menu item, you can create and experiment
 with outline files simply by finding a file, <kbd>{C-x C-f}</kbd>, with a
 <samp>.kotl</samp> suffix.  <samp>.kot</samp> will also work for users 
impaired by
 operating systems with 3-character suffix limitations.
 </p>
-<a name="index-root-cell"></a>
-<a name="index-top_002dlevel-cell"></a>
-<a name="index-cell_002c-top_002dlevel"></a>
-<a name="index-cell_002c-idstamp-0"></a>
+<span id="index-root-cell"></span>
+<span id="index-top_002dlevel-cell"></span>
+<span id="index-cell_002c-top_002dlevel"></span>
+<span id="index-cell_002c-idstamp-0"></span>
 <p>When a new koutline is created, an invisible root cell is added.  Its
 permanent and relative ids are both 0, and it is considered to be at
 level 0 in the outline.  All visible cells in the outline are at level 1
@@ -4934,16 +4853,14 @@ structure of the outline changes.
 </p>
 
 <hr>
-<a name="Autonumbering"></a>
-<div class="header">
+<span id="Autonumbering"></span><div class="header">
 <p>
 Next: <a href="#Idstamps" accesskey="n" rel="next">Idstamps</a>, Previous: <a 
href="#Creating-Outlines" accesskey="p" rel="prev">Creating Outlines</a>, Up: 
<a href="#Koutliner" accesskey="u" rel="up">Koutliner</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Autonumbering-1"></a>
-<h3 class="section">6.3 Autonumbering</h3>
+<span id="Autonumbering-1"></span><h3 class="section">6.3 Autonumbering</h3>
 
-<a name="index-autonumber-1"></a>
-<a name="index-relative-identifier"></a>
+<span id="index-autonumber-1"></span>
+<span id="index-relative-identifier"></span>
 <p>See <a href="#Adding-and-Killing">Adding and Killing</a>, for information 
on how to add new cells to or
 remove cells from a koutline.  As you do this, or as you promote or
 demote cells within the outline, the labels preceding the contents of
@@ -4951,16 +4868,16 @@ each cell automatically update to reflect the new 
structure.  These
 labels are also known as <em>autonumbers</em> and as <em>relative ids</em>
 because they change as the structure changes.
 </p>
-<a name="index-outline-structure"></a>
+<span id="index-outline-structure"></span>
 <p>The outline structure is shown by these labels and by the indentation of
 each outline level.  Normally, each deeper level is indented another
 three characters, to reflect the nesting.
 </p>
-<a name="index-label-type_002c-alpha"></a>
-<a name="index-label-type_002c-legal"></a>
-<a name="index-alpha-labels"></a>
-<a name="index-legal-labels"></a>
-<a name="index-outline_002c-label-type"></a>
+<span id="index-label-type_002c-alpha"></span>
+<span id="index-label-type_002c-legal"></span>
+<span id="index-alpha-labels"></span>
+<span id="index-legal-labels"></span>
+<span id="index-outline_002c-label-type"></span>
 <p>The default autonumbers are called <em>alphanumeric labels</em> because
 they alternate between using numbers and letters to distinguish each
 successive level.  Each alphanumeric label uniquely identifies a cell&rsquo;s
@@ -4978,18 +4895,18 @@ to read aloud than equivalent legal ones.  They also 
simplify
 distinguishing between even and odd level labels because of the
 alternating character set.
 </p>
-<a name="index-koutliner_002c-C_002dc-C_002dl"></a>
-<a name="index-label-type_002c-changing"></a>
+<span id="index-koutliner_002c-C_002dc-C_002dl"></span>
+<span id="index-label-type_002c-changing"></span>
 <p>You can change the labeling scheme used in a particular outline with
 the command <kbd>{C-c C-l}</kbd>.  A <kbd>{?}</kbd> will show all of the
 labeling options.  The default, alpha labels, legal labels, and
 permanent idstamps (permanent cell ids) are all available.
 </p>
-<a name="index-label-separator_002c-changing"></a>
-<a name="index-cell_002c-label-separator"></a>
-<a name="index-outline_002c-label-separator"></a>
-<a name="index-koutliner_002c-C_002dc-M_002dl"></a>
-<a name="index-koutliner_002c-C_002du-C_002dc-M_002dl"></a>
+<span id="index-label-separator_002c-changing"></span>
+<span id="index-cell_002c-label-separator"></span>
+<span id="index-outline_002c-label-separator"></span>
+<span id="index-koutliner_002c-C_002dc-M_002dl"></span>
+<span id="index-koutliner_002c-C_002du-C_002dc-M_002dl"></span>
 <p>A cell label is normally followed by a period and a space, called the
 <em>label separator</em>, prior to the start of the cell contents.  You can
 change the separator for the current outline with <kbd>{C-c M-l}</kbd>.
@@ -4999,46 +4916,44 @@ For example, use the value &quot;  &quot; (two spaces) 
to get eliminate the
 trailing period after each cell label.  The separator must be at least
 two characters long but may be longer.
 </p>
-<a name="index-file_002c-_002eemacs-3"></a>
-<a name="index-initialization-file"></a>
+<span id="index-file_002c-_002eemacs-3"></span>
+<span id="index-initialization-file"></span>
 <p>If you find a separator that you prefer for all outlines, change the
 separator setting permanently by adding the following line to your Emacs
 initialization file, <samp>~/.emacs</samp>, substituting for 
&lsquo;your-separator&rsquo;:
 </p>
-<a name="index-label-separator_002c-default"></a>
-<a name="index-kview_003adefault_002dlabel_002dseparator"></a>
+<span id="index-label-separator_002c-default"></span>
+<span id="index-kview_003adefault_002dlabel_002dseparator"></span>
 <div class="lisp">
 <pre class="lisp">(setq kview:default-label-separator 
&quot;your-separator&quot;)
 </pre></div>
 
 
 <hr>
-<a name="Idstamps"></a>
-<div class="header">
+<span id="Idstamps"></span><div class="header">
 <p>
 Next: <a href="#Editing" accesskey="n" rel="next">Editing</a>, Previous: <a 
href="#Autonumbering" accesskey="p" rel="prev">Autonumbering</a>, Up: <a 
href="#Koutliner" accesskey="u" rel="up">Koutliner</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Idstamps-1"></a>
-<h3 class="section">6.4 Idstamps</h3>
+<span id="Idstamps-1"></span><h3 class="section">6.4 Idstamps</h3>
 
-<a name="index-permanent-identifier-1"></a>
-<a name="index-idstamp-1"></a>
+<span id="index-permanent-identifier-1"></span>
+<span id="index-idstamp-1"></span>
 <p>Idstamps (permanent ids) are associated with each cell.  They maintain
 hyperlinks as cells are reordered within a koutline.  See <a 
href="#Links">Links</a>.
 Idstamps may be displayed in place of the outline level relative ids.
 Use <kbd>{C-c C-l id <span class="key">RET</span>}</kbd>.
 </p>
-<a name="index-idstamp-counter"></a>
+<span id="index-idstamp-counter"></span>
 <p>An idstamp counter for each outline starts at 0 and is incremented by
 one each time a cell is added to the outline.  This idstamp stays with
 the cell no matter where it is moved within the outline.  If the cell is
 deleted, its idstamp is not reused.
 </p>
-<a name="index-root-cell-1"></a>
-<a name="index-top_002dlevel-cell-1"></a>
-<a name="index-cell_002c-top_002dlevel-1"></a>
-<a name="index-cell_002c-idstamp-0-1"></a>
-<a name="index-idstamp-0"></a>
+<span id="index-root-cell-1"></span>
+<span id="index-top_002dlevel-cell-1"></span>
+<span id="index-cell_002c-top_002dlevel-1"></span>
+<span id="index-cell_002c-idstamp-0-1"></span>
+<span id="index-idstamp-0"></span>
 <p>The 0 idstamp is always assigned to the root node of the entire outline.
 This node is never visible within the outline, but is used so that the
 outline may be treated as a single tree when needed.  Idstamps always
@@ -5046,13 +4961,11 @@ begin with a 0, as in 012, to distinguish them from 
relative ids.
 </p>
 
 <hr>
-<a name="Editing"></a>
-<div class="header">
+<span id="Editing"></span><div class="header">
 <p>
 Next: <a href="#Viewing" accesskey="n" rel="next">Viewing</a>, Previous: <a 
href="#Idstamps" accesskey="p" rel="prev">Idstamps</a>, Up: <a 
href="#Koutliner" accesskey="u" rel="up">Koutliner</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Editing-1"></a>
-<h3 class="section">6.5 Editing</h3>
+<span id="Editing-1"></span><h3 class="section">6.5 Editing</h3>
 
 <p>Text editing within the Koutliner works just as it does for other
 buffers, except when you need to deal with the structural components of
@@ -5067,45 +4980,43 @@ since the Koutliner uses differently named commands 
made to act
 like the regular editing commands.  Koutliner commands, however, account
 for the structure and indentation in koutlines.
 </p>
-<a name="index-cell_002c-selection"></a>
+<span id="index-cell_002c-selection"></span>
 <p>You may use the mouse to select parts of the contents of a single cell
 for editing.  But don&rsquo;t drag across cell boundaries and then edit the
 selected region, since that will destroy the outline structure.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Adding-and-Killing" 
accesskey="1">Adding and Killing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Adding-and-Killing" 
accesskey="1">Adding and Killing</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Relocating-and-Copying" 
accesskey="2">Relocating and Copying</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Relocating-and-Copying" 
accesskey="2">Relocating and Copying</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Moving-Around" 
accesskey="3">Moving Around</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Moving-Around" 
accesskey="3">Moving Around</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Filling" 
accesskey="4">Filling</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Filling" 
accesskey="4">Filling</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Transposing" 
accesskey="5">Transposing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Transposing" 
accesskey="5">Transposing</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Splitting-and-Appending" 
accesskey="6">Splitting and Appending</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Splitting-and-Appending" 
accesskey="6">Splitting and Appending</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Inserting-and-Importing" 
accesskey="7">Inserting and Importing</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Inserting-and-Importing" 
accesskey="7">Inserting and Importing</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Exporting" 
accesskey="8">Exporting</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Exporting" 
accesskey="8">Exporting</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Adding-and-Killing"></a>
-<div class="header">
+<span id="Adding-and-Killing"></span><div class="header">
 <p>
 Next: <a href="#Relocating-and-Copying" accesskey="n" rel="next">Relocating 
and Copying</a>, Previous: <a href="#Editing" accesskey="p" 
rel="prev">Editing</a>, Up: <a href="#Editing" accesskey="u" 
rel="up">Editing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Adding-and-Killing-1"></a>
-<h4 class="subsection">6.5.1 Adding and Killing</h4>
+<span id="Adding-and-Killing-1"></span><h4 class="subsection">6.5.1 Adding and 
Killing</h4>
 
-<a name="index-koutliner_002c-C_002dj"></a>
-<a name="index-koutliner_002c-C_002du-c_002dj"></a>
-<a name="index-koutliner_002c-C_002dc-a"></a>
-<a name="index-koutliner_002c-C_002dc-p"></a>
-<a name="index-cell_002c-adding"></a>
-<a name="index-cell_002c-creating"></a>
+<span id="index-koutliner_002c-C_002dj"></span>
+<span id="index-koutliner_002c-C_002du-c_002dj"></span>
+<span id="index-koutliner_002c-C_002dc-a"></span>
+<span id="index-koutliner_002c-C_002dc-p"></span>
+<span id="index-cell_002c-adding"></span>
+<span id="index-cell_002c-creating"></span>
 <p><kbd>{C-j}</kbd> adds a new cell as a successor sibling of the
 current cell, that is, the next cell at the same level as the current
 cell.  If you enter a positive number as a prefix argument, that number
@@ -5114,13 +5025,13 @@ handled specially.  It adds a single cell as a child of 
the current cell.
 <kbd>{C-c a}</kbd> does the same thing.  <kbd>{C-c p}</kbd> adds the cell as
 the successor of the current cell&rsquo;s parent.
 </p>
-<a name="index-koutliner_002c-C_002dc-C_002dk"></a>
-<a name="index-koutliner_002c-C_002dc-k"></a>
-<a name="index-koutliner_002c-C_002du-C_002dc-k"></a>
-<a name="index-koutliner_002c-C_002dy"></a>
-<a name="index-cell_002c-killing"></a>
-<a name="index-cell_002c-yanking-contents"></a>
-<a name="index-tree_002c-killing"></a>
+<span id="index-koutliner_002c-C_002dc-C_002dk"></span>
+<span id="index-koutliner_002c-C_002dc-k"></span>
+<span id="index-koutliner_002c-C_002du-C_002dc-k"></span>
+<span id="index-koutliner_002c-C_002dy"></span>
+<span id="index-cell_002c-killing"></span>
+<span id="index-cell_002c-yanking-contents"></span>
+<span id="index-tree_002c-killing"></span>
 <p><kbd>{C-c C-k}</kbd> kills the current cell and its entire subtree.
 <kbd>{C-c k}</kbd> kills the contents of a cell from point through the end
 of the cell; it does not remove the cell itself.  <kbd>{C-u C-c k}</kbd>
@@ -5130,26 +5041,24 @@ buffer with <kbd>{C-y}</kbd>.
 </p>
 
 <hr>
-<a name="Relocating-and-Copying"></a>
-<div class="header">
+<span id="Relocating-and-Copying"></span><div class="header">
 <p>
 Next: <a href="#Moving-Around" accesskey="n" rel="next">Moving Around</a>, 
Previous: <a href="#Adding-and-Killing" accesskey="p" rel="prev">Adding and 
Killing</a>, Up: <a href="#Editing" accesskey="u" rel="up">Editing</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Relocating-and-Copying-1"></a>
-<h4 class="subsection">6.5.2 Relocating and Copying</h4>
+<span id="Relocating-and-Copying-1"></span><h4 class="subsection">6.5.2 
Relocating and Copying</h4>
 
-<a name="index-promotion"></a>
-<a name="index-demotion"></a>
-<a name="index-tree_002c-promoting"></a>
-<a name="index-tree_002c-demoting"></a>
+<span id="index-promotion"></span>
+<span id="index-demotion"></span>
+<span id="index-tree_002c-promoting"></span>
+<span id="index-tree_002c-demoting"></span>
 <p><em>Demotion</em> is the act of moving a tree down one or more levels in the
 outline.  The new tree will become either the successor or the first
 child of the cell which precedes it in the outline.  <em>Promotion</em> is
 the inverse operation.  Note that trees (cells and their entire
 substructure) are promoted and demoted, not individual cells.
 </p>
-<a name="index-koutliner_002c-TAB"></a>
-<a name="index-koutliner_002c-M_002dTAB"></a>
+<span id="index-koutliner_002c-TAB"></span>
+<span id="index-koutliner_002c-M_002dTAB"></span>
 <p>Trees may be demoted or promoted by pressing <tt class="key">TAB</tt> or
 <kbd>{M-<span class="key">TAB</span>}</kbd> (or <kbd>{<span 
class="key">SHIFT</span>-<span class="key">TAB</span>}</kbd>) respectively, as 
in
 most outliners today.  <kbd>{M-0 <span class="key">TAB</span>}</kbd> and 
<kbd>{M-0 M-<span class="key">TAB</span>}</kbd>
@@ -5161,11 +5070,11 @@ outline may not support movement of the tree by the 
number of levels
 requested, however, in which case the maximal possible adjustment is
 made.
 </p>
-<a name="index-koutliner_002c-M_002d1-TAB"></a>
-<a name="index-inserting-tabs"></a>
-<a name="index-tabs_002c-inserting"></a>
-<a name="index-kotl_002dmode_003aindent_002dtabs_002dmode"></a>
-<a name="index-Koutliner_002c-toggle-tab-behavior"></a>
+<span id="index-koutliner_002c-M_002d1-TAB"></span>
+<span id="index-inserting-tabs"></span>
+<span id="index-tabs_002c-inserting"></span>
+<span id="index-kotl_002dmode_003aindent_002dtabs_002dmode"></span>
+<span id="index-Koutliner_002c-toggle-tab-behavior"></span>
 <p><kbd>{M-1 <span class="key">TAB</span>}</kbd> behaves specially.  It 
toggles the function of
 <tt class="key">TAB</tt> and <kbd>{M-<span class="key">TAB</span>}</kbd> so 
that they insert a tab
 and remove the previous character, respectively.  This is useful when
@@ -5176,10 +5085,10 @@ Set the variable, 
<code>kotl-mode:indent-tabs-mode</code>, to
 Use <kbd>{M-1 <span class="key">TAB</span>}</kbd> to toggle the <tt 
class="key">TAB</tt> and
 <kbd>{M-<span class="key">TAB</span>}</kbd> keys back to promoting and 
demoting trees.
 </p>
-<a name="index-tree_002c-copying"></a>
-<a name="index-tree_002c-moving"></a>
-<a name="index-Action-Key_002c-cell-argument"></a>
-<a name="index-koutliner_002c-Action-Key_002c-cell-argument"></a>
+<span id="index-tree_002c-copying"></span>
+<span id="index-tree_002c-moving"></span>
+<span id="index-Action-Key_002c-cell-argument"></span>
+<span id="index-koutliner_002c-Action-Key_002c-cell-argument"></span>
 <p>For maximum flexibility in rearranging outlines, there are commands that
 move or copy entire trees.  Each of these commands prompts for the label
 of the root cell to move or copy and for a second cell which specifies
@@ -5194,45 +5103,45 @@ arguments changes each command&rsquo;s behavior from 
insertion at the sibling
 level to insertion at the child level.
 </p>
 <dl compact="compact">
-<dd><a name="index-C_002dc-c"></a>
+<dd><span id="index-C_002dc-c"></span>
 </dd>
 <dt><kbd>{C-c c}</kbd></dt>
 <dd><p>Copy &lt;tree&gt; to be the successor of &lt;cell&gt;.
-<a name="index-C_002du-C_002dc-c"></a>
+<span id="index-C_002du-C_002dc-c"></span>
 </p></dd>
 <dt><kbd>{C-u C-c c}</kbd></dt>
 <dd><p>Copy &lt;tree&gt; to follow as the first child of &lt;cell&gt;.
 </p>
-<a name="index-C_002dc-C_002dc-1"></a>
+<span id="index-C_002dc-C_002dc-1"></span>
 </dd>
 <dt><kbd>{C-c C-c}</kbd></dt>
 <dd><p>Copy &lt;tree&gt; to be the predecessor of &lt;cell&gt;.
-<a name="index-C_002du-C_002dc-C_002dc"></a>
+<span id="index-C_002du-C_002dc-C_002dc"></span>
 </p></dd>
 <dt><kbd>{C-u C-c C-c}</kbd></dt>
 <dd><p>Copy &lt;tree&gt; to be the first child of the parent of &lt;cell&gt;.
 </p>
-<a name="index-C_002dc-m"></a>
+<span id="index-C_002dc-m"></span>
 </dd>
 <dt><kbd>{C-c m}</kbd></dt>
 <dd><p>Move &lt;tree&gt; to be the successor of &lt;cell&gt;.
-<a name="index-C_002du-C_002dc-m"></a>
+<span id="index-C_002du-C_002dc-m"></span>
 </p></dd>
 <dt><kbd>{C-u C-c m}</kbd></dt>
 <dd><p>Move &lt;tree&gt; to follow as the first child of &lt;cell&gt;.
 </p>
-<a name="index-C_002dc-C_002dm"></a>
+<span id="index-C_002dc-C_002dm"></span>
 </dd>
 <dt><kbd>{C-c C-m}</kbd></dt>
 <dd><p>Move &lt;tree&gt; to precede &lt;cell&gt;.
-<a name="index-C_002du-C_002dc-C_002dm"></a>
+<span id="index-C_002du-C_002dc-C_002dm"></span>
 </p></dd>
 <dt><kbd>{C-u C-c C-m}</kbd></dt>
 <dd><p>Move &lt;tree&gt; to be the first child of the parent of &lt;cell&gt;.
 </p></dd>
 </dl>
 
-<a name="index-mouse_002c-moving-trees"></a>
+<span id="index-mouse_002c-moving-trees"></span>
 <p>If you have mouse support under Hyperbole, you can move entire trees
 with mouse clicks.  Click the Assist Key within the indentation to the
 left of a cell and you will be prompted for a tree to move.  Double
@@ -5244,95 +5153,93 @@ it to follow as a sucessor.
 right now, so don&rsquo;t try to to move trees across different outline files.
 You can, however, copy an outline tree to a non-outline buffer with:
 </p>
-<a name="index-tree_002c-exporting"></a>
-<a name="index-outline_002c-exporting"></a>
-<a name="index-tree_002c-mailing"></a>
-<a name="index-outline_002c-mailing"></a>
-<a name="index-exporting-an-outline"></a>
-<a name="index-mailing-an-outline"></a>
+<span id="index-tree_002c-exporting"></span>
+<span id="index-outline_002c-exporting"></span>
+<span id="index-tree_002c-mailing"></span>
+<span id="index-outline_002c-mailing"></span>
+<span id="index-exporting-an-outline"></span>
+<span id="index-mailing-an-outline"></span>
 <dl compact="compact">
-<dd><a name="index-C_002dc-M_002dc"></a>
+<dd><span id="index-C_002dc-M_002dc"></span>
 </dd>
 <dt><kbd>{C-c M-c}</kbd></dt>
 <dd><p>Copy a &lt;tree&gt; to a non-koutline buffer.
-<a name="index-C_002dc-_0040"></a>
+<span id="index-C_002dc-_0040"></span>
 </p></dd>
 <dt><kbd>{C-c @ }</kbd></dt>
 <dd><p>Copy a &lt;tree&gt; to an outgoing mail message.
 </p></dd>
 </dl>
 
-<a name="index-outline_002c-importing"></a>
-<a name="index-copying"></a>
+<span id="index-outline_002c-importing"></span>
+<span id="index-copying"></span>
 <p>You may also import cells into the current koutline from another
 koutline with the <kbd>{M-x kimport:text <span class="key">RET</span>}</kbd> 
command.
 See <a href="#Inserting-and-Importing">Inserting and Importing</a>.
 </p>
 
 <hr>
-<a name="Moving-Around"></a>
-<div class="header">
+<span id="Moving-Around"></span><div class="header">
 <p>
 Next: <a href="#Filling" accesskey="n" rel="next">Filling</a>, Previous: <a 
href="#Relocating-and-Copying" accesskey="p" rel="prev">Relocating and 
Copying</a>, Up: <a href="#Editing" accesskey="u" rel="up">Editing</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Moving-Around-1"></a>
-<h4 class="subsection">6.5.3 Moving Around</h4>
+<span id="Moving-Around-1"></span><h4 class="subsection">6.5.3 Moving 
Around</h4>
 
-<a name="index-outline_002c-motion"></a>
+<span id="index-outline_002c-motion"></span>
 <p>In addition to normal emacs movement commands, you can move within a
 cell or from one cell or tree to another.
 </p>
 <dl compact="compact">
-<dd><a name="index-C_002dc-_002c"></a>
+<dd><span id="index-C_002dc-_002c"></span>
 </dd>
 <dt><kbd>{C-c ,}</kbd></dt>
 <dd><p>Move to the beginning of the current cell.
-<a name="index-C_002dc-_002e-1"></a>
+<span id="index-C_002dc-_002e-1"></span>
 </p></dd>
 <dt><kbd>{C-c .}</kbd></dt>
 <dd><p>Move to the end of the current cell.
 </p>
-<a name="index-C_002dc-C_002dn"></a>
+<span id="index-C_002dc-C_002dn"></span>
 </dd>
 <dt><kbd>{C-c C-n}</kbd></dt>
 <dd><p>Move to the next visible cell, regardless of level.
-<a name="index-C_002dc-C_002dp"></a>
+<span id="index-C_002dc-C_002dp"></span>
 </p></dd>
 <dt><kbd>{C-c C-p}</kbd></dt>
 <dd><p>Move to the previous visible cell, regardless of level.
 </p>
-<a name="index-C_002dc-C_002df"></a>
+<span id="index-C_002dc-C_002df"></span>
 </dd>
 <dt><kbd>{C-c C-f}</kbd></dt>
 <dd><p>Move forward to this cell&rsquo;s successor, if any.
-<a name="index-C_002dc-C_002db"></a>
+<span id="index-C_002dc-C_002db"></span>
 </p></dd>
 <dt><kbd>{C-c C-b}</kbd></dt>
 <dd><p>Move backward to this cell&rsquo;s predecessor, if any.
 </p>
-<a name="index-C_002dc-C_002dd"></a>
+<span id="index-C_002dc-C_002dd"></span>
 </dd>
 <dt><kbd>{C-c C-d}</kbd></dt>
 <dd><p>Move to the first child of the current cell, if any.
-<a name="index-C_002dc-C_002du"></a>
+<span id="index-C_002dc-C_002du"></span>
 </p></dd>
 <dt><kbd>{C-c C-u}</kbd></dt>
 <dd><p>Move to the parent cell of the current cell, if any.
 </p>
-<a name="index-C_002dc-_003c"></a>
+<span id="index-C_002dc-_003c"></span>
 </dd>
 <dt><kbd>{C-c &lt;}</kbd></dt>
 <dd><p>Move to the first sibling at the current level within this tree.
-<a name="index-C_002dc-_003e"></a>
+<span id="index-C_002dc-_003e"></span>
 </p></dd>
 <dt><kbd>{C-c &gt;}</kbd></dt>
 <dd><p>Move to the last sibling at the current level within this tree.
 </p>
-<a name="index-C_002dc-_005e"></a>
+<span id="index-C_002dc-_005e"></span>
 </dd>
 <dt><kbd>{C-c ^}</kbd></dt>
 <dd><p>Move to the level 1 root cell of the current tree.
-<a name="index-C_002dc-_0024"></a>
+<span id="index-C_002dc-_0024"></span>
 </p></dd>
 <dt><kbd>{C-c $}</kbd></dt>
 <dd><p>Move to the last cell in the tree rooted at point, regardless of level.
@@ -5341,33 +5248,31 @@ cell or from one cell or tree to another.
 
 
 <hr>
-<a name="Filling"></a>
-<div class="header">
+<span id="Filling"></span><div class="header">
 <p>
 Next: <a href="#Transposing" accesskey="n" rel="next">Transposing</a>, 
Previous: <a href="#Moving-Around" accesskey="p" rel="prev">Moving Around</a>, 
Up: <a href="#Editing" accesskey="u" rel="up">Editing</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Filling-1"></a>
-<h4 class="subsection">6.5.4 Filling</h4>
+<span id="Filling-1"></span><h4 class="subsection">6.5.4 Filling</h4>
 
-<a name="index-outline_002c-filling"></a>
-<a name="index-filling"></a>
-<a name="index-word-wrap"></a>
+<span id="index-outline_002c-filling"></span>
+<span id="index-filling"></span>
+<span id="index-word-wrap"></span>
 <p><em>Filling</em> is the process of distributing words among lines to extend
 short lines and to reduce long ones.  Commands are provided to fill a
 paragraph within a cell or to fill a whole cell, which may have multiple
 paragraphs.
 </p>
-<a name="index-filling-1"></a>
-<a name="index-cell_002c-filling"></a>
-<a name="index-paragraph_002c-filling"></a>
-<a name="index-tree_002c-filling"></a>
-<a name="index-margin"></a>
-<a name="index-koutliner_002c-M_002dq"></a>
-<a name="index-koutliner_002c-M_002dj"></a>
-<a name="index-koutliner_002c-C_002dc-M_002dq"></a>
-<a name="index-koutliner_002c-C_002dc-M_002dj"></a>
-<a name="index-koutliner_002c-C_002dM_002dq"></a>
-<a name="index-koutliner_002c-C_002dM_002dj"></a>
+<span id="index-filling-1"></span>
+<span id="index-cell_002c-filling"></span>
+<span id="index-paragraph_002c-filling"></span>
+<span id="index-tree_002c-filling"></span>
+<span id="index-margin"></span>
+<span id="index-koutliner_002c-M_002dq"></span>
+<span id="index-koutliner_002c-M_002dj"></span>
+<span id="index-koutliner_002c-C_002dc-M_002dq"></span>
+<span id="index-koutliner_002c-C_002dc-M_002dj"></span>
+<span id="index-koutliner_002c-C_002dM_002dq"></span>
+<span id="index-koutliner_002c-C_002dM_002dj"></span>
 <p><kbd>{M-q}</kbd> or <kbd>{M-j}</kbd> refills a paragraph within a
 cell so that its lines wrap within the current margin settings.
 <kbd>{C-c M-q}</kbd> or <kbd>{C-c M-j}</kbd> refills all paragraphs within a
@@ -5375,10 +5280,10 @@ cell.  <kbd>{C-M-q}</kbd> or <kbd>{C-M-j}</kbd> refills 
all cells within a tree.
 See the GNU Emacs manual for information on how to set the left and
 right margins.
 </p>
-<a name="index-kotl_002dmode_003arefill_002dflag"></a>
-<a name="index-refilling"></a>
-<a name="index-attribute_002c-no_002dfill"></a>
-<a name="index-cell_002c-no_002dfill-attribute"></a>
+<span id="index-kotl_002dmode_003arefill_002dflag"></span>
+<span id="index-refilling"></span>
+<span id="index-attribute_002c-no_002dfill"></span>
+<span id="index-cell_002c-no_002dfill-attribute"></span>
 <p>Set the variable, <code>kotl-mode:refill-flag</code>, to 
&lsquo;<samp>t</samp>&rsquo; if you want
 moving, promoting, demoting, exchanging, splitting and appending cells
 to also automatically refill each cell.  Generally, this is not
@@ -5388,33 +5293,31 @@ will be lost.
 </p>
 
 <hr>
-<a name="Transposing"></a>
-<div class="header">
+<span id="Transposing"></span><div class="header">
 <p>
 Next: <a href="#Splitting-and-Appending" accesskey="n" rel="next">Splitting 
and Appending</a>, Previous: <a href="#Filling" accesskey="p" 
rel="prev">Filling</a>, Up: <a href="#Editing" accesskey="u" 
rel="up">Editing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Transposing-1"></a>
-<h4 class="subsection">6.5.5 Transposing</h4>
+<span id="Transposing-1"></span><h4 class="subsection">6.5.5 Transposing</h4>
 
 <p>The Koutliner move and copy commands rearrange entire trees.  The
 following two commands, in contrast, exchange the locations of two
 individual cells.
 </p>
-<a name="index-koutliner_002c-C_002dc-e"></a>
-<a name="index-cell_002c-transposing"></a>
-<a name="index-cell_002c-exchanging"></a>
-<a name="index-exchanging-cells"></a>
-<a name="index-transposing-cells"></a>
+<span id="index-koutliner_002c-C_002dc-e"></span>
+<span id="index-cell_002c-transposing"></span>
+<span id="index-cell_002c-exchanging"></span>
+<span id="index-exchanging-cells"></span>
+<span id="index-transposing-cells"></span>
 <p><kbd>{C-c e}</kbd> prompts for two cell addresses and exchanges the cell
 locations.
 </p>
-<a name="index-koutliner_002c-C_002dc-t"></a>
+<span id="index-koutliner_002c-C_002dc-t"></span>
 <p><kbd>{C-c t}</kbd> does not prompt.  It exchanges the current
 and immediatly prior cell, regardless of their levels.  If there is no
 prior cell it exchanges the current and next cell.
 </p>
-<a name="index-cell_002c-mark-and-point"></a>
-<a name="index-koutliner_002c-M_002d0-C_002dc-t"></a>
+<span id="index-cell_002c-mark-and-point"></span>
+<span id="index-koutliner_002c-M_002d0-C_002dc-t"></span>
 <p><kbd>{M-0 C-c t}</kbd> exchanges the cells in which point and mark fall.
 <kbd>{C-c t}</kbd> with a non-zero numeric prefix argument, N, moves
 the current tree maximally past the next N visible cells.  If there are
@@ -5422,18 +5325,16 @@ fewer visible, it makes the current cell the last cell 
in the outline.
 </p>
 
 <hr>
-<a name="Splitting-and-Appending"></a>
-<div class="header">
+<span id="Splitting-and-Appending"></span><div class="header">
 <p>
 Next: <a href="#Inserting-and-Importing" accesskey="n" rel="next">Inserting 
and Importing</a>, Previous: <a href="#Transposing" accesskey="p" 
rel="prev">Transposing</a>, Up: <a href="#Editing" accesskey="u" 
rel="up">Editing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Splitting-and-Appending-1"></a>
-<h4 class="subsection">6.5.6 Splitting and Appending</h4>
+<span id="Splitting-and-Appending-1"></span><h4 class="subsection">6.5.6 
Splitting and Appending</h4>
 
-<a name="index-splitting-a-cell"></a>
-<a name="index-cell_002c-splitting"></a>
-<a name="index-koutliner_002c-C_002dc-s"></a>
-<a name="index-koutliner_002c-C_002du-C_002dc-s"></a>
+<span id="index-splitting-a-cell"></span>
+<span id="index-cell_002c-splitting"></span>
+<span id="index-koutliner_002c-C_002dc-s"></span>
+<span id="index-koutliner_002c-C_002du-C_002dc-s"></span>
 <p>One cell may be split into two adjacent sibling cells with <kbd>{C-c
 s}</kbd>.  This leaves the cell contents preceding point in the current
 cell, minus any trailing whitespace, and moves the contents following
@@ -5444,11 +5345,11 @@ original cell, rather than as its successor.
 <p>All cell attributes in the original cell are propagated to the new one,
 aside from the creation attributes and idstamp.
 </p>
-<a name="index-koutliner_002c-C_002dc-_002b"></a>
-<a name="index-cell_002c-appending"></a>
-<a name="index-appending-to-a-cell"></a>
-<a name="index-attribute_002c-no_002dfill-1"></a>
-<a name="index-cell_002c-no_002dfill-attribute-1"></a>
+<span id="index-koutliner_002c-C_002dc-_002b"></span>
+<span id="index-cell_002c-appending"></span>
+<span id="index-appending-to-a-cell"></span>
+<span id="index-attribute_002c-no_002dfill-1"></span>
+<span id="index-cell_002c-no_002dfill-attribute-1"></span>
 <p><kbd>{C-c +}</kbd> appends the contents of a specified cell to the end of
 another cell.  It has no effect on cell attributes, except that if one
 cell has a &lsquo;no-fill&rsquo; attribute, which prevents all but user 
requested
@@ -5456,39 +5357,37 @@ filling of a cell, then the cell appended to inherits 
this property.
 This helps maintain any special formatting the appended text may have.
 </p>
 <hr>
-<a name="Inserting-and-Importing"></a>
-<div class="header">
+<span id="Inserting-and-Importing"></span><div class="header">
 <p>
 Next: <a href="#Exporting" accesskey="n" rel="next">Exporting</a>, Previous: 
<a href="#Splitting-and-Appending" accesskey="p" rel="prev">Splitting and 
Appending</a>, Up: <a href="#Editing" accesskey="u" rel="up">Editing</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Inserting-and-Importing-1"></a>
-<h4 class="subsection">6.5.7 Inserting and Importing</h4>
+<span id="Inserting-and-Importing-1"></span><h4 class="subsection">6.5.7 
Inserting and Importing</h4>
 
-<a name="index-outline_002c-inserting-into"></a>
-<a name="index-outline_002c-importing-into"></a>
-<a name="index-importing"></a>
-<a name="index-insertion"></a>
-<a name="index-koutliner_002c-C_002dx-i"></a>
-<a name="index-outline_002c-foreign-file"></a>
+<span id="index-outline_002c-inserting-into"></span>
+<span id="index-outline_002c-importing-into"></span>
+<span id="index-importing"></span>
+<span id="index-insertion"></span>
+<span id="index-koutliner_002c-C_002dx-i"></span>
+<span id="index-outline_002c-foreign-file"></span>
 <p>The paragraphs of another buffer or file may be inserted into a koutline
 as a set of cells by using the <kbd>{C-x i}</kbd> command.  When prompted,
 you may use a buffer name or filename from which to insert;
 completion is provided for filenames only.
 </p>
-<a name="index-koutliner_002c-C_002du-C_002dx-i"></a>
+<span id="index-koutliner_002c-C_002du-C_002dx-i"></span>
 <p>The elements from the original buffer are converted into kcells and
 inserted as the successors of the current cell.  If <kbd>{C-u C-x i}</kbd>
 is used, they are instead inserted as the initial children of the current
 cell.
 </p>
-<a name="index-kimport_003amode_002dalist"></a>
-<a name="index-kimport_003asuffix_002dalist"></a>
-<a name="index-outline_002c-conversion"></a>
-<a name="index-kotl_002dmode"></a>
-<a name="index-outline-mode"></a>
-<a name="index-koutline-mode"></a>
-<a name="index-file_002c-importing"></a>
-<a name="index-importing-a-file"></a>
+<span id="index-kimport_003amode_002dalist"></span>
+<span id="index-kimport_003asuffix_002dalist"></span>
+<span id="index-outline_002c-conversion"></span>
+<span id="index-kotl_002dmode"></span>
+<span id="index-outline-mode"></span>
+<span id="index-koutline-mode"></span>
+<span id="index-file_002c-importing"></span>
+<span id="index-importing-a-file"></span>
 <p>For information on mode and suffix-specific conversions performed on
 file elements before they are inserted, see the documentation for the
 variables, <code>kimport:mode-alist</code> and 
<code>kimport:suffix-alist</code>.  This
@@ -5496,11 +5395,11 @@ same conversion process applies if you invoke <kbd>{M-x 
kotl-mode
 <span class="key">RET</span>}</kbd> in a non-koutline buffer or if you perform 
a generic file import
 as described later in this section.
 </p>
-<a name="index-kimport_003ainsert_002dfile_002dcontents"></a>
+<span id="index-kimport_003ainsert_002dfile_002dcontents"></span>
 <p>Use <kbd>{M-x kimport:insert-file-contents <span 
class="key">RET</span>}</kbd> to insert an
 entire file into the current cell following point.
 </p>
-<a name="index-kimport_003afile"></a>
+<span id="index-kimport_003afile"></span>
 <p>The outliner supports conversion of three types of files into koutline
 files.  You can import a file into an existing koutline,
 following the tree at point, or can create a new koutline from the
@@ -5508,7 +5407,7 @@ imported file contents.  <kbd>{M-x kimport:file <span 
class="key">RET</span>}</k
 importation type based on the buffer or filename suffix of the file to
 import.
 </p>
-<a name="index-kotl_002dmode-1"></a>
+<span id="index-kotl_002dmode-1"></span>
 <p>If you want to convert a buffer from some other mode into a koutline and
 then want to save the converted buffer back to its original file,
 thereby replacing the original format, use <kbd>{M-x kotl-mode <span 
class="key">RET</span>}</kbd>.
@@ -5519,8 +5418,8 @@ this.
 the type of importation used on some text.  With these commands, your
 original file remains intact.
 </p>
-<a name="index-kimport_003atext"></a>
-<a name="index-text-file"></a>
+<span id="index-kimport_003atext"></span>
+<span id="index-text-file"></span>
 <p>Use <kbd>{M-x kimport:text <span class="key">RET</span>}</kbd> and you will 
be prompted for a text
 buffer or file to import and the new koutline buffer or file to create
 from its text.  Each paragraph will be imported as a separate cell, with
@@ -5528,16 +5427,16 @@ all imported cells at the same level, since indentation 
of paragraphs is
 presently ignored.  This same command can be used to import the
 contents, attributes and level structure of cells from another koutline.
 </p>
-<a name="index-kimport_003astar_002doutline"></a>
-<a name="index-emacs-outline"></a>
-<a name="index-star-outline"></a>
+<span id="index-kimport_003astar_002doutline"></span>
+<span id="index-emacs-outline"></span>
+<span id="index-star-outline"></span>
 <p>Star outlines are standard emacs outlines where each entry begins with
 one or more asterisk characters.  Use <kbd>{M-x kimport:star-outline
 <span class="key">RET</span>}</kbd> and you will be prompted for the star 
outline buffer or
 file to import and the new koutline buffer or file to create.
 </p>
-<a name="index-Augment-outline"></a>
-<a name="index-kimport_003aaug_002dpost_002doutline"></a>
+<span id="index-Augment-outline"></span>
+<span id="index-kimport_003aaug_002dpost_002doutline"></span>
 <p>(Skip this if you are unfamiliar with the Augment/NLS system originally
 created at SRI.)  Files exported from the Augment system as text often
 have alphanumeric statement identifiers on the right side.  You can
@@ -5547,19 +5446,17 @@ prompted for the Augment buffer or file to import and 
the koutline to
 create.
 </p>
 <hr>
-<a name="Exporting"></a>
-<div class="header">
+<span id="Exporting"></span><div class="header">
 <p>
 Previous: <a href="#Inserting-and-Importing" accesskey="p" 
rel="prev">Inserting and Importing</a>, Up: <a href="#Editing" accesskey="u" 
rel="up">Editing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Exporting-1"></a>
-<h4 class="subsection">6.5.8 Exporting</h4>
+<span id="Exporting-1"></span><h4 class="subsection">6.5.8 Exporting</h4>
 
-<a name="index-outline_002c-exporting-from"></a>
-<a name="index-outline_002c-HTML-conversion"></a>
-<a name="index-exporting"></a>
-<a name="index-HTML-conversion"></a>
-<a name="index-kexport_003ahtml"></a>
+<span id="index-outline_002c-exporting-from"></span>
+<span id="index-outline_002c-HTML-conversion"></span>
+<span id="index-exporting"></span>
+<span id="index-HTML-conversion"></span>
+<span id="index-kexport_003ahtml"></span>
 <p>Koutlines may be <em>exported</em> to other file formats.  Presently, the
 only format supported is conversion to HTML for publishing on the
 World-Wide Web.
@@ -5572,41 +5469,37 @@ written; the output file will not be displayed.
 </p>
 
 <hr>
-<a name="Viewing"></a>
-<div class="header">
+<span id="Viewing"></span><div class="header">
 <p>
 Next: <a href="#Links" accesskey="n" rel="next">Links</a>, Previous: <a 
href="#Editing" accesskey="p" rel="prev">Editing</a>, Up: <a href="#Koutliner" 
accesskey="u" rel="up">Koutliner</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Viewing-1"></a>
-<h3 class="section">6.6 Viewing</h3>
+<span id="Viewing-1"></span><h3 class="section">6.6 Viewing</h3>
 
-<a name="index-outline_002c-viewing"></a>
-<a name="index-view"></a>
+<span id="index-outline_002c-viewing"></span>
+<span id="index-view"></span>
 <p>The Koutliner has very flexible viewing facilities to allow you to
 effectively browse and study large amounts of material.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Hiding-and-Showing" 
accesskey="1">Hiding and Showing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Hiding-and-Showing" 
accesskey="1">Hiding and Showing</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#View-Specs" 
accesskey="2">View Specs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#View-Specs" 
accesskey="2">View Specs</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Hiding-and-Showing"></a>
-<div class="header">
+<span id="Hiding-and-Showing"></span><div class="header">
 <p>
 Next: <a href="#View-Specs" accesskey="n" rel="next">View Specs</a>, Previous: 
<a href="#Viewing" accesskey="p" rel="prev">Viewing</a>, Up: <a href="#Viewing" 
accesskey="u" rel="up">Viewing</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Hiding-and-Showing-1"></a>
-<h4 class="subsection">6.6.1 Hiding and Showing</h4>
+<span id="Hiding-and-Showing-1"></span><h4 class="subsection">6.6.1 Hiding and 
Showing</h4>
 
-<a name="index-outline_002c-hiding"></a>
-<a name="index-outline_002c-showing"></a>
-<a name="index-collapsing"></a>
-<a name="index-expanding"></a>
-<a name="index-hiding"></a>
-<a name="index-showing"></a>
+<span id="index-outline_002c-hiding"></span>
+<span id="index-outline_002c-showing"></span>
+<span id="index-collapsing"></span>
+<span id="index-expanding"></span>
+<span id="index-hiding"></span>
+<span id="index-showing"></span>
 <p>Individual cells, branches, or particular levels in the outline may be
 hidden or shown.  These commands work even when an outline buffer is
 read-only, e.g. when its file is not checked out of a version control
@@ -5618,65 +5511,65 @@ See <a href="#View-Specs">View Specs</a>.
 <p>Here are the major commands for showing and hiding Koutline cells.
 </p>
 <dl compact="compact">
-<dd><a name="index-hide-tree"></a>
-<a name="index-tree_002c-show"></a>
-<a name="index-C_002dc-C_002dh"></a>
+<dd><span id="index-hide-tree"></span>
+<span id="index-tree_002c-show"></span>
+<span id="index-C_002dc-C_002dh"></span>
 </dd>
 <dt><kbd>{C-c C-h}</kbd></dt>
 <dd><p>Hide (collapse) the tree rooted at point.
-<a name="index-show-tree"></a>
-<a name="index-tree_002c-show-1"></a>
-<a name="index-C_002dc-C_002ds"></a>
+<span id="index-show-tree"></span>
+<span id="index-tree_002c-show-1"></span>
+<span id="index-C_002dc-C_002ds"></span>
 </p></dd>
 <dt><kbd>{C-c C-s}</kbd></dt>
 <dd><p>Show (expand) the tree rooted at point.
 </p>
-<a name="index-outline_002c-all-cells"></a>
-<a name="index-cell_002c-show-all"></a>
-<a name="index-C_002dc-C_002da"></a>
+<span id="index-outline_002c-all-cells"></span>
+<span id="index-cell_002c-show-all"></span>
+<span id="index-C_002dc-C_002da"></span>
 </dd>
 <dt><kbd>{C-c C-a}</kbd></dt>
 <dd><p>Show (expand) all of the cells in the outline.  With a prefix arg,
 also toggle the display of blank lines between cells.
-<a name="index-level"></a>
-<a name="index-cell_002c-show-levels"></a>
-<a name="index-outline_002c-show-levels"></a>
-<a name="index-C_002dx-_0024"></a>
+<span id="index-level"></span>
+<span id="index-cell_002c-show-levels"></span>
+<span id="index-outline_002c-show-levels"></span>
+<span id="index-C_002dx-_0024"></span>
 </p></dd>
 <dt><kbd>{C-x $}</kbd></dt>
 <dd><p>Show all of the cells down to a particular &lt;level&gt;.  You are 
prompted
 for the level or a prefix argument may be given.
 </p>
-<a name="index-subtree_002c-hide"></a>
-<a name="index-tree_002c-hide-subtree"></a>
-<a name="index-cell_002c-hide-subtree"></a>
-<a name="index-hide-subtree"></a>
-<a name="index-C_002dM_002dh"></a>
+<span id="index-subtree_002c-hide"></span>
+<span id="index-tree_002c-hide-subtree"></span>
+<span id="index-cell_002c-hide-subtree"></span>
+<span id="index-hide-subtree"></span>
+<span id="index-C_002dM_002dh"></span>
 </dd>
 <dt><kbd>{C-M-h}</kbd></dt>
 <dd><p>Hide the subtree at point, excluding the root cell.
-<a name="index-subtree_002c-show"></a>
-<a name="index-tree_002c-show-subtree"></a>
-<a name="index-cell_002c-show-subtree"></a>
-<a name="index-show-subtree"></a>
-<a name="index-M_002dx-kotl_002dmode_003ashow_002dsubtree"></a>
+<span id="index-subtree_002c-show"></span>
+<span id="index-tree_002c-show-subtree"></span>
+<span id="index-cell_002c-show-subtree"></span>
+<span id="index-show-subtree"></span>
+<span id="index-M_002dx-kotl_002dmode_003ashow_002dsubtree"></span>
 </p></dd>
 <dt><kbd>{M-x kotl-mode:show-subtree}</kbd></dt>
 <dd><p>Show the subtree at point.  Use <kbd>{C-c C-s}</kbd> to achieve a 
similar
 effect; the only difference is that it will additionally expand the root
 cell.
 </p>
-<a name="index-overview"></a>
-<a name="index-outline_002c-overview"></a>
-<a name="index-C_002dc-C_002do"></a>
+<span id="index-overview"></span>
+<span id="index-outline_002c-overview"></span>
+<span id="index-C_002dc-C_002do"></span>
 </dd>
 <dt><kbd>{C-c C-o}</kbd></dt>
 <dd><p>Show an overview of the outline by showing only the first line of
 every cell.  With a prefix arg, also toggle the display of blank lines
 between cells.
-<a name="index-top_002dlevel-view"></a>
-<a name="index-outline_002c-top_002dlevel"></a>
-<a name="index-C_002dc-C_002dt"></a>
+<span id="index-top_002dlevel-view"></span>
+<span id="index-outline_002c-top_002dlevel"></span>
+<span id="index-C_002dc-C_002dt"></span>
 </p></dd>
 <dt><kbd>{C-c C-t}</kbd></dt>
 <dd><p>Show a top-level view of the outline by hiding all cells but those at
@@ -5686,31 +5579,29 @@ between cells.
 </p></dd>
 </dl>
 
-<a name="index-koutliner_002c-Action-Key_002c-hide-or-show-cell"></a>
-<a name="index-Action-Key_002c-hide-or-show-cell"></a>
-<a name="index-cell_002c-collapse"></a>
-<a name="index-cell_002c-expand"></a>
-<a name="index-koutliner_002c-M_002dRET"></a>
+<span id="index-koutliner_002c-Action-Key_002c-hide-or-show-cell"></span>
+<span id="index-Action-Key_002c-hide-or-show-cell"></span>
+<span id="index-cell_002c-collapse"></span>
+<span id="index-cell_002c-expand"></span>
+<span id="index-koutliner_002c-M_002dRET"></span>
 <p>A click or a press of the Action Key within a cell&rsquo;s body, but not on 
a
 Hyperbole button, toggles between hiding and showing the tree rooted at
 point.  Try it with either your mouse or with <kbd>{M-<span 
class="key">RET</span>}</kbd>.
 </p>
 
 <hr>
-<a name="View-Specs"></a>
-<div class="header">
+<span id="View-Specs"></span><div class="header">
 <p>
 Previous: <a href="#Hiding-and-Showing" accesskey="p" rel="prev">Hiding and 
Showing</a>, Up: <a href="#Viewing" accesskey="u" rel="up">Viewing</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="View-Specs-1"></a>
-<h4 class="subsection">6.6.2 View Specs</h4>
+<span id="View-Specs-1"></span><h4 class="subsection">6.6.2 View Specs</h4>
 
-<a name="index-view-spec"></a>
-<a name="index-modeline_002c-view-spec"></a>
-<a name="index-kvspec_003astring"></a>
-<a name="index-pipe-character"></a>
-<a name="index-_007c"></a>
-<a name="index-_003c_007cviewspec_003e"></a>
+<span id="index-view-spec"></span>
+<span id="index-modeline_002c-view-spec"></span>
+<span id="index-kvspec_003astring"></span>
+<span id="index-pipe-character"></span>
+<span id="index-_007c"></span>
+<span id="index-_003c_007cviewspec_003e"></span>
 <p><em>View specifications</em> (view specs, for short) are short codes used
 to control the view of a koutline.  The view specs in effect for an
 outline are always displayed in the modeline of the outline&rsquo;s window,
@@ -5721,7 +5612,7 @@ visual location.  The | (pipe character) is also used in 
links that
 specify view specs to indicate the start of a view spec sequence.
 See <a href="#Links">Links</a>.
 </p>
-<a name="index-outline_002c-view-specs"></a>
+<span id="index-outline_002c-view-specs"></span>
 <p>The current view spec is saved whenever the outline is saved.  The next
 time the outline is read in, the same view spec will be applied.
 </p>
@@ -5730,101 +5621,99 @@ presently supported and explains how to invoke a view 
spec.  There is no
 user-level means of adding your own view spec characters, so all other
 character codes are reserved for future use.
 </p>
-<a name="index-koutliner_002c-C_002dc-C_002dv"></a>
-<a name="index-view-spec_002c-setting"></a>
-<a name="index-view-spec_002c-changing"></a>
-<a name="index-changing-the-view-spec"></a>
-<a name="index-setting-the-view-spec"></a>
+<span id="index-koutliner_002c-C_002dc-C_002dv"></span>
+<span id="index-view-spec_002c-setting"></span>
+<span id="index-view-spec_002c-changing"></span>
+<span id="index-changing-the-view-spec"></span>
+<span id="index-setting-the-view-spec"></span>
 <p><kbd>{C-c C-v}</kbd> prompts for a new view spec setting in which the 
following
 codes are valid.  Any invalid characters in a view spec are ignored.
 Characters are evaluated in an order meant to do the right thing, even
 when you use conflicting view spec characters.  The standard initial
 view spec is &lt;|ben&gt;.
 </p>
-<a name="index-view-spec_002c-characters"></a>
+<span id="index-view-spec_002c-characters"></span>
 <dl compact="compact">
-<dd><a name="index-view-spec_002c-all-lines-and-levels"></a>
+<dd><span id="index-view-spec_002c-all-lines-and-levels"></span>
 </dd>
 <dt><kbd>a</kbd></dt>
 <dd><p>Show all cell levels and all lines in cells.
 </p>
-<a name="index-koutliner_002c-C_002dc-b"></a>
-<a name="index-blank-lines_002c-toggle"></a>
-<a name="index-view-spec_002c-blank-lines"></a>
-<a name="index-koutliner_002c-C_002dc-b-1"></a>
-<a name="index-toggling-blank-lines"></a>
+<span id="index-koutliner_002c-C_002dc-b"></span>
+<span id="index-blank-lines_002c-toggle"></span>
+<span id="index-view-spec_002c-blank-lines"></span>
+<span id="index-koutliner_002c-C_002dc-b-1"></span>
+<span id="index-toggling-blank-lines"></span>
 </dd>
 <dt><kbd>b</kbd></dt>
 <dd><p>Turn on blank lines between cells.  Without this character, blank lines
 will be turned off.  You may also use the <kbd>{C-c b}</kbd> key binding to
 toggle blank lines on and off independently of any other view settings.
 </p>
-<a name="index-view-spec_002c-lines-per-cell"></a>
-<a name="index-hide-lines"></a>
-<a name="index-collapse-lines"></a>
-<a name="index-cutoff-lines"></a>
+<span id="index-view-spec_002c-lines-per-cell"></span>
+<span id="index-hide-lines"></span>
+<span id="index-collapse-lines"></span>
+<span id="index-cutoff-lines"></span>
 </dd>
 <dt><kbd>cN</kbd></dt>
 <dd><p>Hide any lines greater than N in each cell.  0 means don&rsquo;t cutoff 
any
 lines.
 </p>
-<a name="index-ellipses"></a>
-<a name="index-view-spec_002c-ellipses"></a>
+<span id="index-ellipses"></span>
+<span id="index-view-spec_002c-ellipses"></span>
 </dd>
 <dt><kbd>e</kbd></dt>
 <dd><p>Show ellipses when some content of a cell or its subtree is hidden.
 This cannot be turned off.
 </p>
-<a name="index-level-1"></a>
-<a name="index-cell_002c-hiding-levels"></a>
-<a name="index-hide-levels"></a>
-<a name="index-view-spec_002c-show-levels"></a>
+<span id="index-level-1"></span>
+<span id="index-cell_002c-hiding-levels"></span>
+<span id="index-hide-levels"></span>
+<span id="index-view-spec_002c-show-levels"></span>
 </dd>
 <dt><kbd>lN</kbd></dt>
 <dd><p>Hide cells at levels deeper than N.  0 means don&rsquo;t hide any cells.
 </p>
-<a name="index-label-type"></a>
-<a name="index-view-spec_002c-label-type"></a>
-<a name="index-kview_003adefault_002dlabel_002dtype"></a>
-<a name="index-default-label-type"></a>
+<span id="index-label-type"></span>
+<span id="index-view-spec_002c-label-type"></span>
+<span id="index-kview_003adefault_002dlabel_002dtype"></span>
+<span id="index-default-label-type"></span>
 </dd>
 <dt><kbd>n</kbd></dt>
 <dd><p>Turn on the default label type, as given by the variable,
 <code>kview:default-label-type</code>.  Normally, this is alphanumeric labels.
-<a name="index-label-type_002c-idstamps"></a>
+<span id="index-label-type_002c-idstamps"></span>
 </p></dd>
 <dt><kbd>n0</kbd></dt>
 <dd><p>Display idstamps, e.g. 086.
-<a name="index-label-type_002c-alpha-1"></a>
+<span id="index-label-type_002c-alpha-1"></span>
 </p></dd>
 <dt><kbd>n1</kbd></dt>
 <dd><p>Display alpha labels, e.g. 1d3
-<a name="index-label-type_002c-legal-1"></a>
+<span id="index-label-type_002c-legal-1"></span>
 </p></dd>
 <dt><kbd>n.</kbd></dt>
 <dd><p>Display legal labels, e.g. 1.4.3
 </p></dd>
 </dl>
 
-<a name="index-view-spec_002c-example"></a>
+<span id="index-view-spec_002c-example"></span>
 <p>As a test, use <kbd>{C-h h k e}</kbd> to display the example koutline.
 Then use <kbd>{C-c C-v}</kbd> to set a view spec of &lsquo;c2l1&rsquo;.  This 
will turn
 off blank lines, clip each cell after its second line, and hide all
 cells below level one.
 </p>
 <hr>
-<a name="Links"></a>
-<div class="header">
+<span id="Links"></span><div class="header">
 <p>
 Next: <a href="#Cell-Attributes" accesskey="n" rel="next">Cell Attributes</a>, 
Previous: <a href="#Viewing" accesskey="p" rel="prev">Viewing</a>, Up: <a 
href="#Koutliner" accesskey="u" rel="up">Koutliner</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Links-1"></a>
-<h3 class="section">6.7 Links</h3>
+<span id="Links-1"></span><h3 class="section">6.7 Links</h3>
 
-<a name="index-link"></a>
-<a name="index-hyperlink"></a>
-<a name="index-klink-1"></a>
-<a name="index-_003c_003e-delimiters"></a>
+<span id="index-link"></span>
+<span id="index-hyperlink"></span>
+<span id="index-klink-1"></span>
+<span id="index-_003c_003e-delimiters"></span>
 <p>Cells may include hyperlinks that refer to other cells or to external
 sources of information.  Explicit Hyperbole buttons may be created as
 usual with mouse drags (see <a href="#By-Dragging">Creation Via Action Key
@@ -5832,17 +5721,17 @@ Drags</a>).  A <em>klink</em> is a special implicit 
link button, delimited by
 &lt;&gt; separators, that jumps to a koutline cell.  This section discusses
 klinks.
 </p>
-<a name="index-koutliner_002c-Action-Key_002c-klink"></a>
-<a name="index-Action-Key_002c-klink"></a>
-<a name="index-klink_002c-activating"></a>
-<a name="index-klink-referent"></a>
+<span id="index-koutliner_002c-Action-Key_002c-klink"></span>
+<span id="index-Action-Key_002c-klink"></span>
+<span id="index-klink_002c-activating"></span>
+<span id="index-klink-referent"></span>
 <p>Press the Action Key over a klink to follow it.  This will flash the
 klink as a button and then will display its referent in the other
 window.  If the klink contains a view spec, it will be applied when
 the referent is displayed.
 </p>
-<a name="index-klink_002c-inserting"></a>
-<a name="index-koutliner_002c-C_002dc-l"></a>
+<span id="index-klink_002c-inserting"></span>
+<span id="index-koutliner_002c-C_002dc-l"></span>
 <p>There are a number of easy ways to insert klinks into koutlines.  If you
 have mouse support under Hyperbole, simply click the Action Key within
 the indentation to the left of a cell text.  If you then double click on
@@ -5853,13 +5742,13 @@ implicit buttons, you may instead type in the text of 
the klink just as
 you see it in the examples below and it will work exactly as if it had
 been entered with the insert link command.
 </p>
-<a name="index-klink_002c-formats"></a>
+<span id="index-klink_002c-formats"></span>
 <p>There are basically three forms of klinks:
 </p>
 <dl compact="compact">
-<dd><a name="index-internal-klink"></a>
-<a name="index-klink_002c-internal"></a>
-<a name="index-_003c_0040-klink_003e"></a>
+<dd><span id="index-internal-klink"></span>
+<span id="index-klink_002c-internal"></span>
+<span id="index-_003c_0040-klink_003e"></span>
 </dd>
 <dt><em>internal</em></dt>
 <dd><p>&lsquo;<samp>&lt;@ 2b=06&gt;</samp>&rsquo; is an internal klink, since 
it refers to the koutline in
@@ -5872,8 +5761,8 @@ cell is moved elsewhere within the outline.  The form,
 outline back to the default value, with a blank line between each cell
 and the whole outline visible.
 </p>
-<a name="index-external-klink"></a>
-<a name="index-klink_002c-external"></a>
+<span id="index-external-klink"></span>
+<span id="index-klink_002c-external"></span>
 </dd>
 <dt><em>external</em></dt>
 <dd><p>The second klink format is an external link to another koutline, such
@@ -5882,8 +5771,8 @@ starting at the cell 3 (whose permanent identifer is 
012), with the
 view specification of: blank lines turned off, cutoff after one line
 per cell, and showing ellipses for cells or trees which are collapsed.
 </p>
-<a name="index-klink_002c-view-spec"></a>
-<a name="index-view-spec-klink"></a>
+<span id="index-klink_002c-view-spec"></span>
+<span id="index-view-spec-klink"></span>
 </dd>
 <dt><em>view spec</em></dt>
 <dd><p>The third format sets a view spec for the current koutline.  For
@@ -5894,36 +5783,34 @@ and to label cells with the alphanumeric style.
 </dl>
 
 <hr>
-<a name="Cell-Attributes"></a>
-<div class="header">
+<span id="Cell-Attributes"></span><div class="header">
 <p>
 Next: <a href="#Koutliner-History" accesskey="n" rel="next">Koutliner 
History</a>, Previous: <a href="#Links" accesskey="p" rel="prev">Links</a>, Up: 
<a href="#Koutliner" accesskey="u" rel="up">Koutliner</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Cell-Attributes-1"></a>
-<h3 class="section">6.8 Cell Attributes</h3>
+<span id="Cell-Attributes-1"></span><h3 class="section">6.8 Cell 
Attributes</h3>
 
-<a name="index-cell_002c-attribute"></a>
-<a name="index-attribute"></a>
+<span id="index-cell_002c-attribute"></span>
+<span id="index-attribute"></span>
 <p><em>Attributes</em> are named variables whose values are specific to an
 outline cell.  Thus, each cell has its own attribute list.  Every cell
 has three standard attributes:
 </p>
 <dl compact="compact">
-<dd><a name="index-idstamp-attribute"></a>
+<dd><span id="index-idstamp-attribute"></span>
 </dd>
 <dt><em>idstamp</em></dt>
 <dd><p>The permanent id of the cell, typically used in cross-file hyperlinks
 that reference the cell.
 </p>
-<a name="index-creator-attribute"></a>
-<a name="index-e_002dmail-address-1"></a>
-<a name="index-mail-address"></a>
+<span id="index-creator-attribute"></span>
+<span id="index-e_002dmail-address-1"></span>
+<span id="index-mail-address"></span>
 </dd>
 <dt><em>creator</em></dt>
 <dd><p>The e-mail address of the person who created this cell.
 </p>
-<a name="index-create_002dtime-attribute"></a>
-<a name="index-cell_002c-creation-time"></a>
+<span id="index-create_002dtime-attribute"></span>
+<span id="index-cell_002c-creation-time"></span>
 </dd>
 <dt><em>create-time</em></dt>
 <dd><p>The time at which the cell was created.  This is stored in a form that
@@ -5932,19 +5819,19 @@ format, such as &lsquo;<samp>Jan 28 18:27:59 CST 
2019</samp>&rsquo;.
 </p></dd>
 </dl>
 
-<a name="index-koutliner_002c-C_002dc-C_002di"></a>
-<a name="index-attribute_002c-adding"></a>
-<a name="index-attribute_002c-modifying"></a>
-<a name="index-attribute_002c-removing"></a>
+<span id="index-koutliner_002c-C_002dc-C_002di"></span>
+<span id="index-attribute_002c-adding"></span>
+<span id="index-attribute_002c-modifying"></span>
+<span id="index-attribute_002c-removing"></span>
 <p><kbd>{C-c C-i}</kbd> is the command to add an attribute to or to modify an
 existing attribute of the cell at point.  Think of it as inserting an
 attribute value.  To remove an attribute from a cell, set its value to
 &lsquo;<samp>nil</samp>&rsquo;.
 </p>
 
-<a name="index-attribute_002c-no_002dfill-2"></a>
-<a name="index-cell_002c-no_002dfill-attribute-2"></a>
-<a name="index-no_002dfill-attribute"></a>
+<span id="index-attribute_002c-no_002dfill-2"></span>
+<span id="index-cell_002c-no_002dfill-attribute-2"></span>
+<span id="index-no_002dfill-attribute"></span>
 <p>The &lsquo;no-fill&rsquo; attribute is special.  When set to 
&lsquo;<samp>t</samp>&rsquo;, it
 prevents movement, promotion, demotion, exchange, split or append
 commands from refilling the cell, even if the variable,
@@ -5952,12 +5839,12 @@ commands from refilling the cell, even if the variable,
 you from invoking explicit commands that refill the cell.
 See <a href="#Filling">Filling</a>.
 </p>
-<a name="index-koutliner_002c-Assist-Key_002c-listing-attributes"></a>
-<a name="index-Assist-Key_002c-listing-attributes"></a>
-<a name="index-listing-attributes"></a>
-<a name="index-outline_002c-attribute-list"></a>
-<a name="index-koutliner_002c-C_002dc-h"></a>
-<a name="index-koutliner_002c-C_002du-C_002dc-h"></a>
+<span id="index-koutliner_002c-Assist-Key_002c-listing-attributes"></span>
+<span id="index-Assist-Key_002c-listing-attributes"></span>
+<span id="index-listing-attributes"></span>
+<span id="index-outline_002c-attribute-list"></span>
+<span id="index-koutliner_002c-C_002dc-h"></span>
+<span id="index-koutliner_002c-C_002du-C_002dc-h"></span>
 <p>The attribute lists for the cells in the tree rooted at point may be
 inspected by pressing the Assist Key within the contents of a cell.
 <kbd>{C-c h}</kbd> prompts for a cell label and displays the cell&rsquo;s
@@ -5966,54 +5853,50 @@ the attributes for it and its subtree; use 0 as the 
kcell id to see
 attributes for all visible cells in the outline.
 </p>
 <hr>
-<a name="Koutliner-History"></a>
-<div class="header">
+<span id="Koutliner-History"></span><div class="header">
 <p>
 Previous: <a href="#Cell-Attributes" accesskey="p" rel="prev">Cell 
Attributes</a>, Up: <a href="#Koutliner" accesskey="u" rel="up">Koutliner</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Koutliner-History-1"></a>
-<h3 class="section">6.9 Koutliner History</h3>
+<span id="Koutliner-History-1"></span><h3 class="section">6.9 Koutliner 
History</h3>
 
-<a name="index-NLS"></a>
-<a name="index-Augment"></a>
-<a name="index-Engelbart"></a>
+<span id="index-NLS"></span>
+<span id="index-Augment"></span>
+<span id="index-Engelbart"></span>
 <p>Much of the Hyperbole outliner design is based upon concepts pioneered
 in the Augment/NLS system, <cite>[Eng84a]</cite>.  Augment treated documents as
 a hierarchical set of nodes, called statements, rather than cells.
 Every Augment document utilized this intrinsic structure.
 </p>
-<a name="index-distributed-collaboration"></a>
-<a name="index-collaboration"></a>
+<span id="index-distributed-collaboration"></span>
+<span id="index-collaboration"></span>
 <p>The system could rapidly change the view of a document by collapsing,
 expanding, generating, clipping, filtering, including or reordering
 these nodes.  It could also map individual views to multiple workstation
 displays across a network to aid in distributed, collaborative work.
 </p>
-<a name="index-knowledge-transfer"></a>
-<a name="index-idea-structuring"></a>
-<a name="index-cross-referencing"></a>
+<span id="index-knowledge-transfer"></span>
+<span id="index-idea-structuring"></span>
+<span id="index-cross-referencing"></span>
 <p>These facilities aided greatly in idea structuring, cross-referencing,
 and knowledge transfer.  The Koutliner is a start at bringing
 these capabilities back into the mainstream of modern computing culture.
 </p>
 
 <hr>
-<a name="HyRolo"></a>
-<div class="header">
+<span id="HyRolo"></span><div class="header">
 <p>
 Next: <a href="#Window-Configurations" accesskey="n" rel="next">Window 
Configurations</a>, Previous: <a href="#Koutliner" accesskey="p" 
rel="prev">Koutliner</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="HyRolo-1"></a>
-<h2 class="chapter">7 HyRolo</h2>
+<span id="HyRolo-1"></span><h2 class="chapter">7 HyRolo</h2>
 
-<a name="index-Rolo"></a>
-<a name="index-HyRolo"></a>
+<span id="index-Rolo"></span>
+<span id="index-HyRolo"></span>
 <p>Hyperbole includes a complete, advanced rolo system, HyRolo, for
 convenient management of hierarchical, record-oriented information.
 Most often this is used for contact management but it can quickly be
 adapted to most any record-oriented lookup task requiring fast retrieval.
 </p>
-<a name="index-rolo_002c-buttons-in"></a>
+<span id="index-rolo_002c-buttons-in"></span>
 <p>Hyperbole buttons may be included within rolo records and then
 manually activated whenever their records are retrieved in a search.
 </p>
@@ -6021,29 +5904,27 @@ manually activated whenever their records are retrieved 
in a search.
 tool.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Concepts" 
accesskey="1">HyRolo Concepts</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Concepts" 
accesskey="1">HyRolo Concepts</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Menu" 
accesskey="2">HyRolo Menu</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Menu" 
accesskey="2">HyRolo Menu</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Searching" 
accesskey="3">HyRolo Searching</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Searching" 
accesskey="3">HyRolo Searching</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Keys" 
accesskey="4">HyRolo Keys</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Keys" 
accesskey="4">HyRolo Keys</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Settings" 
accesskey="5">HyRolo Settings</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#HyRolo-Settings" 
accesskey="5">HyRolo Settings</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="HyRolo-Concepts"></a>
-<div class="header">
+<span id="HyRolo-Concepts"></span><div class="header">
 <p>
 Next: <a href="#HyRolo-Menu" accesskey="n" rel="next">HyRolo Menu</a>, 
Previous: <a href="#HyRolo" accesskey="p" rel="prev">HyRolo</a>, Up: <a 
href="#HyRolo" accesskey="u" rel="up">HyRolo</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="HyRolo-Concepts-1"></a>
-<h3 class="section">7.1 HyRolo Concepts</h3>
+<span id="HyRolo-Concepts-1"></span><h3 class="section">7.1 HyRolo 
Concepts</h3>
 
-<a name="index-rolo-file"></a>
-<a name="index-rolo-entry"></a>
+<span id="index-rolo-file"></span>
+<span id="index-rolo-entry"></span>
 <p>HyRolo manages and searches rolo files.  A <em>rolo file</em> consists of
 an optional header that starts and ends with a line of equal signs
 (at least three equal signs starting at the beginning of a line),
@@ -6101,31 +5982,29 @@ Searching for Manager turns up all Staffer entries.
 </p>
 
 <hr>
-<a name="HyRolo-Menu"></a>
-<div class="header">
+<span id="HyRolo-Menu"></span><div class="header">
 <p>
 Next: <a href="#HyRolo-Searching" accesskey="n" rel="next">HyRolo 
Searching</a>, Previous: <a href="#HyRolo-Concepts" accesskey="p" 
rel="prev">HyRolo Concepts</a>, Up: <a href="#HyRolo" accesskey="u" 
rel="up">HyRolo</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Rolo-Menu"></a>
-<h3 class="section">7.2 Rolo Menu</h3>
+<span id="Rolo-Menu"></span><h3 class="section">7.2 Rolo Menu</h3>
 
 <p>The Rolo submenu of the Hyperbole menu offers a full set of commands
 for searching and maintaining a personal address book.  It looks like
 so.
 </p>
-<div class="float"><a name="image_003aRolo-Menu"></a>
+<div class="float"><span id="image_003aRolo-Menu"></span>
 
 <img src="im/menu-rolo.png" alt="HyRolo Menu">
 <div class="float-caption"><p><strong>Image 7.1: </strong>HyRolo 
Menu</p></div></div>
-<a name="index-Rolo-menu"></a>
-<a name="index-HyRolo-menu"></a>
-<a name="index-menu_002c-HyRolo"></a>
-<a name="index-menu_002c-Rolo-1"></a>
-<a name="index-C_002dmouse_002d3-1"></a>
-<a name="index-popup-menu_002c-HyRolo"></a>
-<a name="index-popup-menu_002c-Rolo"></a>
-<a name="index-menubar-menu_002c-HyRolo"></a>
-<a name="index-menubar-menu_002c-Rolo"></a>
+<span id="index-Rolo-menu"></span>
+<span id="index-HyRolo-menu"></span>
+<span id="index-menu_002c-HyRolo"></span>
+<span id="index-menu_002c-Rolo-1"></span>
+<span id="index-C_002dmouse_002d3-1"></span>
+<span id="index-popup-menu_002c-HyRolo"></span>
+<span id="index-popup-menu_002c-Rolo"></span>
+<span id="index-menubar-menu_002c-HyRolo"></span>
+<span id="index-menubar-menu_002c-Rolo"></span>
 <p>The Rolo/ menu entry on the Hyperbole minibuffer menu provides the same
 set of commands as the menubar and popup menus, with more concise labels.
 <kbd>{C-mouse-3}</kbd> pops up the mode-specific menu in Emacs.  Experiment 
with
@@ -6133,18 +6012,18 @@ the menu or read the following sections explaining 
commands.
 </p>
 <p>The minibuffer Rolo/ menu offers the following commands:
 </p>
-<a name="index-Rolo-commands"></a>
-<a name="index-HyRolo-commands"></a>
-<a name="index-hyrolo_002dadd"></a>
-<a name="index-hyrolo_002ddisplay_002dmatches"></a>
-<a name="index-hyrolo_002dedit"></a>
-<a name="index-hyrolo_002dkill"></a>
-<a name="index-hyrolo_002dmail_002dto"></a>
-<a name="index-hyrolo_002dsort"></a>
-<a name="index-hyrolo_002dgrep"></a>
-<a name="index-hyrolo_002dfgrep"></a>
-<a name="index-hyrolo_002dword"></a>
-<a name="index-hyrolo_002dyank"></a>
+<span id="index-Rolo-commands"></span>
+<span id="index-HyRolo-commands"></span>
+<span id="index-hyrolo_002dadd"></span>
+<span id="index-hyrolo_002ddisplay_002dmatches"></span>
+<span id="index-hyrolo_002dedit"></span>
+<span id="index-hyrolo_002dkill"></span>
+<span id="index-hyrolo_002dmail_002dto"></span>
+<span id="index-hyrolo_002dsort"></span>
+<span id="index-hyrolo_002dgrep"></span>
+<span id="index-hyrolo_002dfgrep"></span>
+<span id="index-hyrolo_002dword"></span>
+<span id="index-hyrolo_002dyank"></span>
 <div class="example">
 <pre class="example">Menu Item       Command                 Description
 =====================================================================
@@ -6193,19 +6072,17 @@ containing &quot;Staffer&quot; at any level in a 
hierarchy, like so:
 </pre></div>
 
 <hr>
-<a name="HyRolo-Searching"></a>
-<div class="header">
+<span id="HyRolo-Searching"></span><div class="header">
 <p>
 Next: <a href="#HyRolo-Keys" accesskey="n" rel="next">HyRolo Keys</a>, 
Previous: <a href="#HyRolo-Menu" accesskey="p" rel="prev">HyRolo Menu</a>, Up: 
<a href="#HyRolo" accesskey="u" rel="up">HyRolo</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="HyRolo-Searching-1"></a>
-<h3 class="section">7.3 HyRolo Searching</h3>
+<span id="HyRolo-Searching-1"></span><h3 class="section">7.3 HyRolo 
Searching</h3>
 
-<a name="index-rolo-searching"></a>
-<a name="index-searching_002c-rolo"></a>
-<a name="index-menu-item_002c-RegexFind"></a>
-<a name="index-menu-item_002c-WordFind"></a>
-<a name="index-menu-item_002c-StringFind"></a>
+<span id="index-rolo-searching"></span>
+<span id="index-searching_002c-rolo"></span>
+<span id="index-menu-item_002c-RegexFind"></span>
+<span id="index-menu-item_002c-WordFind"></span>
+<span id="index-menu-item_002c-StringFind"></span>
 <p>See <a href="#HyRolo-Menu">HyRolo Menu</a>, for the list of HyRolo search 
commands.  In this
 section, the menu item names from the minibuffer menu are used to
 refer to each command.
@@ -6213,7 +6090,7 @@ refer to each command.
 <p>The <code>RegexFind</code> menu item searches the rolo list for all entries 
 which contain matches for a given regular expression.  The regular
 expression syntax used is the same as the one used within Emacs
-and across the GNU set of tools.  See <a 
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Regexps";>Syntax
 of Regular
+and across the GNU set of tools.  See <a 
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Regexps";>Syntax
 of Regular
 Expressions</a> in <cite>the GNU Emacs Manual</cite>, for full documentation 
on this
 format.
 </p>
@@ -6221,7 +6098,7 @@ format.
 search for &lsquo;<samp>product</samp>&rsquo;, it won&rsquo;t match to 
occurrences of
 &lsquo;<samp>production</samp>&rsquo;.  It is also handy for more precise name 
matching.
 </p>
-<a name="index-logical-rolo-searches"></a>
+<span id="index-logical-rolo-searches"></span>
 <p>The <code>StringFind</code> menu item has two uses.  It can find all entry
 matches for a string or can execute logical queries for more
 precise matching.  The format of logical queries is explained here; a
@@ -6260,30 +6137,28 @@ you should contact.
 
 
 <hr>
-<a name="HyRolo-Keys"></a>
-<div class="header">
+<span id="HyRolo-Keys"></span><div class="header">
 <p>
 Next: <a href="#HyRolo-Settings" accesskey="n" rel="next">HyRolo Settings</a>, 
Previous: <a href="#HyRolo-Searching" accesskey="p" rel="prev">HyRolo 
Searching</a>, Up: <a href="#HyRolo" accesskey="u" rel="up">HyRolo</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="HyRolo-Keys-1"></a>
-<h3 class="section">7.4 HyRolo Keys</h3>
+<span id="HyRolo-Keys-1"></span><h3 class="section">7.4 HyRolo Keys</h3>
 
-<a name="index-hyrolo-menu"></a>
-<a name="index-rolo-keys"></a>
+<span id="index-hyrolo-menu"></span>
+<span id="index-rolo-keys"></span>
 <p>After a rolo search is performed, point is left in the <em>rolo
 match buffer</em>, <samp>*Hyperbole Rolo*</samp>, which uses 
<code>hyrolo-mode</code> to
 simplify browsing many rolo matches.  Press <kbd>{?}</kbd> when in the
 match buffer for a summary of available keys, all of which are
 documented in this section.
 </p>
-<a name="index-HyRolo_002c-see-rolo"></a>
-<a name="index-rolo_002c-TAB"></a>
-<a name="index-rolo_002c-M_002dTAB"></a>
-<a name="index-rolo_002c-SHIFT_002dTAB"></a>
-<a name="index-rolo_002c-r"></a>
-<a name="index-rolo_002c-highlighting-matches"></a>
-<a name="index-rolo_002c-finding-matches"></a>
-<a name="index-rolo_002c-moving-through-matches"></a>
+<span id="index-HyRolo_002c-see-rolo"></span>
+<span id="index-rolo_002c-TAB"></span>
+<span id="index-rolo_002c-M_002dTAB"></span>
+<span id="index-rolo_002c-SHIFT_002dTAB"></span>
+<span id="index-rolo_002c-r"></span>
+<span id="index-rolo_002c-highlighting-matches"></span>
+<span id="index-rolo_002c-finding-matches"></span>
+<span id="index-rolo_002c-moving-through-matches"></span>
 <p>If your emacs version supports textual highlighting, each search match
 is highlighted for quick, visual location.  {<tt class="key">TAB</tt>} moves 
point
 forward to successive spans of text which match the search expression.
@@ -6292,13 +6167,13 @@ point backward to earlier matches.  These keys allow 
you to quickly
 find the matching entry of most interest to you if your search
 expression failed to narrow the matches sufficiently.
 </p>
-<a name="index-rolo_002c-M_002ds"></a>
-<a name="index-rolo_002c-C_002ds"></a>
-<a name="index-rolo_002c-C_002dr"></a>
-<a name="index-rolo_002c-l"></a>
-<a name="index-rolo_002c-extending-a-match"></a>
-<a name="index-rolo_002c-interactive-searching"></a>
-<a name="index-rolo_002c-locating-a-name"></a>
+<span id="index-rolo_002c-M_002ds"></span>
+<span id="index-rolo_002c-C_002ds"></span>
+<span id="index-rolo_002c-C_002dr"></span>
+<span id="index-rolo_002c-l"></span>
+<span id="index-rolo_002c-extending-a-match"></span>
+<span id="index-rolo_002c-interactive-searching"></span>
+<span id="index-rolo_002c-locating-a-name"></span>
 <p>If you want to extend the match expression with some more characters
 to find a particular entry, use <kbd>{M-s}</kbd>.  This performs an
 interactive search forward for the match expression.  You may add to
@@ -6314,12 +6189,12 @@ matches.  Standard string, <kbd>{C-s}</kbd>, and 
regular expression,
 <kbd>{C-M-s}</kbd>, interactive search commands are also available within
 the rolo match buffer.
 </p>
-<a name="index-rolo_002c-a"></a>
-<a name="index-rolo_002c-h"></a>
-<a name="index-rolo_002c-o"></a>
-<a name="index-rolo_002c-s"></a>
-<a name="index-rolo_002c-t"></a>
-<a name="index-rolo_002c-outlining"></a>
+<span id="index-rolo_002c-a"></span>
+<span id="index-rolo_002c-h"></span>
+<span id="index-rolo_002c-o"></span>
+<span id="index-rolo_002c-s"></span>
+<span id="index-rolo_002c-t"></span>
+<span id="index-rolo_002c-outlining"></span>
 <p>Single key outlining commands are also available for browsing matches.
 If your search matches a large number of entries, use
 <kbd>{t}</kbd> to get a top-level summary of entries.  Only the first
@@ -6334,68 +6209,68 @@ to expand all entries in the buffer.
 </p>
 <p>Many other keys are defined to help you move through matching entries.
 </p>
-<a name="index-rolo_002c-moving-to-entries"></a>
+<span id="index-rolo_002c-moving-to-entries"></span>
 <dl compact="compact">
-<dd><a name="index-rolo_002c-b"></a>
-<a name="index-b-1"></a>
+<dd><span id="index-rolo_002c-b"></span>
+<span id="index-b-1"></span>
 </dd>
 <dt><kbd>{b}</kbd></dt>
 <dd><p>Move to the previous entry at the same level as the current entry.
-<a name="index-rolo_002c-f"></a>
-<a name="index-f-1"></a>
+<span id="index-rolo_002c-f"></span>
+<span id="index-f-1"></span>
 </p></dd>
 <dt><kbd>{f}</kbd></dt>
 <dd><p>Move to the next entry at the same level as the current entry.
-<a name="index-rolo_002c-n"></a>
-<a name="index-n-1"></a>
+<span id="index-rolo_002c-n"></span>
+<span id="index-n-1"></span>
 </p></dd>
 <dt><kbd>{n}</kbd></dt>
 <dd><p>Move to the next entry at any level.
-<a name="index-rolo_002c-p"></a>
-<a name="index-p-1"></a>
+<span id="index-rolo_002c-p"></span>
+<span id="index-p-1"></span>
 </p></dd>
 <dt><kbd>{p}</kbd></dt>
 <dd><p>Move to the previous entry at any level.
-<a name="index-rolo_002c-u"></a>
-<a name="index-u-1"></a>
+<span id="index-rolo_002c-u"></span>
+<span id="index-u-1"></span>
 </p></dd>
 <dt><kbd>{u}</kbd></dt>
 <dd><p>Move to the previous entry one level up.
-<a name="index-rolo_002c-_002e"></a>
-<a name="index-rolo_002c-_003c"></a>
-<a name="index-_002e-or-_003c"></a>
+<span id="index-rolo_002c-_002e"></span>
+<span id="index-rolo_002c-_003c"></span>
+<span id="index-_002e-or-_003c"></span>
 </p></dd>
 <dt><kbd>{. or &lt;}</kbd></dt>
 <dd><p>Move to the beginning of the buffer.
-<a name="index-rolo_002c-_002c"></a>
-<a name="index-rolo_002c-_003e"></a>
-<a name="index-_002c-or-_003e"></a>
+<span id="index-rolo_002c-_002c"></span>
+<span id="index-rolo_002c-_003e"></span>
+<span id="index-_002c-or-_003e"></span>
 </p></dd>
 <dt><kbd>{, or &gt;}</kbd></dt>
 <dd><p>Move to the end of the buffer.
-<a name="index-rolo_002c-DEL"></a>
-<a name="index-DEL"></a>
+<span id="index-rolo_002c-DEL"></span>
+<span id="index-DEL"></span>
 </p></dd>
 <dt><kbd>{<span class="key">DEL</span>}</kbd></dt>
 <dd><p>Scroll backward a windowful.
-<a name="index-rolo_002c-SPC"></a>
-<a name="index-SPC"></a>
+<span id="index-rolo_002c-SPC"></span>
+<span id="index-SPC"></span>
 </p></dd>
 <dt><kbd>{<span class="key">SPC</span>}</kbd></dt>
 <dd><p>Scroll forward a windowful.
 </p></dd>
 </dl>
 
-<a name="index-rolo_002c-e"></a>
-<a name="index-rolo_002c-editing"></a>
-<a name="index-datestamps"></a>
-<a name="index-rolo_002c-datestamps"></a>
-<a name="index-customize_002c-rolo-datestamps"></a>
-<a name="index-menu_002c-Toggle_002dRolo_002dDates"></a>
-<a name="index-customize_002c-rolo-edits"></a>
-<a name="index-customize_002c-rolo-additions"></a>
-<a name="index-hyrolo_002dedit_002dhook"></a>
-<a name="index-hyrolo_002dadd_002dhook"></a>
+<span id="index-rolo_002c-e"></span>
+<span id="index-rolo_002c-editing"></span>
+<span id="index-datestamps"></span>
+<span id="index-rolo_002c-datestamps"></span>
+<span id="index-customize_002c-rolo-datestamps"></span>
+<span id="index-menu_002c-Toggle_002dRolo_002dDates"></span>
+<span id="index-customize_002c-rolo-edits"></span>
+<span id="index-customize_002c-rolo-additions"></span>
+<span id="index-hyrolo_002dedit_002dhook"></span>
+<span id="index-hyrolo_002dadd_002dhook"></span>
 <p>Use the <kbd>{e}</kbd> key to edit the current entry within your personal
 rolo file.  A datestamp will automatically be added or updated at the end
 of the entry, unless this feature has been turned off via the
@@ -6405,23 +6280,21 @@ programmed modification of the way rolo edits work.  
The variable,
 <code>hyrolo-add-hook</code>, works the same way but is evaluated when a new
 entry is first added.
 </p>
-<a name="index-rolo_002c-q"></a>
-<a name="index-rolo_002c-quitting"></a>
+<span id="index-rolo_002c-q"></span>
+<span id="index-rolo_002c-quitting"></span>
 <p>Once you have found an entry of interest and you want to remove the
 rolo match buffer, use <kbd>{q}</kbd> to quit.  This will restore your
 current frame to its state prior to the rolo search.
 </p>
 <hr>
-<a name="HyRolo-Settings"></a>
-<div class="header">
+<span id="HyRolo-Settings"></span><div class="header">
 <p>
 Previous: <a href="#HyRolo-Keys" accesskey="p" rel="prev">HyRolo Keys</a>, Up: 
<a href="#HyRolo" accesskey="u" rel="up">HyRolo</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="HyRolo-Settings-1"></a>
-<h3 class="section">7.5 HyRolo Settings</h3>
+<span id="HyRolo-Settings-1"></span><h3 class="section">7.5 HyRolo 
Settings</h3>
 
-<a name="index-hyrolo_002dfile_002dlist"></a>
-<a name="index-rolo_002c-personal"></a>
+<span id="index-hyrolo_002dfile_002dlist"></span>
+<span id="index-rolo_002c-personal"></span>
 <p>The files used in any rolo search are given by the
 <code>hyrolo-file-list</code> variable, whose default value is
 typically <code>(&quot;~/.rolo.otl&quot;</code>.  Searches scan only your
@@ -6436,8 +6309,8 @@ command on the rolo menu adds entries.
 personal rolo.  If such a file exists, you will be prompted to rename
 it whenever the HyRolo system is loaded.
 </p>
-<a name="index-BBDB"></a>
-<a name="index-Big-Brother-DataBase"></a>
+<span id="index-BBDB"></span>
+<span id="index-Big-Brother-DataBase"></span>
 <p>If you use the Big Brother DataBase (BBDB) Emacs package to capture
 email addresses and store contact information, the rolo automatically
 works with it.  If the BBDB package is loaded before HyRolo, then your
@@ -6450,9 +6323,9 @@ BBDB entries, just finding them.
 <code>hyrolo-bbdb-fgrep</code> (string finding) and 
<code>hyrolo-bbdb-grep</code>
 (regular expression finding).  They may be bound to keys if desired.
 </p>
-<a name="index-contacts_002c-Google"></a>
-<a name="index-Google-Contacts"></a>
-<a name="index-Gmail-Contacts"></a>
+<span id="index-contacts_002c-Google"></span>
+<span id="index-Google-Contacts"></span>
+<span id="index-Gmail-Contacts"></span>
 <p>If you use Google/Gmail Contacts, you can configure the HyRolo to
 query your Google Contacts for matches.  First you must download and
 install the external <samp>google-contacts</samp> package using the Emacs
@@ -6469,14 +6342,14 @@ that will be displayed on your screen.  After 
authorization, your
 your information will be cached so that you are not prompted for
 it again within this Emacs session.
 </p>
-<a name="index-hyrolo_002dgoogle_002dcontacts_002dfgrep"></a>
-<a name="index-hyrolo_002dgoogle_002dcontacts_002dgrep"></a>
+<span id="index-hyrolo_002dgoogle_002dcontacts_002dfgrep"></span>
+<span id="index-hyrolo_002dgoogle_002dcontacts_002dgrep"></span>
 <p>For finding matches within only Google Contacts, there are the commands
 <code>hyrolo-google-contacts-fgrep</code> (string finding) and
 <code>hyrolo-google-contacts-grep</code> (regular expression finding).  They
 may be bound to keys if desired.
 </p>
-<a name="index-hyrolo_002dgoogle_002dcontacts_002dflag"></a>
+<span id="index-hyrolo_002dgoogle_002dcontacts_002dflag"></span>
 <p>If you ever need to disable Google Contacts usage, there is a
 flag, <code>hyrolo-google-contacts-flag</code>, which when set to 
&lsquo;<samp>nil</samp>&rsquo;
 disables searching of your Google Contacts.
@@ -6485,10 +6358,10 @@ disables searching of your Google Contacts.
 </p>
 <dl compact="compact">
 <dd>
-<a name="index-rolo_002c-highlighting-matches-1"></a>
+<span id="index-rolo_002c-highlighting-matches-1"></span>
 </dd>
 <dt><code>hyrolo-highlight-face</code>
-<a name="index-hyrolo_002dhighlight_002dface"></a>
+<span id="index-hyrolo_002dhighlight_002dface"></span>
 </dt>
 <dd><p>If textual highlighting is available in your emacs on your current
 display type, the rolo uses the value of <code>hyrolo-highlight-face</code> as
@@ -6496,7 +6369,7 @@ the face which highlights search matches.
 </p>
 </dd>
 <dt><code>hyrolo-kill-buffers-after-use</code>
-<a name="index-hyrolo_002dkill_002dbuffers_002dafter_002duse"></a>
+<span id="index-hyrolo_002dkill_002dbuffers_002dafter_002duse"></span>
 </dt>
 <dd><p>HyRolo file buffers are left around after they are searched, on the
 assumption that another search is likely to follow within this emacs
@@ -6505,7 +6378,7 @@ setting: <code>(setq hyrolo-kill-buffers-after-use 
t)</code>.
 </p>
 </dd>
 <dt><code>hyrolo-save-buffers-after-use</code>
-<a name="index-hyrolo_002dsave_002dbuffers_002dafter_002duse"></a>
+<span id="index-hyrolo_002dsave_002dbuffers_002dafter_002duse"></span>
 </dt>
 <dd><p>After an entry is killed, the modified rolo file is automatically
 saved.  If you would rather always save files yourself, use this
@@ -6513,7 +6386,7 @@ setting: <code>(setq hyrolo-save-buffers-after-use 
nil)</code>.
 </p>
 </dd>
 <dt><code>hyrolo-email-format</code>
-<a name="index-hyrolo_002demail_002dformat"></a>
+<span id="index-hyrolo_002demail_002dformat"></span>
 </dt>
 <dd><p>When an entry is being added from within a mail reader buffer, the
 rolo extracts the sender&rsquo;s name and e-mail address and prompts you
@@ -6524,7 +6397,7 @@ change its value.
 </p>
 </dd>
 <dt><code>hyrolo-hdr-regexp</code>
-<a name="index-hyrolo_002dhdr_002dregexp"></a>
+<span id="index-hyrolo_002dhdr_002dregexp"></span>
 </dt>
 <dd><p>A rolo file may begin with an optional header section which is copied
 to the match display buffer whenever any matches are found during a
@@ -6535,7 +6408,7 @@ matching entries retrieved from multiple files during a 
single search.
 </p>
 </dd>
 <dt><code>hyrolo-entry-regexp</code>
-<a name="index-hyrolo_002dentry_002dregexp"></a>
+<span id="index-hyrolo_002dentry_002dregexp"></span>
 </dt>
 <dd><p>The rolo entry start delimiter is given by the regular expression
 variable, <code>hyrolo-entry-regexp</code>, whose default value is 
&quot;^\*+&quot;, i.e. 
@@ -6543,7 +6416,7 @@ one or more asterisks at the beginning of a line.
 </p>
 </dd>
 <dt><code>hyrolo-display-format-function</code>
-<a name="index-hyrolo_002ddisplay_002dformat_002dfunction"></a>
+<span id="index-hyrolo_002ddisplay_002dformat_002dfunction"></span>
 </dt>
 <dd><p>When a rolo search is done, each matching entry is passed through the
 function given by the variable, <code>hyrolo-display-format-function</code>,
@@ -6562,18 +6435,16 @@ There is never a need to learn a complicated query 
language.
 </dl>
 
 <hr>
-<a name="Window-Configurations"></a>
-<div class="header">
+<span id="Window-Configurations"></span><div class="header">
 <p>
 Next: <a href="#Developing-with-Hyperbole" accesskey="n" rel="next">Developing 
with Hyperbole</a>, Previous: <a href="#HyRolo" accesskey="p" 
rel="prev">HyRolo</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Window-Configurations-1"></a>
-<h2 class="chapter">8 Window Configurations</h2>
+<span id="Window-Configurations-1"></span><h2 class="chapter">8 Window 
Configurations</h2>
 
-<a name="index-window-configurations"></a>
-<a name="index-restoring-windows"></a>
-<a name="index-saving-window-configurations"></a>
-<a name="index-file_002c-hywconfig_002eel"></a>
+<span id="index-window-configurations"></span>
+<span id="index-restoring-windows"></span>
+<span id="index-saving-window-configurations"></span>
+<span id="index-file_002c-hywconfig_002eel"></span>
 <p>This chapter explains Hyperbole&rsquo;s <samp>hywconfig.el</samp> library.  
It lets you
 save and restore window configurations, i.e. the layout of windows and
 buffers displayed within an emacs frame.  This is useful to save a
@@ -6601,17 +6472,17 @@ hywconfig window configuration commands:
 </pre>
 <p>The operations on this menu are defined as follows.
 </p>
-<a name="index-hywconfig-commands"></a>
-<a name="index-wconfig-commands"></a>
-<a name="index-window-configuration-commands"></a>
-<a name="index-named-window-configuration"></a>
-<a name="index-window-configuration-ring"></a>
-<a name="index-hywconfig_002dadd_002dby_002dname"></a>
-<a name="index-hywconfig_002ddelete_002dby_002dname"></a>
-<a name="index-hywconfig_002drestore_002dby_002dname"></a>
-<a name="index-hywconfig_002ddelete_002dpop"></a>
-<a name="index-hywconfig_002dring_002dsave"></a>
-<a name="index-hywconfig_002dyank_002dpop"></a>
+<span id="index-hywconfig-commands"></span>
+<span id="index-wconfig-commands"></span>
+<span id="index-window-configuration-commands"></span>
+<span id="index-named-window-configuration"></span>
+<span id="index-window-configuration-ring"></span>
+<span id="index-hywconfig_002dadd_002dby_002dname"></span>
+<span id="index-hywconfig_002ddelete_002dby_002dname"></span>
+<span id="index-hywconfig_002drestore_002dby_002dname"></span>
+<span id="index-hywconfig_002ddelete_002dpop"></span>
+<span id="index-hywconfig_002dring_002dsave"></span>
+<span id="index-hywconfig_002dyank_002dpop"></span>
 <div class="example">
 <pre class="example">Menu Item       Command                     Description
 =====================================================================
@@ -6631,20 +6502,20 @@ commands permit saves and restores using only the 
mouse.  Since the ring
 commands are a bit more complex than their by-name counterparts, the
 following paragraphs explain them in more detail.
 </p>
-<a name="index-kill_002dring"></a>
+<span id="index-kill_002dring"></span>
 <p>HyWconfig creates a ring structure that operates just like the Emacs
-<code>kill-ring</code> (see <a 
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Kill-Ring";>Kill
 Ring</a> in <cite>the GNU Emacs Manual</cite>) but its
+<code>kill-ring</code> (see <a 
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Kill-Ring";>Kill
 Ring</a> in <cite>the GNU Emacs Manual</cite>) but its
 elements are window configurations rather than text regions.  You can
 add an element to the ring to save the current window configuration in
 the selected frame.  After several elements are in the ring, you can
 walk through all of them in sequence until the desired configuration
 is restored.
 </p>
-<a name="index-hywconfig_002dring_002dsave-1"></a>
+<span id="index-hywconfig_002dring_002dsave-1"></span>
 <p>SaveRing executes the <code>hywconfig-ring-save</code> command which
 saves the current window configuration to the ring.
 </p>
-<a name="index-hywconfig_002dyank_002dpop-1"></a>
+<span id="index-hywconfig_002dyank_002dpop-1"></span>
 <p>YankRing executes the <code>hywconfig-yank-pop</code> command.  It restores
 the window configuration currently pointed to within the ring.  It
 does not delete this configuration from the ring but it does move the
@@ -6653,60 +6524,56 @@ thus restore successive window configurations until the 
ring pointer
 wraps around.  Simply stop when a desired configuration appears and
 use <kbd>{q}</kbd> to quit from the minibuffer menu.
 </p>
-<a name="index-hywconfig_002ddelete_002dpop-1"></a>
+<span id="index-hywconfig_002ddelete_002dpop-1"></span>
 <p>PopRing calls the <code>hywconfig-delete-pop</code> command.  It is used to
 restore a previously saved configuration and to delete it from the ring.
 Simply stop when a desired configuration appears and use <kbd>{q}</kbd> to
 quit from the minibuffer menu.
 </p>
-<a name="index-hywconfig_002dring_002dmax"></a>
+<span id="index-hywconfig_002dring_002dmax"></span>
 <p>The maximum number of elements the ring can hold is set by the
 <code>hywconfig-ring-max</code> variable whose default is 10.  Any saves beyond
 this value will delete the oldest element in the ring before a new one
 is added.
 </p>
 <hr>
-<a name="Developing-with-Hyperbole"></a>
-<div class="header">
+<span id="Developing-with-Hyperbole"></span><div class="header">
 <p>
 Next: <a href="#Glossary" accesskey="n" rel="next">Glossary</a>, Previous: <a 
href="#Window-Configurations" accesskey="p" rel="prev">Window 
Configurations</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Developing-with-Hyperbole-1"></a>
-<h2 class="chapter">9 Developing with Hyperbole</h2>
+<span id="Developing-with-Hyperbole-1"></span><h2 class="chapter">9 Developing 
with Hyperbole</h2>
 
 <p>This chapter is for people who are familiar with Emacs Lisp and
 wish to customize Hyperbole, to extend it, or to develop other systems
 using Hyperbole as a base.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Hook-Variables" 
accesskey="1">Hook Variables</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Hook-Variables" 
accesskey="1">Hook Variables</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Creating-Types" 
accesskey="2">Creating Types</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Creating-Types" 
accesskey="2">Creating Types</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Explicit-Button-Technicalities" accesskey="3">Explicit Button 
Technicalities</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Explicit-Button-Technicalities" accesskey="3">Explicit Button 
Technicalities</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Encapsulating-Systems" 
accesskey="4">Encapsulating Systems</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Encapsulating-Systems" 
accesskey="4">Encapsulating Systems</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Embedding-Hyperbole" 
accesskey="5">Embedding Hyperbole</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Embedding-Hyperbole" 
accesskey="5">Embedding Hyperbole</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Hook-Variables"></a>
-<div class="header">
+<span id="Hook-Variables"></span><div class="header">
 <p>
 Next: <a href="#Creating-Types" accesskey="n" rel="next">Creating Types</a>, 
Previous: <a href="#Developing-with-Hyperbole" accesskey="p" 
rel="prev">Developing with Hyperbole</a>, Up: <a 
href="#Developing-with-Hyperbole" accesskey="u" rel="up">Developing with 
Hyperbole</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Hook-Variables-1"></a>
-<h3 class="section">9.1 Hook Variables</h3>
+<span id="Hook-Variables-1"></span><h3 class="section">9.1 Hook Variables</h3>
 
-<a name="index-variables"></a>
-<a name="index-hook-variables"></a>
+<span id="index-variables"></span>
+<span id="index-hook-variables"></span>
 <p>Hyperbole supplies a number of hook variables that allow you to adjust
 its basic operations to meet your own needs, without requiring you to
 change the code for those operations.
 </p>
-<a name="index-add_002dhook"></a>
+<span id="index-add_002dhook"></span>
 <p>We find it best to always set the value of hook variables either to
 &lsquo;<samp>nil</samp>&rsquo; or to a list of function names of no arguments, 
each of which
 will be called in sequence when the hook is triggered.  If you use
@@ -6719,7 +6586,7 @@ appended.  Hyperbole includes the following hook 
variables:
 </p>
 <dl compact="compact">
 <dt><code>hyperbole-init-hook</code>
-<a name="index-hyperbole_002dinit_002dhook"></a>
+<span id="index-hyperbole_002dinit_002dhook"></span>
 </dt>
 <dd><p>For customization at Hyperbole initialization time.  Use this to load
 any personal Hyperbole type definitions or key bindings you might have.
@@ -6728,27 +6595,27 @@ initialized, i.e. prior to keyboard and mouse bindings.
 </p>
 </dd>
 <dt><code>action-key-depress-hook</code>
-<a name="index-action_002dkey_002ddepress_002dhook"></a>
+<span id="index-action_002dkey_002ddepress_002dhook"></span>
 </dt>
 <dt><code>assist-key-depress-hook</code>
-<a name="index-assist_002dkey_002ddepress_002dhook"></a>
+<span id="index-assist_002dkey_002ddepress_002dhook"></span>
 </dt>
 <dd><p>Run after an Action or Assist Mouse Key depress is detected.
 </p>
 </dd>
 <dt><code>action-key-release-hook</code>
-<a name="index-action_002dkey_002drelease_002dhook"></a>
+<span id="index-action_002dkey_002drelease_002dhook"></span>
 </dt>
 <dt><code>assist-key-release-hook</code>
-<a name="index-assist_002dkey_002drelease_002dhook"></a>
+<span id="index-assist_002dkey_002drelease_002dhook"></span>
 </dt>
 <dd><p>Run after an Action or Assist Mouse Key release is detected, before
 any associated action is executed.
 </p>
-<a name="index-hbut_003acurrent"></a>
+<span id="index-hbut_003acurrent"></span>
 </dd>
 <dt><code>action-act-hook</code>
-<a name="index-action_002dact_002dhook"></a>
+<span id="index-action_002dact_002dhook"></span>
 </dt>
 <dd><p>Run before each Hyperbole button activation.
 The variable <code>hbut:current</code> contains the button to be activated when
@@ -6756,25 +6623,25 @@ this is run.
 </p>
 </dd>
 <dt><code>ebut-create-hook</code>
-<a name="index-ebut_002dcreate_002dhook"></a>
+<span id="index-ebut_002dcreate_002dhook"></span>
 </dt>
 <dd><p>Adds to the Hyperbole explicit button creation process.
 </p>
 </dd>
 <dt><code>ebut-delete-hook</code>
-<a name="index-ebut_002ddelete_002dhook"></a>
+<span id="index-ebut_002ddelete_002dhook"></span>
 </dt>
 <dd><p>Adds to the Hyperbole explicit button deletion process.
 </p>
 </dd>
 <dt><code>ebut-modify-hook</code>
-<a name="index-ebut_002dmodify_002dhook"></a>
+<span id="index-ebut_002dmodify_002dhook"></span>
 </dt>
 <dd><p>Executed when an explicit button&rsquo;s attributes are modified.
 </p>
 </dd>
 <dt><code>hibtypes-begin-load-hook</code>
-<a name="index-hibtypes_002dbegin_002dload_002dhook"></a>
+<span id="index-hibtypes_002dbegin_002dload_002dhook"></span>
 </dt>
 <dd><p>Executed prior to loading of standard Hyperbole implicit button types.
 Used to load site-specific low priority implicit button types since
@@ -6782,7 +6649,7 @@ lowest priority ibtypes are loaded first.
 </p>
 </dd>
 <dt><code>hibtypes-end-load-hook</code>
-<a name="index-hibtypes_002dend_002dload_002dhook"></a>
+<span id="index-hibtypes_002dend_002dload_002dhook"></span>
 </dt>
 <dd><p>Executed after loading of standard Hyperbole implicit button types.
 Used to load site-specific high priority implicit button types since
@@ -6790,52 +6657,52 @@ highest priority ibtypes are loaded last.
 </p>
 </dd>
 <dt><code>htype-create-hook</code>
-<a name="index-htype_002dcreate_002dhook"></a>
+<span id="index-htype_002dcreate_002dhook"></span>
 </dt>
 <dd><p>Executed whenever a Hyperbole type (e.g. action type or implicit button
 type) is added to the environment.
 </p>
 </dd>
 <dt><code>htype-delete-hook</code>
-<a name="index-htype_002ddelete_002dhook"></a>
+<span id="index-htype_002ddelete_002dhook"></span>
 </dt>
 <dd><p>Executed whenever a type is deleted from the environment.
 </p>
 </dd>
 <dt><code>kotl-mode-hook</code>
-<a name="index-kotl_002dmode_002dhook"></a>
+<span id="index-kotl_002dmode_002dhook"></span>
 </dt>
 <dd><p>Executed whenever a koutline is created or read in or when kotl-mode is
 invoked.
 </p>
 </dd>
 <dt><code>hyrolo-add-hook</code>
-<a name="index-hyrolo_002dadd_002dhook-1"></a>
+<span id="index-hyrolo_002dadd_002dhook-1"></span>
 </dt>
 <dd><p>Executed after the addition of a new rolo entry.
 </p>
 </dd>
 <dt><code>hyrolo-display-hook</code>
-<a name="index-hyrolo_002ddisplay_002dhook"></a>
+<span id="index-hyrolo_002ddisplay_002dhook"></span>
 </dt>
 <dd><p>Executed when rolo matches are displayed.
 </p>
 </dd>
 <dt><code>hyrolo-edit-hook</code>
-<a name="index-hyrolo_002dedit_002dhook-1"></a>
+<span id="index-hyrolo_002dedit_002dhook-1"></span>
 </dt>
 <dd><p>Executed after point is successfully moved to an entry to be edited.
 </p>
 </dd>
 <dt><code>hyrolo-mode-hook</code>
-<a name="index-hyrolo_002dmode_002dhook"></a>
+<span id="index-hyrolo_002dmode_002dhook"></span>
 </dt>
 <dd><p>Executed when a rolo match buffer is created and put into hyrolo-mode.
 </p>
-<a name="index-yank_002c-reformatting"></a>
+<span id="index-yank_002c-reformatting"></span>
 </dd>
 <dt><code>hyrolo-yank-reformat-function</code>
-<a name="index-hyrolo_002dyank_002dreformat_002dfunction"></a>
+<span id="index-hyrolo_002dyank_002dreformat_002dfunction"></span>
 </dt>
 <dd><p>A variable whose value may be set to a function of two arguments, START
 and END, which give the region of the rolo entry yanked into the
@@ -6849,25 +6716,25 @@ region to meet user-specific needs.
 </p>
 <dl compact="compact">
 <dd>
-<a name="index-button-highlighting"></a>
+<span id="index-button-highlighting"></span>
 </dd>
 <dt><code>find-file-hook</code>
-<a name="index-find_002dfile_002dhook"></a>
+<span id="index-find_002dfile_002dhook"></span>
 </dt>
 <dd><p>This is called whenever a file is read into a buffer.  Hyperbole uses
 it to highlight any buttons within files.
 </p>
-<a name="index-button-data-saving"></a>
+<span id="index-button-data-saving"></span>
 </dd>
 <dt><code>write-file-hooks</code>
-<a name="index-write_002dfile_002dhooks"></a>
+<span id="index-write_002dfile_002dhooks"></span>
 </dt>
 <dd><p>This is called whenever a buffer is written to a file.  Hyperbole uses
 it to save modified button attributes associated with any file from the
 same directory as the current file.
 </p>
-<a name="index-mail-hooks"></a>
-<a name="index-news-hooks"></a>
+<span id="index-mail-hooks"></span>
+<span id="index-news-hooks"></span>
 <p>Hyperbole mail and news facilities also utilize a number of Emacs hook
 variables.  These hide button data and highlight buttons if possible.
 See the Hyperbole files with &lsquo;mail&rsquo; and &lsquo;gnus&rsquo; in 
their names for
@@ -6876,23 +6743,21 @@ specific usage of such hooks.
 </dl>
 
 <hr>
-<a name="Creating-Types"></a>
-<div class="header">
+<span id="Creating-Types"></span><div class="header">
 <p>
 Next: <a href="#Explicit-Button-Technicalities" accesskey="n" 
rel="next">Explicit Button Technicalities</a>, Previous: <a 
href="#Hook-Variables" accesskey="p" rel="prev">Hook Variables</a>, Up: <a 
href="#Developing-with-Hyperbole" accesskey="u" rel="up">Developing with 
Hyperbole</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Creating-Types-1"></a>
-<h3 class="section">9.2 Creating Types</h3>
+<span id="Creating-Types-1"></span><h3 class="section">9.2 Creating Types</h3>
 
-<a name="index-type-definition"></a>
-<a name="index-type-redefinition-1"></a>
+<span id="index-type-definition"></span>
+<span id="index-type-redefinition-1"></span>
 <p>To define or redefine a single Hyperbole type, you may either:
 </p>
 <ul>
-<li> <a name="index-C_002dM_002dx"></a>
-<a name="index-eval_002ddefun"></a>
-<a name="index-C_002dx-C_002de"></a>
-<a name="index-eval_002dlast_002dsexp"></a>
+<li> <span id="index-C_002dM_002dx"></span>
+<span id="index-eval_002ddefun"></span>
+<span id="index-C_002dx-C_002de"></span>
+<span id="index-eval_002dlast_002dsexp"></span>
 move your Emacs point to within the type definition and use
 <kbd>{C-M-x}</kbd> <code>(eval-defun)</code> (only works in Emacs Lisp mode);
 
@@ -6900,44 +6765,42 @@ move your Emacs point to within the type definition and 
use
 use <kbd>{C-x C-e}</kbd> <code>(eval-last-sexp)</code> (works in most modes).
 </li></ul>
 
-<a name="index-Hyperbole-types"></a>
-<a name="index-class_002c-htype"></a>
+<span id="index-Hyperbole-types"></span>
+<span id="index-class_002c-htype"></span>
 <p>The functions from the &lsquo;<samp>htype</samp>&rsquo; class may be 
applied to any
 Hyperbole types, if needed.
 </p>
-<a name="index-file_002c-hactypes_002eel"></a>
-<a name="index-file_002c-hibtypes_002eel-1"></a>
+<span id="index-file_002c-hactypes_002eel"></span>
+<span id="index-file_002c-hibtypes_002eel-1"></span>
 <p>The following subsections explain the specifics of Hyperbole type
 definitions which are beyond standard practice for Emacs Lisp programming.
 See the definitions of the standard types in <samp>hactypes.el</samp>
 and <samp>hibtypes.el</samp> for examples.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Action-Type-Creation" 
accesskey="1">Action Type Creation</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Action-Type-Creation" 
accesskey="1">Action Type Creation</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Implicit-Button-Type-Creation" accesskey="2">Implicit Button Type 
Creation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Implicit-Button-Type-Creation" accesskey="2">Implicit Button Type 
Creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Action-Type-Creation"></a>
-<div class="header">
+<span id="Action-Type-Creation"></span><div class="header">
 <p>
 Next: <a href="#Implicit-Button-Type-Creation" accesskey="n" 
rel="next">Implicit Button Type Creation</a>, Previous: <a 
href="#Creating-Types" accesskey="p" rel="prev">Creating Types</a>, Up: <a 
href="#Creating-Types" accesskey="u" rel="up">Creating Types</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Action-Type-Creation-1"></a>
-<h4 class="subsection">9.2.1 Action Type Creation</h4>
+<span id="Action-Type-Creation-1"></span><h4 class="subsection">9.2.1 Action 
Type Creation</h4>
 
-<a name="index-actype_003acreate"></a>
-<a name="index-file_002c-hactypes_002eel-1"></a>
-<a name="index-file_002c-hbut_002eel"></a>
+<span id="index-actype_003acreate"></span>
+<span id="index-file_002c-hactypes_002eel-1"></span>
+<span id="index-file_002c-hbut_002eel"></span>
 <p>New forms of explicit buttons may be created by adding new action types
 to a Hyperbole environment.  The file, <samp>hactypes.el</samp>, contains
 many examples of working action types.
 </p>
-<a name="index-action-type_002c-creation"></a>
-<a name="index-defact"></a>
-<a name="index-actype_003acreate-1"></a>
+<span id="index-action-type_002c-creation"></span>
+<span id="index-defact"></span>
+<span id="index-actype_003acreate-1"></span>
 <p>An action type is created, i.e. loaded into the Hyperbole environment,
 with the <code>(defact)</code> function (which is an alias for
 <code>(actype:create)</code>).  The calling signature for this function is
@@ -6962,12 +6825,12 @@ caller to ensure that it registers the performance of 
the action.
 <p>An action type body may perform any computation that uses Emacs Lisp and
 Hyperbole functions.
 </p>
-<a name="index-interactive-form"></a>
-<a name="index-interactive"></a>
+<span id="index-interactive-form"></span>
+<span id="index-interactive"></span>
 <p>The interactive calling form for an action type is of the same form as
 that of a regular Emacs Lisp function definition (see the
 documentation for the Emacs Lisp <code>(interactive)</code> form
-or see <a 
href="http://www.gnu.org/software/emacs/manual/html_mono/elisp.html#Interactive-Codes";>Code
 Characters for &rsquo;interactive&rsquo;</a> in <cite>the GNU Emacs Lisp 
Reference Manual</cite>.  It may additionally use
+or see <a 
href="https://www.gnu.org/software/emacs/manual/html_mono/elisp.html#Interactive-Codes";>Code
 Characters for &rsquo;interactive&rsquo;</a> in <cite>the GNU Emacs Lisp 
Reference Manual</cite>.  It may additionally use
 Hyperbole command character extensions when the form is given as a
 string.  Each such extension character <em>must</em> be preceded by a
 plus sign, &lsquo;<samp>+</samp>&rsquo;, in order to be recognized, since such 
characters
@@ -6976,44 +6839,44 @@ may also have different standard interactive meanings.
 <p>The present Hyperbole extension characters are:
 </p>
 <dl compact="compact">
-<dd><a name="index-argument_002c-Info-node"></a>
-<a name="index-interactive-cmd-char_002c-_002bI"></a>
+<dd><span id="index-argument_002c-Info-node"></span>
+<span id="index-interactive-cmd-char_002c-_002bI"></span>
 </dd>
 <dt><code>+I</code></dt>
 <dd><p>Prompts with completion for an existing Info (filename)nodename.
 </p>
-<a name="index-argument_002c-kcell"></a>
-<a name="index-argument_002c-koutline"></a>
-<a name="index-interactive-cmd-char_002c-_002bK"></a>
+<span id="index-argument_002c-kcell"></span>
+<span id="index-argument_002c-koutline"></span>
+<span id="index-interactive-cmd-char_002c-_002bK"></span>
 </dd>
 <dt><code>+K</code></dt>
 <dd><p>Prompts for an existing kcell identifier, either a full outline level
 identifier or a permanent idstamp.
 </p>
-<a name="index-argument_002c-klink"></a>
-<a name="index-interactive-cmd-char_002c-_002bL"></a>
+<span id="index-argument_002c-klink"></span>
+<span id="index-interactive-cmd-char_002c-_002bL"></span>
 </dd>
 <dt><code>+L</code></dt>
 <dd><p>Prompts for a klink specification.  See the documentation for the 
function
 <code>(kcell-view:reference)</code> for details of the format of a klink.
 </p>
-<a name="index-interactive-cmd-char_002c-_002bM"></a>
-<a name="index-argument_002c-mail-message"></a>
+<span id="index-interactive-cmd-char_002c-_002bM"></span>
+<span id="index-argument_002c-mail-message"></span>
 </dd>
 <dt><code>+M</code></dt>
 <dd><p>Prompts for a mail message date and the filename in which it resides.
 The mail parameters prompted for by this character code may change in
 the future.
 </p>
-<a name="index-argument_002c-view-spec"></a>
-<a name="index-interactive-cmd-char_002c-_002bV"></a>
+<span id="index-argument_002c-view-spec"></span>
+<span id="index-interactive-cmd-char_002c-_002bV"></span>
 </dd>
 <dt><code>+V</code></dt>
 <dd><p>Prompts for a Koutliner view specification string, with the current
 view spec, if any, as a default.
 </p>
-<a name="index-argument_002c-Info-index-item"></a>
-<a name="index-interactive-cmd-char_002c-_002bX"></a>
+<span id="index-argument_002c-Info-index-item"></span>
+<span id="index-interactive-cmd-char_002c-_002bX"></span>
 </dd>
 <dt><code>+X</code></dt>
 <dd><p>Prompts with completion for an existing Info index (filename)itemname.
@@ -7021,8 +6884,8 @@ view spec, if any, as a default.
 </dd>
 </dl>
 
-<a name="index-class_002c-hargs"></a>
-<a name="index-argument_002c-reading"></a>
+<span id="index-class_002c-hargs"></span>
+<span id="index-argument_002c-reading"></span>
 <p>Arguments are read by the functions in Hyperbole&rsquo;s <code>hargs</code> 
class,
 rather than the standard Lisp <code>read</code> functions, in order to allow
 direct selection of arguments via the Action Key.
@@ -7036,25 +6899,23 @@ environment, you can create new explicit buttons which 
use it.  There is
 no explicit button type beyond its action type, so no other work is
 necessary.
 </p>
-<a name="index-actype_003adelete"></a>
+<span id="index-actype_003adelete"></span>
 <p>Call <code>(actype:delete)</code> to remove an action type from a Hyperbole
 environment.  It takes a single parameter which should be the same type
 symbol used in the type definition call (not the Hyperbole symbol
 returned by the call).
 </p>
 <hr>
-<a name="Implicit-Button-Type-Creation"></a>
-<div class="header">
+<span id="Implicit-Button-Type-Creation"></span><div class="header">
 <p>
 Previous: <a href="#Action-Type-Creation" accesskey="p" rel="prev">Action Type 
Creation</a>, Up: <a href="#Creating-Types" accesskey="u" rel="up">Creating 
Types</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Implicit-Button-Type-Creation-1"></a>
-<h4 class="subsection">9.2.2 Implicit Button Type Creation</h4>
+<span id="Implicit-Button-Type-Creation-1"></span><h4 class="subsection">9.2.2 
Implicit Button Type Creation</h4>
 
-<a name="index-implicit-button-type"></a>
-<a name="index-ibtype"></a>
-<a name="index-defib"></a>
-<a name="index-ibtype_003acreate"></a>
+<span id="index-implicit-button-type"></span>
+<span id="index-ibtype"></span>
+<span id="index-defib"></span>
+<span id="index-ibtype_003acreate"></span>
 <p>An implicit button type is created or loaded via the <code>(defib)</code>
 function (which is an alias for <code>(ibtype:create)</code>).  The calling
 signature for this function is given in its documentation; it is the
@@ -7063,10 +6924,10 @@ parameter list should always be empty since no 
parameters will be used.
 A documentation string is required; it is followed by the body of the
 type.
 </p>
-<a name="index-ibtype_002c-predicate"></a>
-<a name="index-ibtype_002c-argument"></a>
-<a name="index-ibtype_002c-return-val"></a>
-<a name="index-ibtype_002c-actype"></a>
+<span id="index-ibtype_002c-predicate"></span>
+<span id="index-ibtype_002c-argument"></span>
+<span id="index-ibtype_002c-return-val"></span>
+<span id="index-ibtype_002c-actype"></span>
 <p>The body of an implicit button type is a predicate which determines
 whether or not point is within an implicit button of the type.  If not,
 the predicate returns &lsquo;<samp>nil</samp>&rsquo;.  If so, it may 
optionally setup to
@@ -7092,18 +6953,18 @@ may be the same without any conflict.  In fact, such 
naming is
 encouraged when an implicit button type is the exclusive user of an
 action type.
 </p>
-<a name="index-ibtype_003adelete"></a>
+<span id="index-ibtype_003adelete"></span>
 <p>Call <code>(ibtype:delete)</code> to remove an implicit button type from a
 Hyperbole environment.  It takes a single parameter which should be the
 same type symbol used in the type definition call (not the Hyperbole
 symbol returned by the call).  This will not delete the action type used
 by the implicit button; that must be done separately.
 </p>
-<a name="index-ibtype_002c-help"></a>
-<a name="index-ibut_003aat_002dp"></a>
-<a name="index-class_002c-hattr"></a>
-<a name="index-class_002c-hbut"></a>
-<a name="index-file_002c-hib_002dkbd_002eel"></a>
+<span id="index-ibtype_002c-help"></span>
+<span id="index-ibut_003aat_002dp"></span>
+<span id="index-class_002c-hattr"></span>
+<span id="index-class_002c-hbut"></span>
+<span id="index-file_002c-hib_002dkbd_002eel"></span>
 <p>By default, a request for help on an implicit button will display the
 button&rsquo;s attributes in the same manner as is done for explicit buttons.
 For some implicit button types, other forms of help will be more
@@ -7119,34 +6980,30 @@ functions from the &lsquo;<samp>hbut</samp>&rsquo; and 
&lsquo;<samp>hattr</samp>
 the <samp>hib-kbd.el</samp> file for an example of a custom help function.
 </p>
 <hr>
-<a name="Explicit-Button-Technicalities"></a>
-<div class="header">
+<span id="Explicit-Button-Technicalities"></span><div class="header">
 <p>
 Next: <a href="#Encapsulating-Systems" accesskey="n" rel="next">Encapsulating 
Systems</a>, Previous: <a href="#Creating-Types" accesskey="p" 
rel="prev">Creating Types</a>, Up: <a href="#Developing-with-Hyperbole" 
accesskey="u" rel="up">Developing with Hyperbole</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Explicit-Button-Technicalities-1"></a>
-<h3 class="section">9.3 Explicit Button Technicalities</h3>
+<span id="Explicit-Button-Technicalities-1"></span><h3 class="section">9.3 
Explicit Button Technicalities</h3>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Button-Label-Normalization" 
accesskey="1">Button Label Normalization</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Button-Label-Normalization" 
accesskey="1">Button Label Normalization</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Operational-and-Storage-Formats" accesskey="2">Operational and Storage 
Formats</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Operational-and-Storage-Formats" accesskey="2">Operational and Storage 
Formats</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Programmatic-Button-Creation" accesskey="3">Programmatic Button 
Creation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Programmatic-Button-Creation" accesskey="3">Programmatic Button 
Creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Button-Label-Normalization"></a>
-<div class="header">
+<span id="Button-Label-Normalization"></span><div class="header">
 <p>
 Next: <a href="#Operational-and-Storage-Formats" accesskey="n" 
rel="next">Operational and Storage Formats</a>, Previous: <a 
href="#Explicit-Button-Technicalities" accesskey="p" rel="prev">Explicit Button 
Technicalities</a>, Up: <a href="#Explicit-Button-Technicalities" accesskey="u" 
rel="up">Explicit Button Technicalities</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Button-Label-Normalization-1"></a>
-<h4 class="subsection">9.3.1 Button Label Normalization</h4>
-<a name="index-normalized-label"></a>
-<a name="index-button-label-2"></a>
-<a name="index-button-key"></a>
-<a name="index-hbut_003alabel_002dto_002dkey"></a>
+<span id="Button-Label-Normalization-1"></span><h4 class="subsection">9.3.1 
Button Label Normalization</h4>
+<span id="index-normalized-label"></span>
+<span id="index-button-label-2"></span>
+<span id="index-button-key"></span>
+<span id="index-hbut_003alabel_002dto_002dkey"></span>
 <p>Hyperbole uses a normalized form of button labels called button keys (or
 label keys) for all internal operations.  See the documentation for the
 function <code>(hbut:label-to-key)</code> for details of the normalization
@@ -7168,11 +7025,11 @@ be recognized as the same button.
   /*    button )&gt; */
 </pre></div>
 
-<a name="index-hbut_003afill_002dprefix_002dregexps"></a>
-<a name="index-fill_002dprefix"></a>
-<a name="index-fill-prefix"></a>
-<a name="index-button_002c-multiple-lines"></a>
-<a name="index-button_002c-split-across-lines"></a>
+<span id="index-hbut_003afill_002dprefix_002dregexps"></span>
+<span id="index-fill_002dprefix"></span>
+<span id="index-fill-prefix"></span>
+<span id="index-button_002c-multiple-lines"></span>
+<span id="index-button_002c-split-across-lines"></span>
 <p>The last three examples demonstrate how Hyperbole ignores common fill
 prefix patterns that happen to fall within the middle of a button label
 that spans multiple lines.  As long as such buttons are selected with
@@ -7184,19 +7041,17 @@ setting of the Emacs variable, 
<code>fill-prefix</code>, so no user
 intervention is required.
 </p>
 <hr>
-<a name="Operational-and-Storage-Formats"></a>
-<div class="header">
+<span id="Operational-and-Storage-Formats"></span><div class="header">
 <p>
 Next: <a href="#Programmatic-Button-Creation" accesskey="n" 
rel="next">Programmatic Button Creation</a>, Previous: <a 
href="#Button-Label-Normalization" accesskey="p" rel="prev">Button Label 
Normalization</a>, Up: <a href="#Explicit-Button-Technicalities" accesskey="u" 
rel="up">Explicit Button Technicalities</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Operational-and-Storage-Formats-1"></a>
-<h4 class="subsection">9.3.2 Operational and Storage Formats</h4>
+<span id="Operational-and-Storage-Formats-1"></span><h4 
class="subsection">9.3.2 Operational and Storage Formats</h4>
 
-<a name="index-explicit-button-formats"></a>
-<a name="index-explicit-button-storage"></a>
-<a name="index-storage-manager"></a>
-<a name="index-button-attributes-1"></a>
-<a name="index-hbut_003acurrent-1"></a>
+<span id="index-explicit-button-formats"></span>
+<span id="index-explicit-button-storage"></span>
+<span id="index-storage-manager"></span>
+<span id="index-button-attributes-1"></span>
+<span id="index-hbut_003acurrent-1"></span>
 <p>Hyperbole uses a terse format to store explicit buttons and a more
 meaningful one to show users and to manipulate during editing.  The
 terse format consists solely of button attribute values whereas the edit
@@ -7208,9 +7063,9 @@ which the button is attached.  Most functions utilize the 
pre-defined
 <code>hbut:current</code> symbol by default to store and retrieve the last
 encountered button in edit format.
 </p>
-<a name="index-class_002c-hbdata"></a>
-<a name="index-class_002c-ebut"></a>
-<a name="index-class_002c-hbut-1"></a>
+<span id="index-class_002c-hbdata"></span>
+<span id="index-class_002c-ebut"></span>
+<span id="index-class_002c-hbut-1"></span>
 <p>The &lsquo;<samp>hbdata</samp>&rsquo; class handles the terse, stored 
format.  The
 &lsquo;<samp>hbut</samp>&rsquo;, &lsquo;<samp>ebut</samp>&rsquo;, and 
&lsquo;<samp>ibut</samp>&rsquo; classes work with the
 name/value format.  This separation permits the wholesale replacement of
@@ -7218,15 +7073,13 @@ the storage manager with another, with any interface 
changes hidden from
 any Hyperbole client programming.
 </p>
 <hr>
-<a name="Programmatic-Button-Creation"></a>
-<div class="header">
+<span id="Programmatic-Button-Creation"></span><div class="header">
 <p>
 Previous: <a href="#Operational-and-Storage-Formats" accesskey="p" 
rel="prev">Operational and Storage Formats</a>, Up: <a 
href="#Explicit-Button-Technicalities" accesskey="u" rel="up">Explicit Button 
Technicalities</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Programmatic-Button-Creation-1"></a>
-<h4 class="subsection">9.3.3 Programmatic Button Creation</h4>
+<span id="Programmatic-Button-Creation-1"></span><h4 class="subsection">9.3.3 
Programmatic Button Creation</h4>
 
-<a name="index-explicit-button_002c-creation"></a>
+<span id="index-explicit-button_002c-creation"></span>
 <p>A common need when developing with Hyperbole is to create or to modify
 explicit buttons without user interaction.  For example, an application
 might require the addition of an explicit summary button to a file for
@@ -7234,10 +7087,10 @@ each new mail message a user reads that contains a set 
of keywords.  The
 user could then check the summary file and jump to desired messages
 quickly.
 </p>
-<a name="index-class_002c-ebut-1"></a>
-<a name="index-file_002c-hbut_002eel-1"></a>
-<a name="index-ebut_003acreate"></a>
-<a name="index-ebut_003amap"></a>
+<span id="index-class_002c-ebut-1"></span>
+<span id="index-file_002c-hbut_002eel-1"></span>
+<span id="index-ebut_003acreate"></span>
+<span id="index-ebut_003amap"></span>
 <p>The Hyperbole class &lsquo;<samp>ebut</samp>&rsquo; supports programmatic 
access to explicit
 buttons.  Examine it within the <samp>hbut.el</samp> file for full details.
 The documentation for <code>(ebut:create)</code> explains the set of
@@ -7247,17 +7100,15 @@ buffer, use the <code>(ebut:map)</code> function.
 </p>
 
 <hr>
-<a name="Encapsulating-Systems"></a>
-<div class="header">
+<span id="Encapsulating-Systems"></span><div class="header">
 <p>
 Next: <a href="#Embedding-Hyperbole" accesskey="n" rel="next">Embedding 
Hyperbole</a>, Previous: <a href="#Explicit-Button-Technicalities" 
accesskey="p" rel="prev">Explicit Button Technicalities</a>, Up: <a 
href="#Developing-with-Hyperbole" accesskey="u" rel="up">Developing with 
Hyperbole</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Encapsulating-Systems-1"></a>
-<h3 class="section">9.4 Encapsulating Systems</h3>
+<span id="Encapsulating-Systems-1"></span><h3 class="section">9.4 
Encapsulating Systems</h3>
 
-<a name="index-file_002c-hsys_002d_002a"></a>
-<a name="index-Hyperbole_002c-system-encapsulation"></a>
-<a name="index-system-encapsulation"></a>
+<span id="index-file_002c-hsys_002d_002a"></span>
+<span id="index-Hyperbole_002c-system-encapsulation"></span>
+<span id="index-system-encapsulation"></span>
 <p>A powerful use of implicit button types is to provide a Hyperbole-based
 interface to external systems.  The basic idea is to interpret patterns
 output by the application as implicit buttons.
@@ -7276,21 +7127,19 @@ that a press of the Action Key follows a URL.
 
 
 <hr>
-<a name="Embedding-Hyperbole"></a>
-<div class="header">
+<span id="Embedding-Hyperbole"></span><div class="header">
 <p>
 Previous: <a href="#Encapsulating-Systems" accesskey="p" 
rel="prev">Encapsulating Systems</a>, Up: <a href="#Developing-with-Hyperbole" 
accesskey="u" rel="up">Developing with Hyperbole</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Embedding-Hyperbole-1"></a>
-<h3 class="section">9.5 Embedding Hyperbole</h3>
+<span id="Embedding-Hyperbole-1"></span><h3 class="section">9.5 Embedding 
Hyperbole</h3>
 
 <p>[NOTE: We have never done this ourselves, though we have done similar
 things which leads us to infer that the task should not be difficult.]
 </p>
-<a name="index-Hyperbole-API"></a>
-<a name="index-API"></a>
-<a name="index-programming-interface"></a>
-<a name="index-Hyperbole_002c-embedding"></a>
+<span id="index-Hyperbole-API"></span>
+<span id="index-API"></span>
+<span id="index-programming-interface"></span>
+<span id="index-Hyperbole_002c-embedding"></span>
 <p>The standard Hyperbole user interface has purposely been separated from
 the Hyperbole backend to support the development of alternative
 interfaces and the embedding of Hyperbole functionality within other
@@ -7321,18 +7170,16 @@ You are welcome, however, to study its code, below the
 </p>
 
 <hr>
-<a name="Glossary"></a>
-<div class="header">
+<span id="Glossary"></span><div class="header">
 <p>
 Next: <a href="#Setup" accesskey="n" rel="next">Setup</a>, Previous: <a 
href="#Developing-with-Hyperbole" accesskey="p" rel="prev">Developing with 
Hyperbole</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Glossary-1"></a>
-<h2 class="appendix">Appendix A Glossary</h2>
+<span id="Glossary-1"></span><h2 class="appendix">Appendix A Glossary</h2>
 
-<a name="index-glossary"></a>
-<a name="index-definitions"></a>
+<span id="index-glossary"></span>
+<span id="index-definitions"></span>
 <p>Concepts pertinent to operational usage of Hyperbole are defined here.
-See <a 
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Glossary";>Glossary</a>
 in <cite>the GNU Emacs Manual</cite>,
+See <a 
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Glossary";>Glossary</a>
 in <cite>the GNU Emacs Manual</cite>,
 if any emacs-related terms are unfamiliar to you.
 </p>
 <dl compact="compact">
@@ -7373,16 +7220,16 @@ button is activated.
 button.  An <em>attribute value</em> is typically specific to a particular
 button instance.
 </p>
-<a name="index-Augment-1"></a>
-<a name="index-hypertext-1"></a>
-<a name="index-interactive-computing"></a>
-<a name="index-mouse"></a>
-<a name="index-windows"></a>
-<a name="index-hypertext-2"></a>
-<a name="index-outline-processor"></a>
-<a name="index-groupware"></a>
-<a name="index-digital-signature"></a>
-<a name="index-Engelbart-1"></a>
+<span id="index-Augment-1"></span>
+<span id="index-hypertext-1"></span>
+<span id="index-interactive-computing"></span>
+<span id="index-mouse"></span>
+<span id="index-windows"></span>
+<span id="index-hypertext-2"></span>
+<span id="index-outline-processor"></span>
+<span id="index-groupware"></span>
+<span id="index-digital-signature"></span>
+<span id="index-Engelbart-1"></span>
 </dd>
 <dt><b>Augment</b></dt>
 <dd><p>The Augment system, originally named NLS, was a pioneering research and
@@ -7454,7 +7301,7 @@ so behave exactly alike.  Since button labels are simply 
text strings,
 they may be embedded within any text to provide non-linear information
 or operational access points.
 </p>
-<a name="index-ebut_003amax_002dlen"></a>
+<span id="index-ebut_003amax_002dlen"></span>
 <p>The maximum length of a button label is limited by the variable
 <code>ebut:max-len</code>.
 </p>
@@ -7524,7 +7371,7 @@ frame is visible at a time as each frame generally fills 
the whole
 terminal display, providing a virtual screen capability.  Emacs
 windows exist within a frame.
 </p>
-<a name="index-gbut_003afile"></a>
+<span id="index-gbut_003afile"></span>
 </dd>
 <dt><b>Global Button</b></dt>
 <dd><p>A Hyperbole button which is accessed by name rather than direct
@@ -7544,7 +7391,7 @@ default, this is the same as the user&rsquo;s personal 
button file.
 <dt><b>Grid</b></dt>
 <dd><p>See <b>Windows Grid</b>.
 </p>
-<a name="index-run_002dhooks"></a>
+<span id="index-run_002dhooks"></span>
 </dd>
 <dt><b>Hook Variable</b></dt>
 <dd><p>A variable that permits customization of an existing function&rsquo;s
@@ -7599,7 +7446,7 @@ to documents created and managed by tools other than 
Hyperbole, for
 example, programming documentation.  <b>Ibtype</b> is a synonym for
 implicit button type.  See also <b>system encapsulation</b>.
 </p>
-<a name="index-InfoDock"></a>
+<span id="index-InfoDock"></span>
 </dd>
 <dt><b>InfoDock</b></dt>
 <dd><p>InfoDock was an integrated productivity toolset for software engineers
@@ -7748,16 +7595,16 @@ Cust/Find-File-URLs menu option to enable this feature.
 <dd><p>A koutline cell which has cells below it at lower outline levels.  All
 such cells share the same root cell.
 </p>
-<a name="index-Screen"></a>
+<span id="index-Screen"></span>
 </dd>
 <dt><b>Screen</b></dt>
 <dd><p>The total display area available to Emacs frames.  This may consist of
 multiple physical monitors arranged into a single virtual display.
 Screen edges are thus the outer borders of the virtual display.
 </p>
-<a name="index-Smart-Key-1"></a>
-<a name="index-proportional-scrolling"></a>
-<a name="index-scrolling"></a>
+<span id="index-Smart-Key-1"></span>
+<span id="index-proportional-scrolling"></span>
+<span id="index-scrolling"></span>
 </dd>
 <dt><b>Smart Key</b></dt>
 <dd><p>A context-sensitive key used within Hyperbole and beyond.  There are
@@ -7848,13 +7695,11 @@ specifiable filters.
 </dl>
 
 <hr>
-<a name="Setup"></a>
-<div class="header">
+<span id="Setup"></span><div class="header">
 <p>
 Next: <a href="#Global-Key-Bindings" accesskey="n" rel="next">Global Key 
Bindings</a>, Previous: <a href="#Glossary" accesskey="p" 
rel="prev">Glossary</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Setup-1"></a>
-<h2 class="appendix">Appendix B Setup</h2>
+<span id="Setup-1"></span><h2 class="appendix">Appendix B Setup</h2>
 
 <p>Hyperbole must be obtained and setup at your site before you can
 use it.  Instructions are given below.  If you are using InfoDock
@@ -7863,29 +7708,27 @@ the installation instructions and simply continue with 
the
 invocation instructions in this appendix.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Installation" 
accesskey="1">Installation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Installation" 
accesskey="1">Installation</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Invocation" 
accesskey="2">Invocation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Invocation" 
accesskey="2">Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Customization" 
accesskey="3">Customization</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Customization" 
accesskey="3">Customization</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Installation"></a>
-<div class="header">
+<span id="Installation"></span><div class="header">
 <p>
 Next: <a href="#Invocation" accesskey="n" rel="next">Invocation</a>, Previous: 
<a href="#Setup" accesskey="p" rel="prev">Setup</a>, Up: <a href="#Setup" 
accesskey="u" rel="up">Setup</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Installation-1"></a>
-<h3 class="section">B.1 Installation</h3>
+<span id="Installation-1"></span><h3 class="section">B.1 Installation</h3>
 
-<a name="index-installation"></a>
-<a name="index-obtaining-Hyperbole"></a>
-<a name="index-Hyperbole_002c-obtaining-1"></a>
+<span id="index-installation"></span>
+<span id="index-obtaining-Hyperbole"></span>
+<span id="index-Hyperbole_002c-obtaining-1"></span>
 <p>Once you have Emacs set up at your site, GNU Hyperbole may be
 installed by using the Emacs Package Manager.  If you are not familiar
-with it, see <a 
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Packages";>Packages</a>
 in <cite>the GNU Emacs Manual</cite>.
+with it, see <a 
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Packages";>Packages</a>
 in <cite>the GNU Emacs Manual</cite>.
 </p>
 <p>If you have Hyperbole installed and simply want to upgrade it, invoke
 the Emacs Package Manager with <kbd>{M-x list-packages <span 
class="key">RET</span>}</kbd>,
@@ -7895,7 +7738,7 @@ and move on to the next section, see <a 
href="#Invocation">Invocation</a>.
 </p>
 <p>Otherwise, to download and install the Hyperbole package, you should add
 several lines to your personal Emacs initialization file, 
<samp>~/.emacs</samp>.
-(For further details, see <a 
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Init-File";>The
 Emacs Initialization File</a> in <cite>the GNU Emacs Manual</cite>).
+(For further details, see <a 
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Init-File";>The
 Emacs Initialization File</a> in <cite>the GNU Emacs Manual</cite>).
 </p>
 <p>Below are the lines to add:
 </p>
@@ -7918,13 +7761,11 @@ can be safely ignored.
 <p>Now read the next section on Invocation.
 </p>
 <hr>
-<a name="Invocation"></a>
-<div class="header">
+<span id="Invocation"></span><div class="header">
 <p>
 Next: <a href="#Customization" accesskey="n" rel="next">Customization</a>, 
Previous: <a href="#Installation" accesskey="p" rel="prev">Installation</a>, 
Up: <a href="#Setup" accesskey="u" rel="up">Setup</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Invocation-1"></a>
-<h3 class="section">B.2 Invocation</h3>
+<span id="Invocation-1"></span><h3 class="section">B.2 Invocation</h3>
 
 <p>Once Hyperbole has been installed for use at your site and loaded into
 your Emacs session, it is ready for use.  You will see a Hyperbole
@@ -7938,7 +7779,7 @@ to quit from the menu.
 <ul>
 <li> use the Hyperbole entry on your menubar;
 
-</li><li> <a name="index-hyperbole"></a>
+</li><li> <span id="index-hyperbole"></span>
 type <kbd>{C-h h}</kbd> or <kbd>{M-x hyperbole <span 
class="key">RET</span>}</kbd> to display the Hyperbole minibuffer menu;
 
 </li><li> use a specific Hyperbole command, for example, a press of
@@ -7961,20 +7802,20 @@ already bound prior to Hyperbole&rsquo;s 
initialization.  A long video
 demonstrating most of HyControl&rsquo;s features is available at
 <a href="https://youtu.be/M3-aMh1ccJk";>https://youtu.be/M3-aMh1ccJk</a>.
 </p>
-<a name="index-Info_002ddirectory_002dlist"></a>
-<a name="index-hyperb_003adir"></a>
-<a name="index-Hyperbole-manual"></a>
+<span id="index-Info_002ddirectory_002dlist"></span>
+<span id="index-hyperb_003adir"></span>
+<span id="index-Hyperbole-manual"></span>
 <p>The above are the best interactive ways to learn about Hyperbole.  The
 Hyperbole Manual is a reference manual, not a simple introduction.  It
 is included in the <samp>man/</samp> subdirectory of the Hyperbole package
 directory in four forms:
 </p>
-<a name="index-Info-manual"></a>
-<a name="index-Texinfo-manual"></a>
-<a name="index-file_002c-man_002fhyperbole_002einfo"></a>
-<a name="index-file_002c-man_002fhyperbole_002ehtml"></a>
-<a name="index-file_002c-man_002fhyperbole_002epdf"></a>
-<a name="index-file_002c-man_002fhyperbole_002etexi"></a>
+<span id="index-Info-manual"></span>
+<span id="index-Texinfo-manual"></span>
+<span id="index-file_002c-man_002fhyperbole_002einfo"></span>
+<span id="index-file_002c-man_002fhyperbole_002ehtml"></span>
+<span id="index-file_002c-man_002fhyperbole_002epdf"></span>
+<span id="index-file_002c-man_002fhyperbole_002etexi"></span>
 <div class="example">
 <pre class="example"><samp>man/hyperbole.info</samp>   - online Info browser 
version
 <samp>man/hyperbole.html</samp>   - web HTML version
@@ -7982,7 +7823,7 @@ directory in four forms:
 <samp>man/hyperbole.texi</samp>   - source form
 </pre></div>
 
-<a name="index-C_002dh-h-d-i"></a>
+<span id="index-C_002dh-h-d-i"></span>
 <p>The Hyperbole package installation places the Info version of this
 manual where needed and adds an entry for Hyperbole into the Info
 directory under the Emacs category.  <kbd>{C-h h d i}</kbd> will let you
@@ -7996,42 +7837,40 @@ is: 
<samp>~/.emacs.d/elpa/hyperbole-${hyperb:version}/</samp>.
 configuring Hyperbole&rsquo;s behavior.
 </p>
 <hr>
-<a name="Customization"></a>
-<div class="header">
+<span id="Customization"></span><div class="header">
 <p>
 Previous: <a href="#Invocation" accesskey="p" rel="prev">Invocation</a>, Up: 
<a href="#Setup" accesskey="u" rel="up">Setup</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Customization-1"></a>
-<h3 class="section">B.3 Customization</h3>
+<span id="Customization-1"></span><h3 class="section">B.3 Customization</h3>
 
-<a name="index-menu_002c-Cust-1"></a>
-<a name="index-configuration"></a>
-<a name="index-customization"></a>
+<span id="index-menu_002c-Cust-1"></span>
+<span id="index-configuration"></span>
+<span id="index-customization"></span>
 <p>Major Hyperbole user options may be set from the Customize submenu
 below the Hyperbole menubar menu, as seen here.
 </p>
-<div class="float"><a name="image_003aCustomize-Menu"></a>
+<div class="float"><span id="image_003aCustomize-Menu"></span>
 
 <img src="im/menu-customization.png" alt="Hyperbole Customize Menu">
 <div class="float-caption"><p><strong>Image B.1: </strong>Hyperbole Customize 
Menu</p></div></div><br>
 
 <p>Alternatively, the minibuffer-based menu, Cust/ may be used.
 </p>
-<a name="index-customization-1"></a>
-<a name="index-option-setting"></a>
-<a name="index-variable-setting"></a>
+<span id="index-customization-1"></span>
+<span id="index-option-setting"></span>
+<span id="index-variable-setting"></span>
 <p>Generally, you should not need to change anything other than these options.
 However, if you like to customize your environment extensively, there
 are many additional Hyperbole customization options that may be 
 changed with the Emacs customization interface,
-see <a 
href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Easy-Customization";>Easy
 Customization Interface</a> in <cite>the GNU
+see <a 
href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Easy-Customization";>Easy
 Customization Interface</a> in <cite>the GNU
 Emacs Manual</cite>.  When you save any changes within this interface, the
 changes are saved permanently to your personal Emacs initialization
 file and are available in future Emacs sessions.
 </p>
-<a name="index-customize_002dbrowse"></a>
-<a name="index-menu-item_002c-Cust_002fAll_002dOptions"></a>
-<a name="index-C_002dh-h-c-a"></a>
+<span id="index-customize_002dbrowse"></span>
+<span id="index-menu-item_002c-Cust_002fAll_002dOptions"></span>
+<span id="index-C_002dh-h-c-a"></span>
 <p>Use Cust/All-Options <kbd>{C-h h c a}</kbd> to display an expandable tree of
 customizable Hyperbole options.  Hyperbole&rsquo;s customizations are
 further grouped into several sub-categories, one for the Koutliner,
@@ -8040,7 +7879,7 @@ specfic option and they will appear in another window for 
editing.
 Simply follow the instructions on screen and then press the &ldquo;Apply
 and Save&rdquo; button to make any changes permanent.
 </p>
-<a name="index-customize_002dvariable"></a>
+<span id="index-customize_002dvariable"></span>
 <p>If you know the name of the option you want to edit, you can edit it
 at any time without going through the tree of options.  Use <kbd>{M-x
 customize-variable <span class="key">RET</span>}</kbd> and then type the name 
of the variable
@@ -8050,41 +7889,39 @@ and press <tt class="key">RET</tt> to edit it.
 be of interest to users.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Referent-Display" 
accesskey="1">Referent Display</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Referent-Display" 
accesskey="1">Referent Display</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Internal-Viewers" 
accesskey="2">Internal Viewers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Internal-Viewers" 
accesskey="2">Internal Viewers</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#External-Viewers" 
accesskey="3">External Viewers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#External-Viewers" 
accesskey="3">External Viewers</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Link-Variable-Substitution" 
accesskey="4">Link Variable Substitution</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Link-Variable-Substitution" 
accesskey="4">Link Variable Substitution</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Web-Search-Engines" 
accesskey="5">Web Search Engines</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Web-Search-Engines" 
accesskey="5">Web Search Engines</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Using-URLs-with-Find_002dFile" accesskey="6">Using URLs with 
Find-File</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Using-URLs-with-Find_002dFile" accesskey="6">Using URLs with 
Find-File</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Invisible-Text-Searches" 
accesskey="7">Invisible Text Searches</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Invisible-Text-Searches" 
accesskey="7">Invisible Text Searches</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Button-Colors" 
accesskey="8">Button Colors</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Button-Colors" 
accesskey="8">Button Colors</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Referent-Display"></a>
-<div class="header">
+<span id="Referent-Display"></span><div class="header">
 <p>
 Next: <a href="#Internal-Viewers" accesskey="n" rel="next">Internal 
Viewers</a>, Previous: <a href="#Customization" accesskey="p" 
rel="prev">Customization</a>, Up: <a href="#Customization" accesskey="u" 
rel="up">Customization</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Referent-Display-1"></a>
-<h4 class="subsection">B.3.1 Referent Display</h4>
-<a name="index-hpath_003adisplay_002dwhere-1"></a>
-<a name="index-referent-display"></a>
-<a name="index-link-display"></a>
-<a name="index-display-where"></a>
-<a name="index-display-outside-Emacs"></a>
-<a name="index-where-to-display"></a>
-<a name="index-image-display"></a>
-<a name="index-internal-display"></a>
-<a name="index-external-display"></a>
+<span id="Referent-Display-1"></span><h4 class="subsection">B.3.1 Referent 
Display</h4>
+<span id="index-hpath_003adisplay_002dwhere-1"></span>
+<span id="index-referent-display"></span>
+<span id="index-link-display"></span>
+<span id="index-display-where"></span>
+<span id="index-display-outside-Emacs"></span>
+<span id="index-where-to-display"></span>
+<span id="index-image-display"></span>
+<span id="index-internal-display"></span>
+<span id="index-external-display"></span>
 <p>Hyperbole lets you control where link referents are displayed.  It also
 permits setting a specific Emacs function or external program
 to display them.  There are four categories of referents, each with
@@ -8105,25 +7942,23 @@ Internal Standard Display     hpath:display-where
 are displayed internally and externally.
 </p>
 <hr>
-<a name="Internal-Viewers"></a>
-<div class="header">
+<span id="Internal-Viewers"></span><div class="header">
 <p>
 Next: <a href="#External-Viewers" accesskey="n" rel="next">External 
Viewers</a>, Previous: <a href="#Referent-Display" accesskey="p" 
rel="prev">Referent Display</a>, Up: <a href="#Customization" accesskey="u" 
rel="up">Customization</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Internal-Viewers-1"></a>
-<h4 class="subsection">B.3.2 Internal Viewers</h4>
-<a name="index-hpath_003ainternal_002ddisplay_002dalist"></a>
-<a name="index-file-display-function"></a>
-<a name="index-display-function"></a>
-<a name="index-internal-viewer"></a>
-<a name="index-link_002c-display-function"></a>
-
-<a name="index-internal-image-display"></a>
-<a name="index-hpath_003anative_002dimage_002dsuffixes"></a>
-<a name="index-internal-custom-display"></a>
-<a name="index-hpath_003ainternal_002ddisplay_002dalist-1"></a>
-<a name="index-internal-standard-display"></a>
-<a name="index-hpath_003adisplay_002dwhere-2"></a>
+<span id="Internal-Viewers-1"></span><h4 class="subsection">B.3.2 Internal 
Viewers</h4>
+<span id="index-hpath_003ainternal_002ddisplay_002dalist"></span>
+<span id="index-file-display-function"></span>
+<span id="index-display-function"></span>
+<span id="index-internal-viewer"></span>
+<span id="index-link_002c-display-function"></span>
+
+<span id="index-internal-image-display"></span>
+<span id="index-hpath_003anative_002dimage_002dsuffixes"></span>
+<span id="index-internal-custom-display"></span>
+<span id="index-hpath_003ainternal_002ddisplay_002dalist-1"></span>
+<span id="index-internal-standard-display"></span>
+<span id="index-hpath_003adisplay_002dwhere-2"></span>
 <p>When given a filename to display, Hyperbole first checks if its suffix
 is matched by <code>hpath:native-image-suffixes</code>.  If so and if the
 function <code>image-mode</code> is defined, it uses that mode together with
@@ -8154,8 +7989,8 @@ available with InfoDock.
 </p></dd>
 </dl>
 
-<a name="index-menu_002c-Cust_002fReferents"></a>
-<a name="index-C_002dh-h-c-r"></a>
+<span id="index-menu_002c-Cust_002fReferents"></span>
+<span id="index-C_002dh-h-c-r"></span>
 <p>Links to standard files, those which don&rsquo;t match any special referent
 category described earlier, are displayed in an Emacs window specified
 by the <code>hpath:display-where</code> setting.  It may be changed with the
@@ -8187,7 +8022,7 @@ the default)
 
 <p>Alternatively, you can use the Hyperbole menubar menu as shown here:
 </p>
-<div class="float"><a name="image_003aMenu_002dDisplay_002dReferents"></a>
+<div class="float"><span id="image_003aMenu_002dDisplay_002dReferents"></span>
 
 <img src="im/menu-display-referents.png" alt="Display Referents Menu">
 <div class="float-caption"><p><strong>Image B.2: </strong>Display Referents 
Menu</p></div></div><br>
@@ -8196,24 +8031,22 @@ the default)
 external, window-system specific viewers.
 </p>
 <hr>
-<a name="External-Viewers"></a>
-<div class="header">
+<span id="External-Viewers"></span><div class="header">
 <p>
 Next: <a href="#Link-Variable-Substitution" accesskey="n" rel="next">Link 
Variable Substitution</a>, Previous: <a href="#Internal-Viewers" accesskey="p" 
rel="prev">Internal Viewers</a>, Up: <a href="#Customization" accesskey="u" 
rel="up">Customization</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="External-Viewers-1"></a>
-<h4 class="subsection">B.3.3 External Viewers</h4>
-<a name="index-hpath_003aget_002dexternal_002ddisplay_002dalist"></a>
-<a name="index-hpath_003aexternal_002ddisplay_002dalist_002dmacos"></a>
-<a name="index-hpath_003aexternal_002ddisplay_002dalist_002dmswindows"></a>
-<a name="index-hpath_003aexternal_002ddisplay_002dalist_002dx"></a>
-<a name="index-window-system"></a>
-<a name="index-external-program"></a>
-<a name="index-external-viewer"></a>
-<a name="index-link_002c-viewer-program"></a>
-
-<a name="index-external-display-1"></a>
-<a name="index-hpath_003aexternal_002ddisplay_002dalist"></a>
+<span id="External-Viewers-1"></span><h4 class="subsection">B.3.3 External 
Viewers</h4>
+<span id="index-hpath_003aget_002dexternal_002ddisplay_002dalist"></span>
+<span id="index-hpath_003aexternal_002ddisplay_002dalist_002dmacos"></span>
+<span id="index-hpath_003aexternal_002ddisplay_002dalist_002dmswindows"></span>
+<span id="index-hpath_003aexternal_002ddisplay_002dalist_002dx"></span>
+<span id="index-window-system"></span>
+<span id="index-external-program"></span>
+<span id="index-external-viewer"></span>
+<span id="index-link_002c-viewer-program"></span>
+
+<span id="index-external-display-1"></span>
+<span id="index-hpath_003aexternal_002ddisplay_002dalist"></span>
 <p>If you use Hyperbole under a window system,
 the <code>hpath:get-external-display-alist</code> function in 
<samp>hpath.el</samp>
 supports hyperlinks that open files using external, non-Emacs tools, e.g.
@@ -8240,17 +8073,15 @@ values to suit your needs.
 </p>
 
 <hr>
-<a name="Link-Variable-Substitution"></a>
-<div class="header">
+<span id="Link-Variable-Substitution"></span><div class="header">
 <p>
 Next: <a href="#Web-Search-Engines" accesskey="n" rel="next">Web Search 
Engines</a>, Previous: <a href="#External-Viewers" accesskey="p" 
rel="prev">External Viewers</a>, Up: <a href="#Customization" accesskey="u" 
rel="up">Customization</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Link-Variable-Substitution-1"></a>
-<h4 class="subsection">B.3.4 Link Variable Substitution</h4>
-<a name="index-hpath_003avariables"></a>
-<a name="index-environment-variables"></a>
-<a name="index-Emacs-Lisp-variables"></a>
-<a name="index-Lisp-variables"></a>
+<span id="Link-Variable-Substitution-1"></span><h4 class="subsection">B.3.4 
Link Variable Substitution</h4>
+<span id="index-hpath_003avariables"></span>
+<span id="index-environment-variables-1"></span>
+<span id="index-Emacs-Lisp-variables-1"></span>
+<span id="index-Lisp-variables-1"></span>
 <p>Another option to consider modifying is <code>hpath:variables</code>.  This
 option consists of a list of Emacs Lisp variable names, each of which
 may have a pathname or a list of pathnames as a value.  Whenever a
@@ -8261,7 +8092,8 @@ substituted into the link pathname, in place of its 
literal value.
 When a link button is activated, potentially at a different site,
 Hyperbole replaces each variable in the link pathname with the first
 matching value from this list to recreate the literal pathname.
-Environment variables are also replaced whenever link paths are
+Environment variables and Emacs Lisp variables delimited
+by \&quot;${variable-name}\&quot; are also replaced whenever link paths are
 resolved.
 </p>
 <p>This permits sharing of links over wide areas, where the variable values
@@ -8270,23 +8102,21 @@ is wholly transparent to the user; it is explained here 
simply to help
 you in deciding whether or not to modify the value of 
<code>hpath:variables</code>.
 </p>
 <hr>
-<a name="Web-Search-Engines"></a>
-<div class="header">
+<span id="Web-Search-Engines"></span><div class="header">
 <p>
 Next: <a href="#Using-URLs-with-Find_002dFile" accesskey="n" rel="next">Using 
URLs with Find-File</a>, Previous: <a href="#Link-Variable-Substitution" 
accesskey="p" rel="prev">Link Variable Substitution</a>, Up: <a 
href="#Customization" accesskey="u" rel="up">Customization</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Web-Search-Engines-1"></a>
-<h4 class="subsection">B.3.5 Web Search Engines</h4>
-
-<a name="index-menu_002c-Find_002fWeb-1"></a>
-<a name="index-menu_002c-Web-1"></a>
-<a name="index-menu_002c-Cust_002fWeb_002dSearch"></a>
-<a name="index-C_002dh-h-c-w"></a>
-<a name="index-C_002dh-h-f-w"></a>
-<a name="index-hyperbole_002dweb_002dsearch_002dalist"></a>
-<a name="index-search-engines-menu"></a>
-<a name="index-web-search-menu"></a>
-<a name="index-customizing-web-search-menu"></a>
+<span id="Web-Search-Engines-1"></span><h4 class="subsection">B.3.5 Web Search 
Engines</h4>
+
+<span id="index-menu_002c-Find_002fWeb-1"></span>
+<span id="index-menu_002c-Web-1"></span>
+<span id="index-menu_002c-Cust_002fWeb_002dSearch"></span>
+<span id="index-C_002dh-h-c-w"></span>
+<span id="index-C_002dh-h-f-w"></span>
+<span id="index-hyperbole_002dweb_002dsearch_002dalist"></span>
+<span id="index-search-engines-menu"></span>
+<span id="index-web-search-menu"></span>
+<span id="index-customizing-web-search-menu"></span>
 <p>The Find/Web menu offers quick access to major web search engines.  It
 is typically bound to <kbd>{C-c /}</kbd> or if not, then <kbd>{C-h h f 
w}</kbd> is
 always available.  Your standard web browser will be used to return
@@ -8303,26 +8133,24 @@ search is performed.
 <p>You can change which browser is used with <kbd>{C-h h c w}</kbd>, the
 Cust/Web-Search menu.  Below is the equivalent Hyperbole menubar menu.
 </p>
-<div class="float"><a name="image_003aWeb_002dSearch_002dBrowser_002dMenu"></a>
+<div class="float"><span 
id="image_003aWeb_002dSearch_002dBrowser_002dMenu"></span>
 
 <img src="im/menu-web-search-browser.png" alt="Web Search Browser Menu">
 <div class="float-caption"><p><strong>Image B.3: </strong>Web Search Browser 
Menu</p></div></div><br>
 
 <hr>
-<a name="Using-URLs-with-Find_002dFile"></a>
-<div class="header">
+<span id="Using-URLs-with-Find_002dFile"></span><div class="header">
 <p>
 Next: <a href="#Invisible-Text-Searches" accesskey="n" rel="next">Invisible 
Text Searches</a>, Previous: <a href="#Web-Search-Engines" accesskey="p" 
rel="prev">Web Search Engines</a>, Up: <a href="#Customization" accesskey="u" 
rel="up">Customization</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Using-URLs-with-Find_002dFile-1"></a>
-<h4 class="subsection">B.3.6 Using URLs with Find-File</h4>
+<span id="Using-URLs-with-Find_002dFile-1"></span><h4 class="subsection">B.3.6 
Using URLs with Find-File</h4>
 
-<a name="index-find_002dfile"></a>
-<a name="index-find_002dfile_002c-browsing-URLs"></a>
-<a name="index-browsing-URLs"></a>
-<a name="index-URLs_002c-using-with-find_002dfile"></a>
-<a name="index-web-pages_002c-displaying"></a>
-<a name="index-remote-pathnames"></a>
+<span id="index-find_002dfile"></span>
+<span id="index-find_002dfile_002c-browsing-URLs"></span>
+<span id="index-browsing-URLs"></span>
+<span id="index-URLs_002c-using-with-find_002dfile"></span>
+<span id="index-web-pages_002c-displaying"></span>
+<span id="index-remote-pathnames"></span>
 <p>Hyperbole always recognizes URLs within buffers when the Action Key is
 pressed on them.  But sometimes it is useful to enter a URL at a prompt
 and have it displayed.  Hyperbole can recognize ftp and www URLs given to
@@ -8330,24 +8158,24 @@ the <code>find-file</code> command (or any other 
<code>find-file-*</code> comman
 But because there is added overhead with this feature, it is not enabled by
 default.
 </p>
-<a name="index-menu-item_002c-Find_002dFile_002dURLs"></a>
-<a name="index-menu-item_002c-Find_002dFile_002dAccepts_002dURLs"></a>
+<span id="index-menu-item_002c-Find_002dFile_002dURLs"></span>
+<span id="index-menu-item_002c-Find_002dFile_002dAccepts_002dURLs"></span>
 <p>To enable the feature, use the Hyperbole menu item Cust/Find-File-URLs
 (or Find-File-Accepts-URLs on the Hyperbole/Customize pulldown
 menu).  Either of these toggles acceptance of URLs.  When enabled the
 string, URLs, appears in the parenthesized minor-mode section of the
 modeline.
 </p>
-<a name="index-hpath_003afind_002dfile_002durls_002dmode"></a>
-<a name="index-enabling-URLs-in-find_002dfile"></a>
-<a name="index-browsing-URLs-in-find_002dfile"></a>
+<span id="index-hpath_003afind_002dfile_002durls_002dmode"></span>
+<span id="index-enabling-URLs-in-find_002dfile"></span>
+<span id="index-browsing-URLs-in-find_002dfile"></span>
 <p>To enable this feature each time you start the editor, add the
 following to your personal initialization file after initializing
 Hyperbole: <code>(hpath:find-file-urls-mode 1)</code>.
 </p>
-<a name="index-abbreviated-URLs"></a>
-<a name="index-URLs_002c-abbreviated"></a>
-<a name="index-Tramp-1"></a>
+<span id="index-abbreviated-URLs"></span>
+<span id="index-URLs_002c-abbreviated"></span>
+<span id="index-Tramp-1"></span>
 <p>Both full URLs and abbreviated ones, like <samp>www.gnu.org</samp>, are
 recognized.  filename completion does not work with URLs; you
 have to type or paste in the entire URL.  This feature will work only
@@ -8355,30 +8183,28 @@ if you have the builtin Tramp Emacs Lisp package; if 
you don&rsquo;t have
 Tramp, an error message will be displayed when you try to enable
 find-file URLs.
 </p>
-<a name="index-C_002dh-h-c-u"></a>
-<a name="index-menu_002c-Cust_002fURL_002dDisplay"></a>
+<span id="index-C_002dh-h-c-u"></span>
+<span id="index-menu_002c-Cust_002fURL_002dDisplay"></span>
 <p>The web browser used to display URLs may be set with the minibuffer
 menu Cust/URL-Display <kbd>{C-h h c u}</kbd> or with this Hyperbole menubar
 menu.
 </p>
-<div class="float"><a name="image_003aURL_002dBrowser_002dMenu"></a>
+<div class="float"><span id="image_003aURL_002dBrowser_002dMenu"></span>
 
 <img src="im/menu-url-browser.png" alt="URL Browser Menu">
 <div class="float-caption"><p><strong>Image B.4: </strong>URL Browser 
Menu</p></div></div><br>
 
 <hr>
-<a name="Invisible-Text-Searches"></a>
-<div class="header">
+<span id="Invisible-Text-Searches"></span><div class="header">
 <p>
 Next: <a href="#Button-Colors" accesskey="n" rel="next">Button Colors</a>, 
Previous: <a href="#Using-URLs-with-Find_002dFile" accesskey="p" 
rel="prev">Using URLs with Find-File</a>, Up: <a href="#Customization" 
accesskey="u" rel="up">Customization</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Invisible-Text-Searches-1"></a>
-<h4 class="subsection">B.3.7 Invisible Text Searches</h4>
+<span id="Invisible-Text-Searches-1"></span><h4 class="subsection">B.3.7 
Invisible Text Searches</h4>
 
-<a name="index-menu-item_002c-Isearch_002dInvisible"></a>
-<a name="index-menu-item_002c-Toggle_002dIsearch_002dInvisible"></a>
-<a name="index-isearch"></a>
-<a name="index-search-1"></a>
+<span id="index-menu-item_002c-Isearch_002dInvisible"></span>
+<span id="index-menu-item_002c-Toggle_002dIsearch_002dInvisible"></span>
+<span id="index-isearch"></span>
+<span id="index-search-1"></span>
 <p>This is largely for outline modes such as the Koutliner.  By default,
 character-by-character interactive search on <kbd>{C-s}</kbd> will search
 through invisible/hidden text, making the text temporarily visible
@@ -8392,21 +8218,19 @@ when invoked again).  The setting lasts only through 
the current
 interactive search.
 </p>
 <hr>
-<a name="Button-Colors"></a>
-<div class="header">
+<span id="Button-Colors"></span><div class="header">
 <p>
 Previous: <a href="#Invisible-Text-Searches" accesskey="p" 
rel="prev">Invisible Text Searches</a>, Up: <a href="#Customization" 
accesskey="u" rel="up">Customization</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Configuring-Button-Colors"></a>
-<h4 class="subsection">B.3.8 Configuring Button Colors</h4>
-<a name="index-Emacs-support"></a>
-<a name="index-button-highlighting-1"></a>
-<a name="index-highlighting-buttons"></a>
-<a name="index-button-flashing"></a>
-<a name="index-flashing-buttons"></a>
-<a name="index-file_002c-hui_002dep_002a_002eel"></a>
-<a name="index-file_002c-hsettings_002eel"></a>
-<a name="index-hproperty_003acycle_002dbut_002dcolor"></a>
+<span id="Configuring-Button-Colors"></span><h4 class="subsection">B.3.8 
Configuring Button Colors</h4>
+<span id="index-Emacs-support"></span>
+<span id="index-button-highlighting-1"></span>
+<span id="index-highlighting-buttons"></span>
+<span id="index-button-flashing"></span>
+<span id="index-flashing-buttons"></span>
+<span id="index-file_002c-hui_002dep_002a_002eel"></span>
+<span id="index-file_002c-hsettings_002eel"></span>
+<span id="index-hproperty_003acycle_002dbut_002dcolor"></span>
 <p>When Hyperbole is run under a window system, it automatically
 highlights any explicit buttons in a buffer and makes them flash when
 selected.  The main setting you may want change is the selection of a
@@ -8416,21 +8240,21 @@ code which supports this behavior.  A call
 to <code>(hproperty:cycle-but-color)</code> in the <samp>hsettings.el</samp> 
file
 changes the color used to highlight and flash explicit buttons.
 </p>
-<a name="index-hproperty_003abut_002dhighlight_002dflag"></a>
+<span id="index-hproperty_003abut_002dhighlight_002dflag"></span>
 <p>Whether or not buttons are highlighted is controlled
 by <code>hproperty:but-highlight-flag</code>, which defaults to 
&lsquo;<samp>t</samp>&rsquo;.
 To disable highlighting, change this setting in <samp>hsettings.el</samp> or
 use Hyperbole menu item, Cust/All-Options, and select the Hyperbole
 Buttons group to edit its options.
 </p>
-<a name="index-hproperty_003abut_002dcreate"></a>
+<span id="index-hproperty_003abut_002dcreate"></span>
 <p>If you read in a file with explicit buttons before you load Hyperbole,
 these buttons won&rsquo;t be highlighted.  Load Hyperbole and then use
 <kbd>{M-x hproperty:but-create <span class="key">RET</span>}</kbd> to 
highlight the buttons in
 the current buffer.
 </p>
-<a name="index-button-emphasis"></a>
-<a name="index-hproperty_003abut_002demphasize_002dflag"></a>
+<span id="index-button-emphasis"></span>
+<span id="index-hproperty_003abut_002demphasize_002dflag"></span>
 <p>Additionally, if <code>hproperty:but-emphasize-flag</code> is set to 
&lsquo;<samp>t</samp>&rsquo;,
 then whenever the mouse pointer moves over an explicit button, it will
 be emphasized in a different color or style.  This emphasis is in
@@ -8438,15 +8262,13 @@ addition to any non-mouse-sensitive button highlighting.
 </p>
 
 <hr>
-<a name="Global-Key-Bindings"></a>
-<div class="header">
+<span id="Global-Key-Bindings"></span><div class="header">
 <p>
 Next: <a href="#Koutliner-Keys" accesskey="n" rel="next">Koutliner Keys</a>, 
Previous: <a href="#Setup" accesskey="p" rel="prev">Setup</a>, Up: <a 
href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Global-Key-Bindings-1"></a>
-<h2 class="appendix">Appendix C Global Key Bindings</h2>
+<span id="Global-Key-Bindings-1"></span><h2 class="appendix">Appendix C Global 
Key Bindings</h2>
 
-<p><a name="index-key-binding-list"></a>
+<p><span id="index-key-binding-list"></span>
 This appendix summarizes all of Hyperbole&rsquo;s global key bindings and
 whether each overrides any existing binding or not.  It also describes
 how to temporarily disable these bindings and how to manage whether
@@ -8457,7 +8279,7 @@ global Hyperbole keys.
 Cust/KeyBindings minibuffer menu or from the Hyperbole menubar menu as
 shown here:
 </p>
-<div class="float"><a name="image_003aChange_002dKey_002dBindings"></a>
+<div class="float"><span id="image_003aChange_002dKey_002dBindings"></span>
 
 <img src="im/menu-key-bindings.png" alt="Change Key Bindings">
 <div class="float-caption"><p><strong>Image C.1: </strong>Global Key Bindings 
Menu</p></div></div><br>
@@ -8465,30 +8287,30 @@ shown here:
 <p>Below are descriptions of Hyperbole&rsquo;s default keyboard key bindings:
 </p>
 <dl compact="compact">
-<dd><a name="index-key-binding_002c-M_002dRET"></a>
-<a name="index-M_002dRET-2"></a>
+<dd><span id="index-key-binding_002c-M_002dRET"></span>
+<span id="index-M_002dRET-2"></span>
 </dd>
 <dt><kbd>{M-<span class="key">RET</span>}</kbd></dt>
 <dd><p>Action Key: Invoke the Action Key in the present context.
-<a name="index-C_002du-M_002dRET-1"></a>
+<span id="index-C_002du-M_002dRET-1"></span>
 </p></dd>
 <dt><kbd>{C-u M-<span class="key">RET</span>}</kbd></dt>
 <dd><p>Assist Key: Invoke the Assist Key in the present context.
 </p>
-<a name="index-key-binding_002c-C_002dc-_005c"></a>
-<a name="index-C_002dc-_005c-1"></a>
+<span id="index-key-binding_002c-C_002dc-_005c"></span>
+<span id="index-C_002dc-_005c-1"></span>
 </dd>
 <dt><kbd>{C-c \}</kbd></dt>
 <dd><p>HyControl: Control windows, frames and buffer display.  This binding
 is made only if the key is not bound prior to loading Hyperbole.
 </p>
-<a name="index-C_002dc-_002f-1"></a>
-<a name="index-C_002dh-h-f-w-1"></a>
-<a name="index-menu_002c-Find_002fWeb-2"></a>
-<a name="index-menu_002c-Web-2"></a>
-<a name="index-searching-the-web-1"></a>
-<a name="index-web-search-menu-1"></a>
-<a name="index-C_002dc-_002f-2"></a>
+<span id="index-C_002dc-_002f-1"></span>
+<span id="index-C_002dh-h-f-w-1"></span>
+<span id="index-menu_002c-Find_002fWeb-2"></span>
+<span id="index-menu_002c-Web-2"></span>
+<span id="index-searching-the-web-1"></span>
+<span id="index-web-search-menu-1"></span>
+<span id="index-C_002dc-_002f-2"></span>
 </dd>
 <dt><kbd>{C-c /}</kbd></dt>
 <dd><p>Search the Web: Display a minibuffer menu of web search engines.  Once
@@ -8497,11 +8319,11 @@ associated search.  This binding is made only if the 
key is not bound
 prior to loading Hyperbole; otherwise, the Find/Web minibuffer menu
 item, <kbd>{C-h h f w}</kbd>, will do the same thing.
 </p>
-<a name="index-C_002dc-_0040-1"></a>
-<a name="index-key-binding_002c-C_002dc-_0040"></a>
-<a name="index-windows-grid-1"></a>
-<a name="index-grid-of-windows-1"></a>
-<a name="index-C_002dc-_0040-2"></a>
+<span id="index-C_002dc-_0040-1"></span>
+<span id="index-key-binding_002c-C_002dc-_0040"></span>
+<span id="index-windows-grid-1"></span>
+<span id="index-grid-of-windows-1"></span>
+<span id="index-C_002dc-_0040-2"></span>
 </dd>
 <dt><kbd>{C-c @}</kbd></dt>
 <dd><p>Display a grid of windows in the selected frame, sized according to the
@@ -8513,15 +8335,15 @@ bound prior to loading Hyperbole.
 <p>For further details, see the <kbd>{@}</kbd> key binding description
 in <a href="#HyControl">HyControl</a>.
 </p>
-<a name="index-key-binding_002c-C_002dc-C_002dr"></a>
-<a name="index-C_002dc-C_002dr-1"></a>
+<span id="index-key-binding_002c-C_002dc-C_002dr"></span>
+<span id="index-C_002dc-C_002dr-1"></span>
 </dd>
 <dt><kbd>{C-c C-r}</kbd></dt>
 <dd><p>Button Rename: Rename an explicit button. This binding is made only if
 the key is not bound prior to loading Hyperbole.
 </p>
-<a name="index-key-binding_002c-M_002do"></a>
-<a name="index-M_002do-1"></a>
+<span id="index-key-binding_002c-M_002do"></span>
+<span id="index-M_002do-1"></span>
 </dd>
 <dt><kbd>{M-o}</kbd></dt>
 <dd><p>Drag Operation: Keyboard emulation of the start and stop of mouse
@@ -8529,26 +8351,26 @@ drags to invoke Smart Key actions.  This binding is 
made only if the
 key is not bound prior to loading Hyperbole and if Emacs is run under
 a window system.
 </p>
-<a name="index-key-binding_002c-C_002dh-h"></a>
-<a name="index-C_002dh-h-1"></a>
+<span id="index-key-binding_002c-C_002dh-h"></span>
+<span id="index-C_002dh-h-1"></span>
 </dd>
 <dt><kbd>{C-h h}</kbd></dt>
 <dd><p>Hyperbole Mini Menu: Invoke the Hyperbole minibuffer menu, giving
 access to many Hyperbole commands.
 </p>
-<a name="index-key-binding_002c-C_002dh-A"></a>
-<a name="index-key-binding_002c-C_002du-C_002dh-A"></a>
-<a name="index-C_002dh-A-1"></a>
+<span id="index-key-binding_002c-C_002dh-A"></span>
+<span id="index-key-binding_002c-C_002du-C_002dh-A"></span>
+<span id="index-C_002dh-A-1"></span>
 </dd>
 <dt><kbd>{C-h A}</kbd></dt>
 <dd><p>Action Key Help: Show what the Action Key will do in the current 
context.
-<a name="index-C_002du-C_002dh-A-1"></a>
+<span id="index-C_002du-C_002dh-A-1"></span>
 </p></dd>
 <dt><kbd>{C-u C-h A}</kbd></dt>
 <dd><p>Assist Key Help: Show what the Assist Key will do in the same context.
 </p>
-<a name="index-key-binding_002c-C_002dc-RET"></a>
-<a name="index-C_002dc-RET-1"></a>
+<span id="index-key-binding_002c-C_002dc-RET"></span>
+<span id="index-C_002dc-RET-1"></span>
 </dd>
 <dt><kbd>{C-c <span class="key">RET</span>}</kbd></dt>
 <dd><p>Mark Things: Mark larger and larger synctactical units in a buffer
@@ -8558,8 +8380,8 @@ a C, Java or Javascript function, this marks the whole 
function.  This
 binding is made only if the key is not bound prior to loading
 Hyperbole.
 </p>
-<a name="index-key-binding_002c-C_002dc-_002e"></a>
-<a name="index-C_002dc-_002e-2"></a>
+<span id="index-key-binding_002c-C_002dc-_002e"></span>
+<span id="index-C_002dc-_002e-2"></span>
 </dd>
 <dt><kbd>{C-c .}</kbd></dt>
 <dd><p>Delimited Thing Jump: Jump between the start and end of a delimited
@@ -8568,8 +8390,8 @@ the key is not bound prior to loading Hyperbole.  See <a 
href="#Smart-Key-Thing-
 </p></dd>
 </dl>
 
-<a name="index-hkey_002dinit"></a>
-<a name="index-disable-global-key-bindings"></a>
+<span id="index-hkey_002dinit"></span>
+<span id="index-disable-global-key-bindings"></span>
 <p>The variable, <code>hkey-init</code>, controls whether or not any Hyperbole
 global key bindings are made.  It is set to &lsquo;<samp>t</samp>&rsquo; 
(true) by default in
 <samp>hyperbole.el</samp>.  This setting means all Hyperbole key bindings will
@@ -8579,13 +8401,13 @@ your <samp>~/.emacs</samp> file prior to the point at 
which you load Hyperbole
 and restart Emacs.  Then you will have to choose the Hyperbole commands
 that you want to use and bind those to keys.
 </p>
-<a name="index-file_002c-_002eemacs-4"></a>
-<a name="index-hyperbole_002dtoggle_002dbindings-1"></a>
-<a name="index-change-key-bindings-1"></a>
-<a name="index-toggle-key-bindings-1"></a>
-<a name="index-key-bindings_002c-toggle-1"></a>
-<a name="index-disable-Hyperbole-1"></a>
-<a name="index-C_002dc-h-1"></a>
+<span id="index-file_002c-_002eemacs-4"></span>
+<span id="index-hyperbole_002dtoggle_002dbindings-1"></span>
+<span id="index-change-key-bindings-1"></span>
+<span id="index-toggle-key-bindings-1"></span>
+<span id="index-key-bindings_002c-toggle-1"></span>
+<span id="index-disable-Hyperbole-1"></span>
+<span id="index-C_002dc-h-1"></span>
 <p>If you ever have a need to temporarily disable the Hyperbole keyboard and
 mouse bindings, use the <code>hyperbole-toggle-bindings</code> command.  It
 switches between the Hyperbole key bindings and those set prior to loading
@@ -8596,11 +8418,11 @@ setting of <code>hyperbole-init-hook</code> within your 
personal <samp>~/.emacs<
 file.  For example, <code>(add-hook 'hyperbole-init-hook (lambda ()
 (global-set-key &quot;\C-ch&quot; 'hyperbole-toggle-bindings)))</code>.
 </p>
-<a name="index-file_002c-_002eemacs-5"></a>
-<a name="index-hmouse_002dtoggle_002dbindings"></a>
-<a name="index-mouse-key-toggle"></a>
-<a name="index-Smart-Mouse-Key-toggle"></a>
-<a name="index-C_002dc-t"></a>
+<span id="index-file_002c-_002eemacs-5"></span>
+<span id="index-hmouse_002dtoggle_002dbindings"></span>
+<span id="index-mouse-key-toggle"></span>
+<span id="index-Smart-Mouse-Key-toggle"></span>
+<span id="index-C_002dc-t"></span>
 <p>If you want to restore only the mouse bindings that existed before
 Hyperbole was loaded, use the <code>hmouse-toggle-bindings</code> command.
 It switches between the Hyperbole mouse key bindings and those set
@@ -8612,9 +8434,9 @@ within your personal <samp>~/.emacs</samp> file.  For 
example, <code>(add-hook
 'hyperbole-init-hook (lambda () (global-set-key &quot;\C-ct&quot;
 'hmouse-toggle-bindings)))</code>.
 </p>
-<a name="index-hkey_002dinit_002doverride_002dlocal_002dkeys"></a>
-<a name="index-overriding-local-keys"></a>
-<a name="index-disable-local-key-override"></a>
+<span id="index-hkey_002dinit_002doverride_002dlocal_002dkeys"></span>
+<span id="index-overriding-local-keys"></span>
+<span id="index-disable-local-key-override"></span>
 <p>Major mode-specific keys take precedence over global key bindings.  In
 some cases, a major mode will unknowingly override some of the global
 Hyperbole keys, preventing you from using them in that mode.  By
@@ -8627,15 +8449,13 @@ change the value to <code>nil</code>.  Then press the 
&ldquo;Apply and Save&rdqu
 button.
 </p>
 <hr>
-<a name="Koutliner-Keys"></a>
-<div class="header">
+<span id="Koutliner-Keys"></span><div class="header">
 <p>
 Next: <a href="#Smart-Key-Reference" accesskey="n" rel="next">Smart Key 
Reference</a>, Previous: <a href="#Global-Key-Bindings" accesskey="p" 
rel="prev">Global Key Bindings</a>, Up: <a href="#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Koutliner-Keys-1"></a>
-<h2 class="appendix">Appendix D Koutliner Keys</h2>
+<span id="Koutliner-Keys-1"></span><h2 class="appendix">Appendix D Koutliner 
Keys</h2>
 
-<a name="index-outliner-keys"></a>
+<span id="index-outliner-keys"></span>
 <p>This appendix summarizes the specialized key bindings available when
 editing a koutline with Hyperbole.  Each key is shown together with its
 command binding and the documentation for that command.  Normal emacs
@@ -8645,12 +8465,12 @@ is named <em>kotl-mode:cmd</em>.
 </p>
 <dl compact="compact">
 <dd>
-<a name="index-kfile_003awrite"></a>
+<span id="index-kfile_003awrite"></span>
 </dd>
 <dt><code>kfile:write  <kbd>{C-x C-w}</kbd></code></dt>
 <dd><p>Write the current outline to FILE.
 </p>
-<a name="index-klink_003acreate-1"></a>
+<span id="index-klink_003acreate-1"></span>
 </dd>
 <dt><code>klink:create  <kbd>{C-c l}</kbd></code></dt>
 <dd><p>Insert at point an implicit link to REFERENCE.
@@ -8658,7 +8478,7 @@ REFERENCE should be a cell-ref or a string containing 
&quot;filename, cell-ref&q
 See the documentation for <code>(kcell:ref-to-id)</code> for valid cell-ref
 formats.
 </p>
-<a name="index-kotl_002dmode_003aadd_002dcell"></a>
+<span id="index-kotl_002dmode_003aadd_002dcell"></span>
 </dd>
 <dt><code>kotl-mode:add-cell  <kbd>{C-j}</kbd></code></dt>
 <dd><p>Add a cell following current cell at optional RELATIVE-LEVEL with 
CONTENTS string.
@@ -8669,76 +8489,76 @@ used as a repeat count for the number of cells to add.
 </p>
 <p>Return last newly added cell.
 </p>
-<a name="index-kotl_002dmode_003aadd_002dchild"></a>
+<span id="index-kotl_002dmode_003aadd_002dchild"></span>
 </dd>
 <dt><code>kotl-mode:add-child  <kbd>{C-c a}</kbd></code></dt>
 <dd><p>Add a new cell to current kview as first child of current cell.
 </p>
-<a name="index-kotl_002dmode_003aadd_002dparent"></a>
+<span id="index-kotl_002dmode_003aadd_002dparent"></span>
 </dd>
 <dt><code>kotl-mode:add-parent  <kbd>{C-c p}</kbd></code></dt>
 <dd><p>Add a new cell to current kview as sibling of current cell&rsquo;s 
parent.
 </p>
-<a name="index-kotl_002dmode_003aappend_002dcell"></a>
+<span id="index-kotl_002dmode_003aappend_002dcell"></span>
 </dd>
 <dt><code>kotl-mode:append-cell  <kbd>{C-c +}</kbd></code></dt>
 <dd><p>Append the CONTENTS-CELL to APPEND-TO-CELL.  If neither cell has a
 no-fill property and <code>kotl-mode:refill-flag</code> is enabled, then
 APPEND-TO-CELL is refilled.
 </p>
-<a name="index-kotl_002dmode_003aback_002dto_002dindentation"></a>
+<span id="index-kotl_002dmode_003aback_002dto_002dindentation"></span>
 </dd>
 <dt><code>kotl-mode:back-to-indentation  <kbd>{M-m}</kbd></code></dt>
 <dd><p>Move point to the first non-read-only non-whitespace character on this 
line.
 </p>
-<a name="index-kotl_002dmode_003abackward_002dcell"></a>
+<span id="index-kotl_002dmode_003abackward_002dcell"></span>
 </dd>
 <dt><code>kotl-mode:backward-cell  <kbd>{C-c C-b}</kbd></code></dt>
 <dd><p>Move to prefix ARGth prior cell (same level) within current view.
 Return number of cells left to move.
 </p>
-<a name="index-kotl_002dmode_003abackward_002dchar"></a>
+<span id="index-kotl_002dmode_003abackward_002dchar"></span>
 </dd>
 <dt><code>kotl-mode:backward-char  <kbd>{C-b}</kbd></code></dt>
 <dd><p>Move point backward ARG (or 1) characters and return point.
 </p>
-<a name="index-kotl_002dmode_003abackward_002dkill_002dword"></a>
+<span id="index-kotl_002dmode_003abackward_002dkill_002dword"></span>
 </dd>
 <dt><code>kotl-mode:backward-kill-word  <kbd>{M-DEL}</kbd></code></dt>
 <dd><p>Kill up to prefix ARG (or 1) words preceding point within a single cell.
 </p>
-<a name="index-kotl_002dmode_003abackward_002dsentence"></a>
+<span id="index-kotl_002dmode_003abackward_002dsentence"></span>
 </dd>
 <dt><code>kotl-mode:backward-sentence  <kbd>{M-a}</kbd></code></dt>
 <dd><p>Move point backward ARG (or 1) sentences and return point.
 </p>
-<a name="index-kotl_002dmode_003abackward_002dword"></a>
+<span id="index-kotl_002dmode_003abackward_002dword"></span>
 </dd>
 <dt><code>kotl-mode:backward-word  <kbd>{M-b}</kbd></code></dt>
 <dd><p>Move point backward ARG (or 1) words and return point.
 </p>
-<a name="index-kotl_002dmode_003abeginning_002dof_002dbuffer"></a>
+<span id="index-kotl_002dmode_003abeginning_002dof_002dbuffer"></span>
 </dd>
 <dt><code>kotl-mode:beginning-of-buffer  <kbd>{M-&lt;}</kbd></code></dt>
 <dd><p>Move point to beginning of buffer and return point.
 </p>
-<a name="index-kotl_002dmode_003abeginning_002dof_002dcell"></a>
+<span id="index-kotl_002dmode_003abeginning_002dof_002dcell"></span>
 </dd>
 <dt><code>kotl-mode:beginning-of-cell  <kbd>{C-c ,}</kbd></code></dt>
 <dd><p>Move point to beginning of current or ARGth - 1 prior cell and return 
point.
 </p>
-<a name="index-kotl_002dmode_003abeginning_002dof_002dline"></a>
+<span id="index-kotl_002dmode_003abeginning_002dof_002dline"></span>
 </dd>
 <dt><code>kotl-mode:beginning-of-line  <kbd>{C-a}</kbd></code></dt>
 <dd><p>Move point to beginning of current or ARGth - 1 line and return point.
 </p>
-<a name="index-kotl_002dmode_003abeginning_002dof_002dtree"></a>
+<span id="index-kotl_002dmode_003abeginning_002dof_002dtree"></span>
 </dd>
 <dt><code>kotl-mode:beginning-of-tree  <kbd>{C-c ^}</kbd></code></dt>
 <dd><p>Move point to the level 1 root of the current cell&rsquo;s tree.
 Leave point at the start of the cell.
 </p>
-<a name="index-kotl_002dmode_003acell_002dhelp"></a>
+<span id="index-kotl_002dmode_003acell_002dhelp"></span>
 </dd>
 <dt><code>kotl-mode:cell-help  <kbd>{C-c h}</kbd></code></dt>
 <dd><p>Display a temporary buffer of CELL-REF&rsquo;s attributes.
@@ -8752,24 +8572,24 @@ If &lt; 1, print all visible cells in current view
   (In this last case, CELL-REF is not used).
 </pre></div>
 
-<a name="index-kotl_002dmode_003acell_002dattributes"></a>
+<span id="index-kotl_002dmode_003acell_002dattributes"></span>
 <p>See also the documentation for <code>kotl-mode:cell-attributes</code>.
 </p>
-<a name="index-kotl_002dmode_003acenter_002dline"></a>
-<a name="index-fill_002dcolumn"></a>
+<span id="index-kotl_002dmode_003acenter_002dline"></span>
+<span id="index-fill_002dcolumn"></span>
 </dd>
 <dt><code>kotl-mode:center-line  <kbd>{M-s}</kbd></code></dt>
 <dd><p>Center the line point is on, within the width specified by 
<code>fill-column</code>.
 This means adjusting the indentation so that it equals the distance between
 the end of the text and <code>fill-column</code>.
 </p>
-<a name="index-kotl_002dmode_003acenter_002dparagraph"></a>
+<span id="index-kotl_002dmode_003acenter_002dparagraph"></span>
 </dd>
 <dt><code>kotl-mode:center-paragraph  <kbd>{M-S}</kbd></code></dt>
 <dd><p>Center each nonblank line in the paragraph at or after point.
 See <code>center-line</code> for more information.
 </p>
-<a name="index-kotl_002dmode_003acopy_002dafter"></a>
+<span id="index-kotl_002dmode_003acopy_002dafter"></span>
 </dd>
 <dt><code>kotl-mode:copy-after  <kbd>{C-c c}</kbd></code></dt>
 <dd><p>Copy tree rooted at FROM-CELL-REF to follow tree rooted at TO-CELL-REF.
@@ -8778,7 +8598,7 @@ TO-CELL-REF, otherwise make it the sibling following 
TO-CELL-REF.
 </p>
 <p>Leave point at the start of the root cell of the new tree.
 </p>
-<a name="index-kotl_002dmode_003acopy_002dbefore"></a>
+<span id="index-kotl_002dmode_003acopy_002dbefore"></span>
 </dd>
 <dt><code>kotl-mode:copy-before  <kbd>{C-c C-c}</kbd></code></dt>
 <dd><p>Copy tree rooted at FROM-CELL-REF to precede tree rooted at TO-CELL-REF.
@@ -8787,19 +8607,19 @@ TO-CELL-REF&rsquo;s parent, otherwise make it the 
preceding sibling of TO-CELL-R
 </p>
 <p>Leave point at the start of the root cell of the new tree.
 </p>
-<a name="index-kotl_002dmode_003acopy_002dto_002dbuffer"></a>
+<span id="index-kotl_002dmode_003acopy_002dto_002dbuffer"></span>
 </dd>
 <dt><code>kotl-mode:copy-to-buffer  <kbd>{C-c M-c}</kbd></code></dt>
 <dd><p>Copy outline tree rooted at CELL-REF to a non-koutline BUFFER.
 Use 0 to copy the whole outline buffer.
 </p>
-<a name="index-kotl_002dmode_003acopy_002dto_002dregister"></a>
+<span id="index-kotl_002dmode_003acopy_002dto_002dregister"></span>
 </dd>
 <dt><code>kotl-mode:copy-to-register  <kbd>{C-x x}</kbd></code></dt>
 <dd><p>Copy into REGISTER the region START to END.
 With optional prefix arg DELETE-FLAG, delete region.
 </p>
-<a name="index-kotl_002dmode_003adelete_002dbackward_002dchar"></a>
+<span id="index-kotl_002dmode_003adelete_002dbackward_002dchar"></span>
 </dd>
 <dt><code>kotl-mode:delete-backward-char  {<span 
class="key">DEL</span>}</code></dt>
 <dd><p>Delete up to the preceding prefix ARG characters.
@@ -8807,7 +8627,7 @@ Return number of characters deleted.
 Optional KILL-FLAG non-nil means save in kill ring instead of deleting.
 Does not delete across cell boundaries.
 </p>
-<a name="index-kotl_002dmode_003adelete_002dblank_002dlines"></a>
+<span id="index-kotl_002dmode_003adelete_002dblank_002dlines"></span>
 </dd>
 <dt><code>kotl-mode:delete-blank-lines  <kbd>{C-x C-o}</kbd></code></dt>
 <dd><p>On blank line within a cell, delete all surrounding blank lines, 
leaving just one.
@@ -8817,7 +8637,7 @@ On nonblank line, delete all blank lines that follow it.
 <p>If nothing but whitespace follows point until the end of a cell, delete all
 whitespace at the end of the cell.
 </p>
-<a name="index-kotl_002dmode_003adelete_002dchar"></a>
+<span id="index-kotl_002dmode_003adelete_002dchar"></span>
 </dd>
 <dt><code>kotl-mode:delete-char  <kbd>{C-d}</kbd></code></dt>
 <dd><p>Delete up to prefix ARG characters following point.
@@ -8825,14 +8645,14 @@ Return number of characters deleted.
 Optional KILL-FLAG non-nil means save in kill ring instead of deleting.
 Does not delete across cell boundaries.
 </p>
-<a name="index-kotl_002dmode_003adelete_002dindentation"></a>
+<span id="index-kotl_002dmode_003adelete_002dindentation"></span>
 </dd>
 <dt><code>kotl-mode:delete-indentation  <kbd>{M-^}</kbd></code></dt>
 <dd><p>Join this line to previous and fix up whitespace at join.
 If there is a fill prefix, delete it from the beginning of this line.
 With argument, join this line to the following line.
 </p>
-<a name="index-kotl_002dmode_003ademote_002dtree"></a>
+<span id="index-kotl_002dmode_003ademote_002dtree"></span>
 </dd>
 <dt><code>kotl-mode:demote-tree  {<span class="key">TAB</span>}</code></dt>
 <dd><p>Move current tree a maximum of prefix ARG levels lower in current view.
@@ -8841,120 +8661,120 @@ Each cell is refilled iff its <em>no-fill</em> 
attribute is nil and
 demoted up to one level and <code>kotl-mode:refill-flag</code> is treated as
 true.
 </p>
-<a name="index-kotl_002dmode_003adown_002dlevel"></a>
+<span id="index-kotl_002dmode_003adown_002dlevel"></span>
 </dd>
 <dt><code>kotl-mode:down-level  <kbd>{C-c C-d}</kbd></code></dt>
 <dd><p>Move down prefix ARG levels lower within current tree.
 </p>
-<a name="index-kotl_002dmode_003aend_002dof_002dbuffer"></a>
+<span id="index-kotl_002dmode_003aend_002dof_002dbuffer"></span>
 </dd>
 <dt><code>kotl-mode:end-of-buffer  <kbd>{M-&gt;}</kbd></code></dt>
 <dd><p>Move point to the end of buffer and return point.
 </p>
-<a name="index-kotl_002dmode_003aend_002dof_002dcell"></a>
+<span id="index-kotl_002dmode_003aend_002dof_002dcell"></span>
 </dd>
 <dt><code>kotl-mode:end-of-cell  <kbd>{C-c .}</kbd></code></dt>
 <dd><p>Move point to end of current or ARGth - 1 succeeding cell and return 
point.
 </p>
-<a name="index-kotl_002dmode_003aend_002dof_002dline"></a>
+<span id="index-kotl_002dmode_003aend_002dof_002dline"></span>
 </dd>
 <dt><code>kotl-mode:end-of-line  <kbd>{C-e}</kbd></code></dt>
 <dd><p>Move point to end of current or ARGth - 1 line and return point.
 </p>
-<a name="index-kotl_002dmode_003aend_002dof_002dtree"></a>
+<span id="index-kotl_002dmode_003aend_002dof_002dtree"></span>
 </dd>
 <dt><code>kotl-mode:end-of-tree  <kbd>{C-c $}</kbd></code></dt>
 <dd><p>Move point to the last cell in tree rooted at the current cell.
 Leave point at the start of the cell.
 </p>
-<a name="index-kotl_002dmode_003aexample"></a>
+<span id="index-kotl_002dmode_003aexample"></span>
 </dd>
 <dt><code>kotl-mode:example</code></dt>
 <dd><p>Display the Koutliner example file for demonstration use by a user.
 </p>
-<a name="index-kotl_002dmode_003aexchange_002dcells"></a>
+<span id="index-kotl_002dmode_003aexchange_002dcells"></span>
 </dd>
 <dt><code>kotl-mode:exchange-cells  <kbd>{C-c e}</kbd></code></dt>
 <dd><p>Exchange CELL-REF-1 with CELL-REF-2 in current view.  Don&rsquo;t move 
point.
 </p>
-<a name="index-kotl_002dmode_003afill_002dcell"></a>
+<span id="index-kotl_002dmode_003afill_002dcell"></span>
 </dd>
 <dt><code>kotl-mode:fill-cell  <kbd>{C-c M-j}</kbd></code></dt>
 <dd><p>Fill current cell if it lacks the <em>no-fill</em> attribute.
 With optional JUSTIFY, justify cell as well.  IGNORE-COLLAPSED-P is used
 when caller has already expanded cell, indicating it is not collapsed.
 </p>
-<a name="index-kotl_002dmode_003afill_002dparagraph"></a>
+<span id="index-kotl_002dmode_003afill_002dparagraph"></span>
 </dd>
 <dt><code>kotl-mode:fill-paragraph  <kbd>{C-x f}</kbd></code></dt>
 <dd><p>Fill current paragraph within cell.  With optional JUSTIFY, justify
 paragraph as well.  Ignore any non-nil <em>no-fill</em> attribute attached
 to the cell.
 </p>
-<a name="index-kotl_002dmode_003afill_002dtree"></a>
+<span id="index-kotl_002dmode_003afill_002dtree"></span>
 </dd>
 <dt><code>kotl-mode:fill-tree  <kbd>{C-M-j}</kbd></code></dt>
 <dd><p>Refill each cell within the tree whose root is at point.
 </p>
-<a name="index-kotl_002dmode_003afirst_002dsibling"></a>
+<span id="index-kotl_002dmode_003afirst_002dsibling"></span>
 </dd>
 <dt><code>kotl-mode:first-sibling  <kbd>{C-c &lt;}</kbd></code></dt>
 <dd><p>Move point to the first sibling of the present cell.
 Leave point at the start of the cell or at its present position if it is
 already within the first sibling cell.
 </p>
-<a name="index-kotl_002dmode_003afkey_002dbackward_002dchar"></a>
+<span id="index-kotl_002dmode_003afkey_002dbackward_002dchar"></span>
 </dd>
 <dt><code>kotl-mode:fkey-backward-char  <kbd>{C-b}</kbd> or 
<kbd>{left}</kbd></code></dt>
 <dd><p>Move point backward ARG (or 1) characters and return point.
 </p>
-<a name="index-kotl_002dmode_003afkey_002dforward_002dchar"></a>
+<span id="index-kotl_002dmode_003afkey_002dforward_002dchar"></span>
 </dd>
 <dt><code>kotl-mode:fkey-forward-char  <kbd>{C-f}</kbd> or 
<kbd>{right}</kbd></code></dt>
 <dd><p>Move point forward ARG (or 1) characters and return point.
 </p>
-<a name="index-kotl_002dmode_003afkey_002dnext_002dline"></a>
+<span id="index-kotl_002dmode_003afkey_002dnext_002dline"></span>
 </dd>
 <dt><code>kotl-mode:fkey-next-line  <kbd>{C-n}</kbd> or 
<kbd>{down}</kbd></code></dt>
 <dd><p>Move point to ARGth next line and return point.
 </p>
-<a name="index-kotl_002dmode_003afkey_002dprevious_002dline"></a>
+<span id="index-kotl_002dmode_003afkey_002dprevious_002dline"></span>
 </dd>
 <dt><code>kotl-mode:fkey-previous-line  <kbd>{C-p}</kbd> or 
<kbd>{up}</kbd></code></dt>
 <dd><p>Move point to ARGth previous line and return point.
 </p>
-<a name="index-kotl_002dmode_003aforward_002dcell"></a>
+<span id="index-kotl_002dmode_003aforward_002dcell"></span>
 </dd>
 <dt><code>kotl-mode:forward-cell  <kbd>{C-c C-f}</kbd></code></dt>
 <dd><p>Move to the prefix ARG following cell (same level) within current view.
 Return number of cells left to move.
 </p>
-<a name="index-kotl_002dmode_003aforward_002dchar"></a>
+<span id="index-kotl_002dmode_003aforward_002dchar"></span>
 </dd>
 <dt><code>kotl-mode:forward-char  <kbd>{C-f}</kbd></code></dt>
 <dd><p>Move point forward ARG (or 1) characters and return point.
 </p>
-<a name="index-kotl_002dmode_003aforward_002dpara"></a>
+<span id="index-kotl_002dmode_003aforward_002dpara"></span>
 </dd>
 <dt><code>kotl-mode:forward-para  <kbd>{M-n}</kbd></code></dt>
 <dd><p>Move to prefix ARGth next cell (any level) within current view.
 </p>
-<a name="index-kotl_002dmode_003aforward_002dparagraph"></a>
+<span id="index-kotl_002dmode_003aforward_002dparagraph"></span>
 </dd>
 <dt><code>kotl-mode:forward-paragraph  <kbd>{M-]}</kbd></code></dt>
 <dd><p>Move to prefix ARG next cell (any level) within current view.
 </p>
-<a name="index-kotl_002dmode_003aforward_002dsentence"></a>
+<span id="index-kotl_002dmode_003aforward_002dsentence"></span>
 </dd>
 <dt><code>kotl-mode:forward-sentence  <kbd>{M-e}</kbd></code></dt>
 <dd><p>Move point forward ARG (or 1) sentences and return point.
 </p>
-<a name="index-kotl_002dmode_003aforward_002dword"></a>
+<span id="index-kotl_002dmode_003aforward_002dword"></span>
 </dd>
 <dt><code>kotl-mode:forward-word  <kbd>{M-f}</kbd></code></dt>
 <dd><p>Move point forward ARG (or 1) words and return point.
 </p>
-<a name="index-kotl_002dmode_003agoto_002dcell"></a>
+<span id="index-kotl_002dmode_003agoto_002dcell"></span>
 </dd>
 <dt><code>kotl-mode:goto-cell  <kbd>{C-c g}</kbd></code></dt>
 <dd><p>Move point to start of cell given by CELL-REF.  (See the documentation
@@ -8966,25 +8786,25 @@ is assigned the argument value for use as an idstamp.
 not found within current view.  Will signal same error if called
 interactively when CELL-REF is not found.
 </p>
-<a name="index-kotl_002dmode_003ahide_002dsublevels-1"></a>
+<span id="index-kotl_002dmode_003ahide_002dsublevels-1"></span>
 </dd>
 <dt><code>kotl-mode:hide-sublevels  <kbd>{C-X $}</kbd></code></dt>
 <dd><p>Hide all cells in outline at levels deeper than LEVELS-TO-KEEP (a
 number). Show any hidden cells within LEVELS-TO-KEEP.  1 is the first
 level.
 </p>
-<a name="index-kotl_002dmode_003ahide_002dsubtree"></a>
+<span id="index-kotl_002dmode_003ahide_002dsubtree"></span>
 </dd>
 <dt><code>kotl-mode:hide-subtree  <kbd>{C-M-h}</kbd></code></dt>
 <dd><p>Hide subtree, ignoring root, at optional CELL-REF (defaults to cell at
 point).
 </p>
-<a name="index-kotl_002dmode_003ahide_002dtree-1"></a>
+<span id="index-kotl_002dmode_003ahide_002dtree-1"></span>
 </dd>
 <dt><code>kotl-mode:hide-tree  <kbd>{C-c BS}</kbd></code></dt>
 <dd><p>Collapse tree rooted at optional CELL-REF (defaults to cell at point).
 </p>
-<a name="index-kotl_002dmode_003aindent_002dline"></a>
+<span id="index-kotl_002dmode_003aindent_002dline"></span>
 </dd>
 <dt><code>kotl-mode:indent-line  {<span class="key">TAB</span>}</code></dt>
 <dd><p>Indent line relative to the previous one.
@@ -8992,7 +8812,7 @@ With optional prefix ARG greater than 1, tab forward ARG 
times.
 See the documentation string of &lsquo;kotl-mode:indent-tabs-mode&rsquo; for 
details
 on when tabs are used for indenting.
 </p>
-<a name="index-kotl_002dmode_003aindent_002dregion"></a>
+<span id="index-kotl_002dmode_003aindent_002dregion"></span>
 </dd>
 <dt><code>kotl-mode:indent-region  <kbd>{C-M-\}</kbd></code></dt>
 <dd><p>Indent each nonblank line in the region from START to END.
@@ -9000,14 +8820,14 @@ If there is a fill prefix, make each line start with 
the fill prefix.
 With argument COLUMN, indent each line to that column.
 Called from a program, takes three args: START, END and COLUMN.
 </p>
-<a name="index-kimport_003ainsert_002dfile"></a>
+<span id="index-kimport_003ainsert_002dfile"></span>
 </dd>
 <dt><code>kimport:insert-file  <kbd>{C-x i}</kbd></code></dt>
 <dd><p>Insert each paragraph in IMPORT-FROM as a separate cell in the current 
view.
 Insert as sibling cells following the current cell.  IMPORT-FROM may be a
 buffer name or filename (filename completion is provided).
 </p>
-<a name="index-kimport_003ainsert_002dregister"></a>
+<span id="index-kimport_003ainsert_002dregister"></span>
 </dd>
 <dt><code>kimport:insert-register  <kbd>{C-x r i}</kbd></code></dt>
 <dd><p>Insert contents of REGISTER at point in current cell.
@@ -9016,23 +8836,23 @@ Normally puts point before and mark after the inserted 
text.
 If optional second arg is non-nil, puts mark before and point after.
 Interactively, second arg is non-nil if prefix arg is supplied.
 </p>
-<a name="index-kotl_002dmode_003ajust_002done_002dspace"></a>
+<span id="index-kotl_002dmode_003ajust_002done_002dspace"></span>
 </dd>
 <dt><code>kotl-mode:just-one-space  <kbd>{M-\}</kbd></code></dt>
 <dd><p>Delete all spaces and tabs around point and leave one space.
 </p>
-<a name="index-kotl_002dmode_003akill_002dcontents"></a>
+<span id="index-kotl_002dmode_003akill_002dcontents"></span>
 </dd>
 <dt><code>kotl-mode:kill-contents  <kbd>{C-c k}</kbd></code></dt>
 <dd><p>Kill contents of cell from point to cell end.
 With prefix ARG, kill entire cell contents.
 </p>
-<a name="index-kotl_002dmode_003akill_002dline"></a>
+<span id="index-kotl_002dmode_003akill_002dline"></span>
 </dd>
 <dt><code>kotl-mode:kill-line  <kbd>{C-k}</kbd></code></dt>
 <dd><p>Kill ARG lines from point.
 </p>
-<a name="index-kotl_002dmode_003akill_002dregion"></a>
+<span id="index-kotl_002dmode_003akill_002dregion"></span>
 </dd>
 <dt><code>kotl-mode:kill-region  <kbd>{C-w}</kbd></code></dt>
 <dd><p>Kill region between START and END within a single kcell.
@@ -9044,40 +8864,40 @@ string without affecting the kill ring.
 deleted but it will be copied to the kill ring and then an error will be
 signaled.
 </p>
-<a name="index-kotl_002dmode_003akill_002dring_002dsave"></a>
+<span id="index-kotl_002dmode_003akill_002dring_002dsave"></span>
 </dd>
 <dt><code>kotl-mode:kill-ring-save  <kbd>{M-w}</kbd></code></dt>
 <dd><p>Copy region between START and END within a single kcell to kill ring.
 </p>
-<a name="index-kotl_002dmode_003akill_002dsentence"></a>
+<span id="index-kotl_002dmode_003akill_002dsentence"></span>
 </dd>
 <dt><code>kotl-mode:kill-sentence  <kbd>{M-k}</kbd></code></dt>
 <dd><p>Kill up to prefix ARG (or 1) sentences following point within a single 
cell.
 </p>
-<a name="index-kotl_002dmode_003akill_002dtree-1"></a>
+<span id="index-kotl_002dmode_003akill_002dtree-1"></span>
 </dd>
 <dt><code>kotl-mode:kill-tree  <kbd>{C-c C-k}</kbd></code></dt>
 <dd><p>Kill ARG following trees starting with tree rooted at point.
 If ARG is a non-positive number, nothing is done.
 </p>
-<a name="index-kotl_002dmode_003akill_002dword"></a>
+<span id="index-kotl_002dmode_003akill_002dword"></span>
 </dd>
 <dt><code>kotl-mode:kill-word  <kbd>{M-d}</kbd></code></dt>
 <dd><p>Kill up to prefix ARG words following point within a single cell.
 </p>
-<a name="index-kotl_002dmode_003alast_002dsibling"></a>
+<span id="index-kotl_002dmode_003alast_002dsibling"></span>
 </dd>
 <dt><code>kotl-mode:last-sibling  <kbd>{C-c &gt;}</kbd></code></dt>
 <dd><p>Move point to the last sibling of the present cell.
 Leave point at the start of the cell or at its present position if it is
 already within the last sibling cell.
 </p>
-<a name="index-kotl_002dmode_003amail_002dtree"></a>
+<span id="index-kotl_002dmode_003amail_002dtree"></span>
 </dd>
 <dt><code>kotl-mode:mail-tree  <kbd>{C-c @}</kbd></code></dt>
 <dd><p>Mail outline tree rooted at CELL-REF.  Use &quot;0&quot; for whole 
outline buffer.
 </p>
-<a name="index-kotl_002dmode_003amove_002dafter"></a>
+<span id="index-kotl_002dmode_003amove_002dafter"></span>
 </dd>
 <dt><code>kotl-mode:move-after  <kbd>{C-c m}</kbd></code></dt>
 <dd><p>Move tree rooted at FROM-CELL-REF to follow tree rooted at TO-CELL-REF.
@@ -9087,7 +8907,7 @@ With optional COPY-P, copy tree rather than moving it.
 </p>
 <p>Leave point at original location but return the tree&rsquo;s new start 
point.
 </p>
-<a name="index-kotl_002dmode_003amove_002dbefore"></a>
+<span id="index-kotl_002dmode_003amove_002dbefore"></span>
 </dd>
 <dt><code>kotl-mode:move-before  <kbd>{C-c <span 
class="key">RET</span>}</kbd></code></dt>
 <dd><p>Move tree rooted at FROM-CELL-REF to precede tree rooted at TO-CELL-REF.
@@ -9097,46 +8917,46 @@ TO-CELL-REF.  With optional COPY-P, copy tree rather 
than moving it.
 </p>
 <p>Leave point at original location but return the tree&rsquo;s new start 
point.
 </p>
-<a name="index-kotl_002dmode_003anewline"></a>
+<span id="index-kotl_002dmode_003anewline"></span>
 </dd>
 <dt><code>kotl-mode:newline  {<span class="key">RET</span>}</code></dt>
 <dd><p>Insert a newline.  With ARG, insert ARG newlines.
 In Auto Fill mode, if no numeric arg, break the preceding line if it is
 too long.
 </p>
-<a name="index-kotl_002dmode_003anext_002dcell"></a>
+<span id="index-kotl_002dmode_003anext_002dcell"></span>
 </dd>
 <dt><code>kotl-mode:next-cell  <kbd>{C-c C-n}</kbd></code></dt>
 <dd><p>Move to prefix ARG next cell (any level) within current view.
 </p>
-<a name="index-kotl_002dmode_003anext_002dline"></a>
+<span id="index-kotl_002dmode_003anext_002dline"></span>
 </dd>
 <dt><code>kotl-mode:next-line  <kbd>{C-n}</kbd></code></dt>
 <dd><p>Move point to ARGth next line and return point.
 </p>
-<a name="index-kotl_002dmode_003aopen_002dline"></a>
+<span id="index-kotl_002dmode_003aopen_002dline"></span>
 </dd>
 <dt><code>kotl-mode:open-line  <kbd>{C-o}</kbd></code></dt>
 <dd><p>Insert a newline and leave point before it.
 With arg N, insert N newlines.
 </p>
-<a name="index-kotl_002dmode_003aoverview-1"></a>
+<span id="index-kotl_002dmode_003aoverview-1"></span>
 </dd>
 <dt><code>kotl-mode:overview  <kbd>{C-c C-o}</kbd></code></dt>
 <dd><p>Show only the first line of each cell in the current outline.  With a
 prefix arg, also toggle the display of blank lines between cells.
 </p>
-<a name="index-kotl_002dmode_003aprevious_002dcell"></a>
+<span id="index-kotl_002dmode_003aprevious_002dcell"></span>
 </dd>
 <dt><code>kotl-mode:previous-cell  <kbd>{C-c C-p}</kbd></code></dt>
 <dd><p>Move to prefix ARG previous cell (any level) within current view.
 </p>
-<a name="index-kotl_002dmode_003aprevious_002dline"></a>
+<span id="index-kotl_002dmode_003aprevious_002dline"></span>
 </dd>
 <dt><code>kotl-mode:previous-line  <kbd>{C-p}</kbd></code></dt>
 <dd><p>Move point to ARGth previous line and return point.
 </p>
-<a name="index-kotl_002dmode_003apromote_002dtree"></a>
+<span id="index-kotl_002dmode_003apromote_002dtree"></span>
 </dd>
 <dt><code>kotl-mode:promote-tree  <kbd>{M-<span class="key">TAB</span>}</kbd> 
or <kbd>{<span class="key">SHIFT</span>-<span 
class="key">TAB</span>}</kbd></code></dt>
 <dd><p>Move current tree a maximum of prefix ARG levels higher in current view.
@@ -9144,47 +8964,47 @@ Each cell is refilled iff its <em>no-fill</em> 
attribute is nil and
 <code>kotl-mode:refill-flag</code> is non-nil.  With prefix ARG = 0, cells are
 promoted up to one level and <code>kotl-mode:refill-flag</code> is treated as 
true.
 </p>
-<a name="index-kotl_002dmode_003ascroll_002ddown"></a>
+<span id="index-kotl_002dmode_003ascroll_002ddown"></span>
 </dd>
 <dt><code>kotl-mode:scroll-down  <kbd>{M-v}</kbd></code></dt>
 <dd><p>Scroll text of current window downward ARG lines; or a windowful if no 
ARG.
 </p>
-<a name="index-kotl_002dmode_003ascroll_002dup"></a>
+<span id="index-kotl_002dmode_003ascroll_002dup"></span>
 </dd>
 <dt><code>kotl-mode:scroll-up  <kbd>{C-v}</kbd></code></dt>
 <dd><p>Scroll text of current window upward ARG lines; or a windowful if no 
ARG.
 </p>
-<a name="index-kotl_002dmode_003aset_002dcell_002dattribute"></a>
+<span id="index-kotl_002dmode_003aset_002dcell_002dattribute"></span>
 </dd>
 <dt><code>kotl-mode:set-cell-attribute  <kbd>{C-c C-i}</kbd></code></dt>
 <dd><p>Include ATTRIBUTE VALUE with the current cell or the cell at optional 
POS.
 Replace any existing value that ATTRIBUTE has.  When called
 interactively, display the setting in the minibuffer as confirmation.
 </p>
-<a name="index-kotl_002dmode_003aset_002dfill_002dprefix"></a>
+<span id="index-kotl_002dmode_003aset_002dfill_002dprefix"></span>
 </dd>
 <dt><code>kotl-mode:set-fill-prefix  <kbd>{C-x l}</kbd></code></dt>
 <dd><p>Set fill prefix to line up to point.
 With prefix arg TURN-OFF or at begin of line, turn fill prefix off.
 </p>
-<a name="index-kotl_002dmode_003ashow_002dall-1"></a>
+<span id="index-kotl_002dmode_003ashow_002dall-1"></span>
 </dd>
 <dt><code>kotl-mode:show-all  <kbd>{C-c C-a}</kbd></code></dt>
 <dd><p>Show (expand) all cells in current view.  With a prefix arg, also
 toggle the display of blank lines between cells.
 </p>
-<a name="index-kotl_002dmode_003ashow_002dsubtree"></a>
+<span id="index-kotl_002dmode_003ashow_002dsubtree"></span>
 </dd>
 <dt><code>kotl-mode:show-subtree</code></dt>
 <dd><p>Show subtree, ignoring root, at optional CELL-REF (defaults to cell at
 point).
 </p>
-<a name="index-kotl_002dmode_003ashow_002dtree-1"></a>
+<span id="index-kotl_002dmode_003ashow_002dtree-1"></span>
 </dd>
 <dt><code>kotl-mode:show-tree  <kbd>{C-c C-s}</kbd></code></dt>
 <dd><p>Display fully expanded tree rooted at CELL-REF.
 </p>
-<a name="index-kotl_002dmode_003asplit_002dcell"></a>
+<span id="index-kotl_002dmode_003asplit_002dcell"></span>
 </dd>
 <dt><code>kotl-mode:split-cell  <kbd>{C-c s}</kbd></code></dt>
 <dd><p>Split cell into two cells and move to new cell.
@@ -9193,14 +9013,14 @@ Default is to create new cell as sibling of current 
cell.
 With optional universal ARG, <kbd>{C-u}</kbd>, new cell is added as child of
 current cell.
 </p>
-<a name="index-kotl_002dmode_003atop_002dcells-1"></a>
+<span id="index-kotl_002dmode_003atop_002dcells-1"></span>
 </dd>
 <dt><code>kotl-mode:top-cells  <kbd>{C-c C-t}</kbd></code></dt>
 <dd><p>Collapse all level 1 cells in view and hide any deeper sublevels.
 With a prefix arg, also toggle the display of blank lines between
 cells.
 </p>
-<a name="index-kotl_002dmode_003atranspose_002dcells"></a>
+<span id="index-kotl_002dmode_003atranspose_002dcells"></span>
 </dd>
 <dt><code>kotl-mode:transpose-cells  <kbd>{C-c t}</kbd></code></dt>
 <dd><p>Exchange current and previous visible cells, leaving point after both.
@@ -9209,7 +9029,7 @@ With prefix ARG, take current cell and move it past ARG 
cells.
 With prefix ARG = 0, interchange the cell that contains point with the cell
 that contains mark.
 </p>
-<a name="index-kotl_002dmode_003atranspose_002dchars"></a>
+<span id="index-kotl_002dmode_003atranspose_002dchars"></span>
 </dd>
 <dt><code>kotl-mode:transpose-chars  <kbd>{C-t}</kbd></code></dt>
 <dd><p>Interchange characters around point, moving forward one character.
@@ -9218,7 +9038,7 @@ other characters (backward if ARG negative).
 If no prefix ARG and at end of line, the previous two characters are
 exchanged.
 </p>
-<a name="index-kotl_002dmode_003atranspose_002dlines"></a>
+<span id="index-kotl_002dmode_003atranspose_002dlines"></span>
 </dd>
 <dt><code>kotl-mode:transpose-lines  <kbd>{C-x C-t}</kbd></code></dt>
 <dd><p>Exchange current line and previous line, leaving point after both.
@@ -9227,7 +9047,7 @@ With prefix ARG, take previous line and move it past ARG 
lines.
 With prefix ARG = 0, interchange the line that contains point with the line
 that contains mark.
 </p>
-<a name="index-kotl_002dmode_003atranspose_002dwords"></a>
+<span id="index-kotl_002dmode_003atranspose_002dwords"></span>
 </dd>
 <dt><code>kotl-mode:transpose-words  <kbd>{M-t}</kbd></code></dt>
 <dd><p>Interchange words around point, leaving point after both words.
@@ -9235,12 +9055,12 @@ With prefix ARG, take word before or around point and 
drag it forward past
 ARG other words (backward if ARG negative).  If ARG is zero, the words around
 or after point and around or after mark are interchanged.
 </p>
-<a name="index-kotl_002dmode_003aup_002dlevel"></a>
+<span id="index-kotl_002dmode_003aup_002dlevel"></span>
 </dd>
 <dt><code>kotl-mode:up-level  <kbd>{C-c C-u}</kbd></code></dt>
 <dd><p>Move up prefix ARG levels higher in current outline view.
 </p>
-<a name="index-kotl_002dmode_003ayank"></a>
+<span id="index-kotl_002dmode_003ayank"></span>
 </dd>
 <dt><code>kotl-mode:yank  <kbd>{C-y}</kbd></code></dt>
 <dd><p>Reinsert the last stretch of killed text.
@@ -9251,7 +9071,7 @@ With argument N, reinsert the Nth most recently killed 
stretch of killed
 text.
 See also the command, <code>(kotl-mode:yank-pop)</code>.
 </p>
-<a name="index-kotl_002dmode_003ayank_002dpop"></a>
+<span id="index-kotl_002dmode_003ayank_002dpop"></span>
 </dd>
 <dt><code>kotl-mode:yank-pop  <kbd>{M-y}</kbd></code></dt>
 <dd><p>Replace just-yanked stretch of killed text with a different stretch.
@@ -9267,27 +9087,27 @@ If N is negative, this is a more recent kill.
 <p>The sequence of kills wraps around, so that after the oldest one
 comes the newest one.
 </p>
-<a name="index-kotl_002dmode_003azap_002dto_002dchar"></a>
+<span id="index-kotl_002dmode_003azap_002dto_002dchar"></span>
 </dd>
 <dt><code>kotl-mode:zap-to-char  <kbd>{M-z}</kbd></code></dt>
 <dd><p>Kill up to and including prefix ARGth occurrence of CHAR.
 Goes backward if ARG is negative; error if CHAR not found.
 </p>
-<a name="index-kview_003aset_002dlabel_002dseparator"></a>
+<span id="index-kview_003aset_002dlabel_002dseparator"></span>
 </dd>
 <dt><code>kview:set-label-separator  <kbd>{C-c M-l}</kbd></code></dt>
 <dd><p>Set the LABEL-SEPARATOR (a string) between labels and cell contents for
 the current kview.  With optional prefix arg SET-DEFAULT-P, the default
 separator value used for new outlines is also set to this new value.
 </p>
-<a name="index-kview_003aset_002dlabel_002dtype"></a>
+<span id="index-kview_003aset_002dlabel_002dtype"></span>
 </dd>
 <dt><code>kview:set-label-type  <kbd>{C-c C-l}</kbd></code></dt>
 <dd><p>Change kview&rsquo;s label display type to NEW-TYPE, updating all 
displayed labels.
 See documentation for the <code>kview:default-label-type</code> variable,
 for valid values of NEW-TYPE.
 </p>
-<a name="index-kvspec_003aactivate-1"></a>
+<span id="index-kvspec_003aactivate-1"></span>
 </dd>
 <dt><code>kvspec:activate  <kbd>{C-c C-v}</kbd></code></dt>
 <dd><p>Activate optional VIEW-SPEC or existing view specification over the
@@ -9295,7 +9115,7 @@ current koutline.  VIEW-SPEC must be a string.  See
 &lsquo;<samp>&lt;<code>${hyperb:dir}</code>/kotl/EXAMPLE.kotl, 
2b17=048&gt;</samp>&rsquo; for details
 on valid view specs.
 </p>
-<a name="index-kvspec_003atoggle_002dblank_002dlines-1"></a>
+<span id="index-kvspec_003atoggle_002dblank_002dlines-1"></span>
 </dd>
 <dt><code>kvspec:toggle-blank-lines <kbd>{C-c b}</kbd></code></dt>
 <dd><p>Toggle blank lines between cells on or off.
@@ -9305,13 +9125,11 @@ on valid view specs.
 
 
 <hr>
-<a name="Smart-Key-Reference"></a>
-<div class="header">
+<span id="Smart-Key-Reference"></span><div class="header">
 <p>
 Next: <a href="#Suggestion-or-Bug-Reporting" accesskey="n" 
rel="next">Suggestion or Bug Reporting</a>, Previous: <a href="#Koutliner-Keys" 
accesskey="p" rel="prev">Koutliner Keys</a>, Up: <a href="#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Key-Reference-1"></a>
-<h2 class="appendix">Appendix E Smart Key Reference</h2>
+<span id="Smart-Key-Reference-1"></span><h2 class="appendix">Appendix E Smart 
Key Reference</h2>
 
 <p>This appendix documents Hyperbole&rsquo;s context-sensitive Smart Key
 operations.  It is quite extensive and is meant for reference rather
@@ -9329,22 +9147,20 @@ Within each context, the actions performed by the 
Action and Assist
 Keys are given.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Mouse-Keys" 
accesskey="1">Smart Mouse Keys</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Mouse-Keys" 
accesskey="1">Smart Mouse Keys</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Keyboard-Keys" 
accesskey="2">Smart Keyboard Keys</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Keyboard-Keys" 
accesskey="2">Smart Keyboard Keys</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Smart-Mouse-Keys"></a>
-<div class="header">
+<span id="Smart-Mouse-Keys"></span><div class="header">
 <p>
 Next: <a href="#Smart-Keyboard-Keys" accesskey="n" rel="next">Smart Keyboard 
Keys</a>, Previous: <a href="#Smart-Key-Reference" accesskey="p" 
rel="prev">Smart Key Reference</a>, Up: <a href="#Smart-Key-Reference" 
accesskey="u" rel="up">Smart Key Reference</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Mouse-Keys-1"></a>
-<h3 class="section">E.1 Smart Mouse Keys</h3>
+<span id="Smart-Mouse-Keys-1"></span><h3 class="section">E.1 Smart Mouse 
Keys</h3>
 
-<a name="index-Smart-Mouse-Keys"></a>
+<span id="index-Smart-Mouse-Keys"></span>
 <p>The contexts and actions in this section, like drags and modeline
 clicks, apply only if you have mouse support within Hyperbole.  The
 Smart Key operations in <a href="#Smart-Keyboard-Keys">Smart Keyboard 
Keys</a>, apply to both mouse
@@ -9357,41 +9173,39 @@ matching mouse key context is found, then the keyboard 
key contexts
 are searched in order.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Minibuffer-Menu-Activation" 
accesskey="1">Minibuffer Menu Activation</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Minibuffer-Menu-Activation" 
accesskey="1">Minibuffer Menu Activation</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Thing-Selection" 
accesskey="2">Thing Selection</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Thing-Selection" 
accesskey="2">Thing Selection</a></td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Side_002dby_002dSide-Window-Resizing" accesskey="3">Side-by-Side Window 
Resizing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Side_002dby_002dSide-Window-Resizing" accesskey="3">Side-by-Side Window 
Resizing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Modeline-Clicks-and-Drags" 
accesskey="4">Modeline Clicks and Drags</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Modeline-Clicks-and-Drags" 
accesskey="4">Modeline Clicks and Drags</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Drags-between-Windows" accesskey="5">Smart Mouse Drags 
between Windows</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Drags-between-Windows" accesskey="5">Smart Mouse Drags 
between Windows</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Drags-within-a-Window" accesskey="6">Smart Mouse Drags 
within a Window</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Drags-within-a-Window" accesskey="6">Smart Mouse Drags 
within a Window</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Drags-outside-a-Window" accesskey="7">Smart Mouse Drags 
outside a Window</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Mouse-Drags-outside-a-Window" accesskey="7">Smart Mouse Drags 
outside a Window</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 </table>
 
 <hr>
-<a name="Minibuffer-Menu-Activation"></a>
-<div class="header">
+<span id="Minibuffer-Menu-Activation"></span><div class="header">
 <p>
 Next: <a href="#Thing-Selection" accesskey="n" rel="next">Thing Selection</a>, 
Previous: <a href="#Smart-Mouse-Keys" accesskey="p" rel="prev">Smart Mouse 
Keys</a>, Up: <a href="#Smart-Mouse-Keys" accesskey="u" rel="up">Smart Mouse 
Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Minibuffer-Menu-Activation-1"></a>
-<h4 class="subsection">E.1.1 Minibuffer Menu Activation</h4>
-
-<a name="index-menu_002c-top_002dlevel-1"></a>
-<a name="index-minibuffer-menu-1"></a>
-<a name="index-buffer-menu-1"></a>
-<a name="index-minibuffer_002c-buffer-menu"></a>
-<a name="index-minibuffer_002c-default-actions"></a>
-<a name="index-jump-menu-1"></a>
-<a name="index-minibuffer_002c-jump-menu"></a>
-<a name="index-inactive-minibuffer"></a>
-<a name="index-action_002dkey_002dminibuffer_002dfunction"></a>
-<a name="index-assist_002dkey_002dminibuffer_002dfunction"></a>
+<span id="Minibuffer-Menu-Activation-1"></span><h4 class="subsection">E.1.1 
Minibuffer Menu Activation</h4>
+
+<span id="index-menu_002c-top_002dlevel-1"></span>
+<span id="index-minibuffer-menu-1"></span>
+<span id="index-buffer-menu-1"></span>
+<span id="index-minibuffer_002c-buffer-menu"></span>
+<span id="index-minibuffer_002c-default-actions"></span>
+<span id="index-jump-menu-1"></span>
+<span id="index-minibuffer_002c-jump-menu"></span>
+<span id="index-inactive-minibuffer"></span>
+<span id="index-action_002dkey_002dminibuffer_002dfunction"></span>
+<span id="index-assist_002dkey_002dminibuffer_002dfunction"></span>
 <div class="format">
 <pre class="format">When clicked within an inactive minibuffer:
   ACTION KEY
@@ -9407,23 +9221,21 @@ Next: <a href="#Thing-Selection" accesskey="n" 
rel="next">Thing Selection</a>, P
 </pre></div>
 
 <hr>
-<a name="Thing-Selection"></a>
-<div class="header">
+<span id="Thing-Selection"></span><div class="header">
 <p>
 Next: <a href="#Side_002dby_002dSide-Window-Resizing" accesskey="n" 
rel="next">Side-by-Side Window Resizing</a>, Previous: <a 
href="#Minibuffer-Menu-Activation" accesskey="p" rel="prev">Minibuffer Menu 
Activation</a>, Up: <a href="#Smart-Mouse-Keys" accesskey="u" rel="up">Smart 
Mouse Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Thing-Selection-1"></a>
-<h4 class="subsection">E.1.2 Thing Selection</h4>
-
-<a name="index-thing"></a>
-<a name="index-list"></a>
-<a name="index-comment"></a>
-<a name="index-string"></a>
-<a name="index-array"></a>
-<a name="index-vector"></a>
-<a name="index-set"></a>
-<a name="index-function"></a>
-<a name="index-markup-pair"></a>
+<span id="Thing-Selection-1"></span><h4 class="subsection">E.1.2 Thing 
Selection</h4>
+
+<span id="index-thing"></span>
+<span id="index-list"></span>
+<span id="index-comment"></span>
+<span id="index-string"></span>
+<span id="index-array"></span>
+<span id="index-vector"></span>
+<span id="index-set"></span>
+<span id="index-function"></span>
+<span id="index-markup-pair"></span>
 <div class="format">
 <pre class="format">In a programming or markup language buffer, when 
pressed/clicked at
 the start or end of a delimited thing (including lists, comments,
@@ -9438,14 +9250,14 @@ markup language), and not at the end of a line:
 <p>Note that the press must be on the first character of the delimiter of
 the thing.
 </p>
-<a name="index-Smart-Mouse-Key"></a>
-<a name="index-Action-Mouse-Key"></a>
-<a name="index-Assist-Mouse-Key"></a>
-<a name="index-drag-1"></a>
-<a name="index-copy-and-yank"></a>
-<a name="index-kill-and-yank"></a>
-<a name="index-yanking"></a>
-<a name="index-pasting-a-region"></a>
+<span id="index-Smart-Mouse-Key"></span>
+<span id="index-Action-Mouse-Key"></span>
+<span id="index-Assist-Mouse-Key"></span>
+<span id="index-drag-1"></span>
+<span id="index-copy-and-yank"></span>
+<span id="index-kill-and-yank"></span>
+<span id="index-yanking"></span>
+<span id="index-pasting-a-region"></span>
 <p>There are also <em>drag</em> actions that work on delimited things.
 Delimited things include parenthesized lists, single and double quoted
 strings, bracketed arrays/vectors, sets with braces, programming
@@ -9468,16 +9280,14 @@ the first line of the thing.
 to use and indispensable.
 </p>
 <hr>
-<a name="Side_002dby_002dSide-Window-Resizing"></a>
-<div class="header">
+<span id="Side_002dby_002dSide-Window-Resizing"></span><div class="header">
 <p>
 Next: <a href="#Modeline-Clicks-and-Drags" accesskey="n" rel="next">Modeline 
Clicks and Drags</a>, Previous: <a href="#Thing-Selection" accesskey="p" 
rel="prev">Thing Selection</a>, Up: <a href="#Smart-Mouse-Keys" accesskey="u" 
rel="up">Smart Mouse Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Side_002dby_002dSide-Window-Resizing-1"></a>
-<h4 class="subsection">E.1.3 Side-by-Side Window Resizing</h4>
+<span id="Side_002dby_002dSide-Window-Resizing-1"></span><h4 
class="subsection">E.1.3 Side-by-Side Window Resizing</h4>
 
-<a name="index-drag_002c-side-edge"></a>
-<a name="index-side-drag"></a>
+<span id="index-drag_002c-side-edge"></span>
+<span id="index-side-drag"></span>
 <div class="format">
 <pre class="format">If dragged from a side-by-side window edge or from the 
immediate left of
 a vertical scroll bar:
@@ -9486,18 +9296,16 @@ a vertical scroll bar:
 </pre></div>
 
 <hr>
-<a name="Modeline-Clicks-and-Drags"></a>
-<div class="header">
+<span id="Modeline-Clicks-and-Drags"></span><div class="header">
 <p>
 Next: <a href="#Smart-Mouse-Drags-between-Windows" accesskey="n" 
rel="next">Smart Mouse Drags between Windows</a>, Previous: <a 
href="#Side_002dby_002dSide-Window-Resizing" accesskey="p" 
rel="prev">Side-by-Side Window Resizing</a>, Up: <a href="#Smart-Mouse-Keys" 
accesskey="u" rel="up">Smart Mouse Keys</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Modeline-Clicks-and-Drags-1"></a>
-<h4 class="subsection">E.1.4 Modeline Clicks and Drags</h4>
+<span id="Modeline-Clicks-and-Drags-1"></span><h4 class="subsection">E.1.4 
Modeline Clicks and Drags</h4>
 
-<a name="index-depress_002c-modeline"></a>
-<a name="index-modeline-depress"></a>
-<a name="index-action_002dkey_002dmodeline_002dfunction-1"></a>
-<a name="index-assist_002dkey_002dmodeline_002dfunction-1"></a>
+<span id="index-depress_002c-modeline"></span>
+<span id="index-modeline-depress"></span>
+<span id="index-action_002dkey_002dmodeline_002dfunction-1"></span>
+<span id="index-assist_002dkey_002dmodeline_002dfunction-1"></span>
 <div class="format">
 <pre class="format">If depressed within a window modeline:
   ACTION KEY
@@ -9564,19 +9372,17 @@ Next: <a href="#Smart-Mouse-Drags-between-Windows" 
accesskey="n" rel="next">Smar
 </pre></div>
 
 <hr>
-<a name="Smart-Mouse-Drags-between-Windows"></a>
-<div class="header">
+<span id="Smart-Mouse-Drags-between-Windows"></span><div class="header">
 <p>
 Next: <a href="#Smart-Mouse-Drags-within-a-Window" accesskey="n" 
rel="next">Smart Mouse Drags within a Window</a>, Previous: <a 
href="#Modeline-Clicks-and-Drags" accesskey="p" rel="prev">Modeline Clicks and 
Drags</a>, Up: <a href="#Smart-Mouse-Keys" accesskey="u" rel="up">Smart Mouse 
Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Mouse-Drags-between-Windows-1"></a>
-<h4 class="subsection">E.1.5 Smart Mouse Drags between Windows</h4>
+<span id="Smart-Mouse-Drags-between-Windows-1"></span><h4 
class="subsection">E.1.5 Smart Mouse Drags between Windows</h4>
 
-<a name="index-active-region"></a>
-<a name="index-copy-and-yank-1"></a>
-<a name="index-kill-and-yank-1"></a>
-<a name="index-yanking-1"></a>
-<a name="index-pasting-a-region-1"></a>
+<span id="index-active-region"></span>
+<span id="index-copy-and-yank-1"></span>
+<span id="index-kill-and-yank-1"></span>
+<span id="index-yanking-1"></span>
+<span id="index-pasting-a-region-1"></span>
 <div class="format">
 <pre class="format">If an active (highlighted) region exists within the editor:
   ACTION KEY
@@ -9602,17 +9408,15 @@ Next: <a href="#Smart-Mouse-Drags-within-a-Window" 
accesskey="n" rel="next">Smar
 </pre></div>
 
 <hr>
-<a name="Smart-Mouse-Drags-within-a-Window"></a>
-<div class="header">
+<span id="Smart-Mouse-Drags-within-a-Window"></span><div class="header">
 <p>
 Next: <a href="#Smart-Mouse-Drags-outside-a-Window" accesskey="n" 
rel="next">Smart Mouse Drags outside a Window</a>, Previous: <a 
href="#Smart-Mouse-Drags-between-Windows" accesskey="p" rel="prev">Smart Mouse 
Drags between Windows</a>, Up: <a href="#Smart-Mouse-Keys" accesskey="u" 
rel="up">Smart Mouse Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Mouse-Drags-within-a-Window-1"></a>
-<h4 class="subsection">E.1.6 Smart Mouse Drags within a Window</h4>
+<span id="Smart-Mouse-Drags-within-a-Window-1"></span><h4 
class="subsection">E.1.6 Smart Mouse Drags within a Window</h4>
 
-<a name="index-active-region-1"></a>
-<a name="index-region_002c-active"></a>
-<a name="index-drag_002c-with-region-1"></a>
+<span id="index-active-region-1"></span>
+<span id="index-region_002c-active"></span>
+<span id="index-drag_002c-with-region-1"></span>
 <div class="format">
 <pre class="format">If a region is active and a drag occurs within a single 
buffer/window:
   ACTION KEY
@@ -9621,9 +9425,9 @@ Next: <a href="#Smart-Mouse-Drags-outside-a-Window" 
accesskey="n" rel="next">Sma
      Restores region to before Action Key drag and signals an error.
 </pre></div>
 
-<a name="index-drag_002c-horizontal-1"></a>
-<a name="index-horizontal-drag-1"></a>
-<a name="index-hmouse_002dx_002ddrag_002dsensitivity"></a>
+<span id="index-drag_002c-horizontal-1"></span>
+<span id="index-horizontal-drag-1"></span>
+<span id="index-hmouse_002dx_002ddrag_002dsensitivity"></span>
 <div class="format">
 <pre class="format">(Note that <code>hmouse-x-drag-sensitivity</code> sets the 
minimal horizontal
 movement which registers a drag).  If dragged horizontally within a
@@ -9635,9 +9439,9 @@ single window from anywhere but a thing delimiter:
      current frame.
 </pre></div>
 
-<a name="index-drag_002c-vertical-1"></a>
-<a name="index-vertical-drag-1"></a>
-<a name="index-hmouse_002dy_002ddrag_002dsensitivity"></a>
+<span id="index-drag_002c-vertical-1"></span>
+<span id="index-vertical-drag-1"></span>
+<span id="index-hmouse_002dy_002ddrag_002dsensitivity"></span>
 <div class="format">
 <pre class="format">(Note that <code>hmouse-y-drag-sensitivity</code> sets the 
minimal vertical
 movement which registers a drag).  If dragged vertically within a
@@ -9649,10 +9453,10 @@ single window from anywhere but a thing delimiter:
      current frame.
 </pre></div>
 
-<a name="index-drag_002c-diagonal-1"></a>
-<a name="index-diagonal-drag-1"></a>
-<a name="index-hmouse_002dx_002ddiagonal_002dsensitivity"></a>
-<a name="index-hmouse_002dy_002ddiagonal_002dsensitivity"></a>
+<span id="index-drag_002c-diagonal-1"></span>
+<span id="index-diagonal-drag-1"></span>
+<span id="index-hmouse_002dx_002ddiagonal_002dsensitivity"></span>
+<span id="index-hmouse_002dy_002ddiagonal_002dsensitivity"></span>
 <div class="format">
 <pre class="format">If dragged diagonally within a single window while 
depressed
 (&lsquo;hmouse-x-diagonal-sensitivity&rsquo; and 
&lsquo;hmouse-y-diagonal-sensitivity&rsquo; set
@@ -9666,22 +9470,20 @@ the minimal diagonal movements which register a drag):
 </pre></div>
      
 <hr>
-<a name="Smart-Mouse-Drags-outside-a-Window"></a>
-<div class="header">
+<span id="Smart-Mouse-Drags-outside-a-Window"></span><div class="header">
 <p>
 Previous: <a href="#Smart-Mouse-Drags-within-a-Window" accesskey="p" 
rel="prev">Smart Mouse Drags within a Window</a>, Up: <a 
href="#Smart-Mouse-Keys" accesskey="u" rel="up">Smart Mouse Keys</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Mouse-Drags-outside-a-Window-1"></a>
-<h4 class="subsection">E.1.7 Smart Mouse Drags outside a Window</h4>
-
-<a name="index-hmouse_002ddrag_002ditem_002dmode_002dforms"></a>
-<a name="index-hycontrol_002dkeep_002dwindow_002dflag-1"></a>
-<a name="index-dragging-items"></a>
-<a name="index-dragging-outside-Emacs"></a>
-<a name="index-window_002c-clone-2"></a>
-<a name="index-clone-window-2"></a>
-<a name="index-window_002c-move"></a>
-<a name="index-move-window"></a>
+<span id="Smart-Mouse-Drags-outside-a-Window-1"></span><h4 
class="subsection">E.1.7 Smart Mouse Drags outside a Window</h4>
+
+<span id="index-hmouse_002ddrag_002ditem_002dmode_002dforms"></span>
+<span id="index-hycontrol_002dkeep_002dwindow_002dflag-1"></span>
+<span id="index-dragging-items"></span>
+<span id="index-dragging-outside-Emacs"></span>
+<span id="index-window_002c-clone-2"></span>
+<span id="index-clone-window-2"></span>
+<span id="index-window_002c-move"></span>
+<span id="index-move-window"></span>
 <div class="format">
 <pre class="format">If dragged from an Emacs window to outside of Emacs:
   ACTION KEY
@@ -9699,113 +9501,109 @@ Previous: <a 
href="#Smart-Mouse-Drags-within-a-Window" accesskey="p" rel="prev">
 </pre></div>
 
 <hr>
-<a name="Smart-Keyboard-Keys"></a>
-<div class="header">
+<span id="Smart-Keyboard-Keys"></span><div class="header">
 <p>
 Previous: <a href="#Smart-Mouse-Keys" accesskey="p" rel="prev">Smart Mouse 
Keys</a>, Up: <a href="#Smart-Key-Reference" accesskey="u" rel="up">Smart Key 
Reference</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
-<a name="Smart-Keyboard-Keys-1"></a>
-<h3 class="section">E.2 Smart Keyboard Keys</h3>
+<span id="Smart-Keyboard-Keys-1"></span><h3 class="section">E.2 Smart Keyboard 
Keys</h3>
 
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Company-Mode" accesskey="1">Smart Key - Company 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Company-Mode" accesskey="1">Smart Key - Company 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-_002d-Treemacs" 
accesskey="2">Smart Key - Treemacs</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-_002d-Treemacs" 
accesskey="2">Smart Key - Treemacs</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="3">Smart Key - Emacs 
Pushbuttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="3">Smart Key - Emacs 
Pushbuttons</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Argument-Completion" accesskey="4">Smart Key - Argument 
Completion</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Argument-Completion" accesskey="4">Smart Key - Argument 
Completion</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="5">Smart Key - ID Edit 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="5">Smart Key - ID Edit 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029" 
accesskey="6">Smart Key - Emacs Cross-references 
(Xrefs)</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029" 
accesskey="6">Smart Key - Emacs Cross-references 
(Xrefs)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Smart-Scrolling" accesskey="7">Smart Key - Smart 
Scrolling</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Smart-Scrolling" accesskey="7">Smart Key - Smart 
Scrolling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Smart-Menus" accesskey="8">Smart Key - Smart 
Menus</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Smart-Menus" accesskey="8">Smart Key - Smart 
Menus</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-_002d-Dired-Mode" 
accesskey="9">Smart Key - Dired Mode</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-_002d-Dired-Mode" 
accesskey="9">Smart Key - Dired Mode</a></td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Hyperbole-Buttons">Smart Key - Hyperbole 
Buttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Hyperbole-Buttons">Smart Key - Hyperbole 
Buttons</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-View-Mode">Smart Key - View 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-View-Mode">Smart Key - View 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited 
Things</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited 
Things</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-The-Koutliner">Smart Key - The 
Koutliner</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-The-Koutliner">Smart Key - The 
Koutliner</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-RDB-Mode">Smart Key - RDB 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-RDB-Mode">Smart Key - RDB 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Help-Buffers">Smart Key - Help 
Buffers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Help-Buffers">Smart Key - Help 
Buffers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Pages-Directory-Mode">Smart Key - Pages Directory 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Pages-Directory-Mode">Smart Key - Pages Directory 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier Menu Mode 
</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier Menu Mode 
</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-C-Source-Code">Smart Key - C Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-C-Source-Code">Smart Key - C Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-C_002b_002b-Source-Code">Smart Key - C++ Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-C_002b_002b-Source-Code">Smart Key - C++ Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Assembly-Source-Code">Smart Key - Assembly Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Assembly-Source-Code">Smart Key - Assembly Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Java-Source-Code">Smart Key - Java Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Java-Source-Code">Smart Key - Java Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-JavaScript-Source-Code">Smart Key - JavaScript Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-JavaScript-Source-Code">Smart Key - JavaScript Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key - Objective-C 
Source Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key - Objective-C 
Source Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Fortran-Source-Code">Smart Key - Fortran Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Fortran-Source-Code">Smart Key - Fortran Source 
Code</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Occurrence-Matches">Smart Key - Occurrence 
Matches</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Occurrence-Matches">Smart Key - Occurrence 
Matches</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Calendar-Mode">Smart Key - Calendar 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Calendar-Mode">Smart Key - Calendar 
Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href