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

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

[elpa] externals/hyperbole 72833c9 15/20: Merge branch 'master' V6.0.2 o


From: Robert Weiner
Subject: [elpa] externals/hyperbole 72833c9 15/20: Merge branch 'master' V6.0.2 of http://git.savannah.gnu.org/r/hyperbole into externals/hyperbole
Date: Tue, 9 Aug 2016 19:17:08 +0000 (UTC)

branch: externals/hyperbole
commit 72833c98fa218e411001a2d57b27058a1cd6d276
Merge: 81e8485 cc0493a
Author: Bob Weiner <address@hidden>
Commit: Bob Weiner <address@hidden>

    Merge branch 'master' V6.0.2 of http://git.savannah.gnu.org/r/hyperbole 
into externals/hyperbole
---
 .gitignore                 |    3 +
 .hypb                      |  Bin 2398 -> 2681 bytes
 ChangeLog => Changes       |  181 ++++++++
 DEMO                       |   69 +++-
 HY-ABOUT                   |    2 +-
 HY-ANNOUNCE                |  247 ++++++++---
 HY-NEWS                    |  113 ++++-
 HY-WHY.kotl                |   34 +-
 INSTALL                    |   20 +-
 MANIFEST                   |    5 +-
 Makefile                   |   40 +-
 README                     |   37 +-
 README.md                  |   60 ++-
 README.md.html             |  985 ++++++++++++++++++++++++++++++++++++++++++++
 hactypes.el                |   12 +-
 hargs.el                   |   15 +-
 hib-social.el              |   17 +-
 hibtypes.el                |   51 ++-
 hinit.el                   |   33 +-
 hload-path.el              |    9 +-
 hmouse-key.el              |    5 +-
 hmouse-tag.el              |   35 +-
 hpath.el                   |  165 +++++---
 hrmail.el                  |    3 +-
 hsettings.el               |   69 ++++
 hsmail.el                  |  169 +++++---
 hsys-org.el                |   53 ++-
 hsys-w3.el => hsys-www.el  |   15 +-
 hui-menu.el                |  630 ++++++++++++++--------------
 hui-mini.el                |  679 ++++++++++++++++--------------
 hui-mouse.el               |   29 +-
 hversion.el                |    2 +-
 hycontrol.el               |    4 +-
 hypb.el                    |   11 +-
 hyperbole.el               |   25 +-
 man/hyperbole.html         |  744 ++++++++++++++++++++-------------
 man/hyperbole.info         |  Bin 429310 -> 436228 bytes
 man/hyperbole.pdf          |  Bin 791819 -> 798465 bytes
 man/hyperbole.texi         |  397 +++++++++++-------
 man/im/menu-hyperbole2.pdf |  Bin 18552 -> 0 bytes
 man/version.texi           |    8 +-
 41 files changed, 3554 insertions(+), 1422 deletions(-)

diff --git a/.gitignore b/.gitignore
index 2a6fff3..751c293 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,3 +30,6 @@ TODO*
 
 # Programming support
 TAGS
+
+# Video Demos
+videos
diff --git a/.hypb b/.hypb
index 451014c..d5ddee3 100644
Binary files a/.hypb and b/.hypb differ
diff --git a/ChangeLog b/Changes
similarity index 92%
rename from ChangeLog
rename to Changes
index 87cbbf0..7f9bb15 100644
--- a/ChangeLog
+++ b/Changes
@@ -1,5 +1,186 @@
 -- Almost all changes listed herein are new as of 2016. --
 
+2016-08-08  Bob Weiner  <address@hidden>
+
+* hactypes.el (link-to-web-search): Added so Hyperbole global and explicit 
buttons can execute web searches.
+  hsettings.el (hyperbole-read-web-search-arguments): Added and used in 
hyperbole-web-search and link-to-web-search.
+  DEMO (Sample Explicit Buttons and Types):
+  man/hyperbole.texi (Action Types): Documented link-to-web-search.
+
+* INSTALL, README, README.md, README.md.html: Added Browsing the Source 
section with ftp tarball download information.
+
+* hpath.el (hpath:delimited-possible-path): Added non-ascii quote characters 
to possible delimiters.
+           (hpath:delete-trailer): Added quoting characters to deletion to fix 
bug where remote pathname retrieval
+    would include a trailing quote mark.
+
+* hargs.el (hargs:delimited): Added support for up to 2-line delimited regions 
as long as point is on the first line.
+    Normalized any newline followed by whitespace to a single space in the 
string returned.
+    Added (require 'hypb).
+
+* hys-org.el (defib org-mode, org-mode:help): Ensured trigger only in org-mode 
and simplified logic.
+             (org-heading-at-p): Deleted and used org-at-heading-p instead.
+
+* hpath.el (hpath:to-markup-anchor): Generalized to work in any HTML buffer 
based on major mode, not file suffix.
+           (hpath:html-suffix-regexp): Removed, no longer used.
+
+* hmouse-tag.el (smart-asm-include-file, smart-c-include-file): Simplified 
conditionals a bit.
+
+* hpath.el (hpath:is-p): Fixed improper parsing issue with hash links that 
included commas such as:
+    "DEMO#Grep, Occurrence, Debugger and Compiler Error Buttons, and Cscope 
Analyzer".
+
+* Demo (Org Mode):
+  man/hyperbole.texi (Implicit Buttons):
+  hsys-org.el (org-mode): Changed so if not at an end of line, on an org mode 
link or on an existing heading,
+    then invokes the Org mode standard binding of M-RET, (org-meta-return).
+
+2016-08-07  Bob Weiner  <address@hidden>
+
+* hpath.el (hpath:markup-link-anchor-regexp, hpath:to-markup-anchor): Modified 
to support hash-style links
+    to Emacs outline file section headlines, matching as is done with 
Github-style Markdown section links.
+  DEMO:
+  man/hyperbole.texi: Updated to document the above change.
+
+* hypb.el (hypb:file-major-mode): Added.
+
+2016-08-06  Bob Weiner  <address@hidden>
+
+* man/hyperbole.texi (Customization): Renamed from Configuration.
+                     (Web Search Engines): Added this section under 
Customization.
+                     (HyControl): Added FramesControl key sequence.
+                     (Smart Key - Smart Scrolling): Documented 
{action,assist}-key-eol-function variables.
+
+* hsmail.el (mail-indent-citation, mail-yank-original): Updated for Emacs 25 
compatibility.
+
+2016-08-05  Bob Weiner  <address@hidden>
+
+* hibtypes.el (annot-bib): Added markdown-mode to the excluded list to avoid 
conflict with its links.
+              (markdown-internal-link): Added to follow internal Markdown 
links.
+  man/hyperbole.texi: (Implicit Buttons): Added markdown-internal-link.
+
+* hsys-www.el: Renamed from hsys-w3.el since it is not related to the Emacs W3 
web browser any longer.
+
+* Demo (HTML and Markdown Hash Links): Added this section.
+  hibtypes.el (pathname):
+  hpath.el (hpath:to-markup-anchor): Renamed from hpath:to-html-anchor and 
generalized for use with Markdown as well.
+    Added recognition of section links like: 
+        - [Why was Hyperbole developed?](#why-was-hyperbole-developed)
+      so the pathname implicit button type matches when the Action Key is 
pressed anywhere on or after the
+      hash character and jumps to the section:
+        ## Why was Hyperbole developed?
+      accounting for any trailing punctuation, whitespace and differences in 
case.
+           (hpath:markdown-suffix-regexp, hpath:markdown-anchor-id-pattern, 
hpath:markdown-section-pattern): Added.
+           (hpath:markup-link-anchor-regexp): Renamed from 
hpath:html-link-anchor-regexp.
+
+* hib-social.el (social-reference): Disabled this implicit button type within 
quoted strings (all modes) and within
+    parentheses (markdown-mode), so in-file hash link references are not 
matched as social hash tags.  Made the list
+    of modes a variable, hibtypes-social-inhibit-modes.
+  hpath.el (hpath:to-html-anchor): Added.
+           (hpath:find): Rewrote to follow HTML in-file anchor references.
+
+2016-08-04  Bob Weiner  <address@hidden>
+
+* hpath.el (hpath:html-suffix-regexp, hpath:html-anchor-id-pattern, 
hpath:html-link-anchor-regexp): Added.
+
+* README, README.md, README.md.html: Added a new testimonial.
+
+* Makefile (elpa, ftp): Added these targets to install Hyperbole releases for 
ELPA or ftp download.
+    Changed so release target depends on package target so you can build a 
package prior to a release.
+
+* hpath.el (hpath:remote-available-p): Fixed tramp package check prior to 
loading by adding a test for
+    tramp-autoload-file-name-handler.
+
+* README.md.html: Fixed bookmarks/in-file link ids.
+
+2016-08-03  Bob Weiner  <address@hidden>
+
+* hsettings.el (hyperbole-web-search-alist): Made any edit update all 
Hyperbole menus with the new value.
+  DEMO (Hyperbole Menus): Added description and exercise using the new 
Find/Web menu.
+  hui-mini.el (Cust/Web-Search): Added to allow setting of 
hyperbole-web-search-browser-function.
+  hui-menu.el (infodock-hyperbole-menu): Added optional rebuild-flag to force 
rebuilding of the
+    Hyperbole menubar menu.
+
+* man/hyperbole.texi (HyControl): Documented ESC as a way to quit from 
HyControl.
+
+2016-08-02  Bob Weiner  <address@hidden>
+
+* README.md.html - Added.
+
+2016-08-01  Bob Weiner  <address@hidden>
+
+* hui-menu.el (hui-menu-browser): Added to allow setting of
+    hyperbole-web-search-browser-function.
+              (infodock-hyperbole-menu): Added missing quote in 
Display-Referents-in setq,
+    fixing invalid code generation.
+
+* README.md (Invocation):
+  HY-ANNOUNCE (Invocation):
+  INSTALL (Invocation):
+  README (Files):
+  DEMO (HyControl): Added pointer to HyControl video and {C-c \} binding.
+  hyperbole.texi (HyControl): Updated {C-c \} binding description.
+
+* hycontrol.el (hycontrol-frames, hycontrol-windows): Added ESC as an 
additional key
+    that quits from HyControl.
+
+* man/hyperbole.texi (Global Key Bindings): Documented {C-c /} prefix key.
+                     (Menus): Added Find/Web menu.
+
+2016-07-31  Bob Weiner  <address@hidden>
+
+* Changes: Renamed this file from ChangeLog since Elpa release builds
+    overwrite any file named ChangeLog with git log information which
+    has less history than Hyperbole's Changes.
+
+* hui-mini.el (hui-search-web): Added so can invoke the Hyperbole
+    Find/Web search menu directly.
+  hyperbole.el (hkey-initialize): Bound above command to {C-c /}.
+
+* hsettings.el (hyperbole-web-search-browser-function):
+               (hyperbole-web-search-alist):
+               (hyperbole-web-search):  Added.
+  hui-mini.el (hui:menu-web-search): Added and called within hui:menus.
+  hui-menu.el (hui-menu-web-search): Added and called in 
infodock-hyperbole-menu.
+
+* hinit.el (hyperb:init-menubar): Fixed so sets after-init-hook only
+    if not after-init-time.  Also forced a return value of nil.
+  hui-menu.el (hyperbole-menubar-menu): Changed so this always updates
+    the menubar with the latest version of the Hyperbole menu; previously
+    it only added the menu if it was not there.
+
+2016-07-29  Bob Weiner  <address@hidden>
+
+* README.md: Added menu images and screenshots for easy access.
+
+* hui-mouse.el (action-key-eol-function, assist-key-eol-function): Added these 
2
+    options to control what the Action and Assist Keys do at the end of a line.
+    Default behaviors remain as before but now one can set these to do 
something
+    other than scrolling, if desired.
+
+2016-07-28  Bob Weiner  <address@hidden>
+
+* hyperbole.el: Updated the header fields to better match GNU standards for use
+    by the Lisp maintainer package, lisp-mnt.el.
+
+2016-07-27  Bob Weiner  <address@hidden>
+
+* hactypes.el (exec-shell-cmd): Replaced call to old function 
'show-output-from-shell'
+    with 'comint-show-output'.  This fixed a failure when this action type is 
used.
+
+* HY-ANNOUNCE (About):
+  README (Files): Added pointers to Hyperbole screenshot files.
+
+*  man/im/menu-hyperbole2.pdf: Removed this unneeded file.
+
+* HY-ANNOUNCE: Updated first section and used in sending 6.0.1 release 
announcements.
+    Added items from HY-NEWS for 6.0.1 that were unintentially left out of 
this file.
+
+* hload-path.el (hyperb:dir): If the Emacs Package Manager has already added 
this
+    to load-path without a trailing directory separator, don't add it with one.
+
+==============================================================================
+V6.0.2 changes ^^^^:
+==============================================================================
+
 2016-07-26  Mats Lidell  <address@hidden>
 
 * hypb.el (hypb:rgrep-command): Removed -Z option.
diff --git a/DEMO b/DEMO
index 0f22ea1..e7d4b3f 100644
--- a/DEMO
+++ b/DEMO
@@ -104,6 +104,16 @@ Let's try a menu item that displays the Hyperbole Glossary 
of terms.  Use
 glossary.  {C-h h d RET} would simply exit the menu and {C-h h d C-t} would
 redisplay the top Hyperbole menu.
 
+What if we want to do a web search for GNU Hyperbole?  Then we use the
+Find/Web menu, typically bound to {C-c /} or if not, then use {C-h h f w}.
+Then type {g} for Google and enter "GNU Hyperbole", including the quote marks
+so that it is searched for as a phrase.  Your standard web browser will be
+used to return the search results.
+
+You can change which browser is used with {C-h h c w}, the Cust/Web-Search
+menu.  Advanced users can change the search engines listed by editing the
+option, <(hyperbole-web-search-alist)>.
+
 ** Help Buffers
 
 Since the Smart Keys do so many things, it is helpful to see what they will
@@ -150,9 +160,10 @@ alphabetical order the Koutliner commands which are bound 
to keys.
 * HyControl
 
 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,
-window system windows) then this tool is for you.
+management system available, HyControl, found under the Hyperbole Screen
+menu.  If you use a lot of Emacs windows or frames (typically, window system
+windows) then this tool is for you.  A long video demonstrating most of
+HyControl's features is available at https://youtu.be/M3-aMh1ccJk.
 
 HyControl interactively adjusts the layout of your windows and frames
 down to the pixel-level if desired.  You adjust the location, size and
@@ -162,9 +173,9 @@ avoid covering toolbars anchored at the edges of your 
screen and allows you
 to quickly set numeric arguments to apply to operations, like resizing a
 frame to a percentage of your screen size.
 
-Hyperbole typically binds the key {C-c \} to invoke HyControl window control;
-otherwise, the Screen/WindowsControl minibuffer menu item, {C-h h s w}, will
-do the same thing.
+Hyperbole binds {C-c \} to invoke HyControl window control; otherwise, the
+Hyperbole minibuffer menu item, Screen/WindowsControl {C-h h s w}, will do
+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
@@ -222,15 +233,18 @@ remember, just surround them with curly braces and you'll 
always be able to
 try them out with a simple click or press.  You can even create your own
 demonstrations and tours with this and other implicit button types.
 
-** Org mode
+** Org Mode
 
-For users of Emacs Org mode, Hyperbole does two basic things.  First, the
+For users of Emacs Org mode, Hyperbole does a few things.  First, the
 Action Key will follow and execute links in Org mode files.  Second, when
 point is on an outline heading in Org mode, the Action Key cycles the view
 of the subtree at point and the Assist Key cycles the view of all headings
 in the buffer.  The Assist Key will also display help when pressed on an Org
 mode link.
 
+In any other context besides the end of a line, the Action Key will invoke
+the Org mode standard binding of {M-RET}, (org-meta-return).
+
 ** Implicit Path Links
 
 Any existing absolute or relative pathname (whether doubly quoted or not)
@@ -240,7 +254,7 @@ operates upon the path.  These are `pathname' implicit 
buttons.  For example,
 activate "HY-ABOUT".  HY-ABOUT or `HY-ABOUT' would work as well or
 "~/.emacs".
 
-** Paths with Line and Column Numbers
+*** Paths with Line and Column Numbers
 
 If you want to display a path at a specific line number and optionally column
 number, then add each number preceded by a colon at the end of the path.
@@ -248,6 +262,34 @@ For example, "HY-ABOUT:10" displays HY-ABOUT at line 10, 
the second
 paragraph, with point at the start of the line.  "HY-ABOUT:18:7" shows the
 first numbered item on line 18 at column 7, where the text starts.
 
+*** HTML Markdown and Emacs Outline Hash Links
+
+Often links to HTML and Markdown files use a hash mark (#) plus an identifier
+to refer to a section of such files.  When the Action Key is pressed on any
+such reference, it jumps to the section referenced by the link.
+
+For example, "man/hyperbole.html#Smart-Keys" will take you to the Smart Keys
+description in the HTML version of the Hyperbole manual.  Inside that manual
+in HTML form, "#Smart-Keys" would do the same thing.  Similarly,
+"README.md#why-was-hyperbole-developed" jumps to the referenced section of
+that Markdown file, while accounting for the difference in case, whitespace
+and trailing punctuation between the identifier and the section header.
+(Inline Markdown links surrounded by parentheses and square bracketed
+reference links work similarly but are handled specifically as Markdown
+links, not as pathnames).
+
+Hyperbole allows hash-style links to Emacs outline files (including Org-mode
+files); they work just like the Markdown section links but match to section
+headings preceded by asterisks rather than hash marks.  So to jump back to
+the Org Mode section in this file, press the Action Key on "#Org-Mode".
+
+HTML hash-links are case-sensitive; other hash-links are not.  Hash links
+typically use dashes in place of the spaces that referents may contain but if
+the link is enclosed in quotes, Hyperbole allows spaces to be used as well.
+In fact, it is best practice to always enclose hash-style links in quotes so
+Hyperbole can distinguish them from other similar looking constructs, such as
+social media hashtags (see "#Social Media Hashtags and Usernames").
+
 *** Path Suffixes and Variables
 
 Most file path buttons directly name their associated files in full, but
@@ -332,8 +374,8 @@ files and directories, then remote pathnames of the form:
 will be recognized by Hyperbole.
 
 Once you have Tramp configured for loading and are on the Internet, you can
-click on any of the following to browse the contents of the Hyperbole
-distribution:
+click on any of the following to jump to the ftp site of Hyperbole tarball
+distributions:
 
         "/address@hidden:/pub/gnu/hyperbole/"
         ftp.gnu.org:/pub/gnu/hyperbole/
@@ -635,7 +677,7 @@ remember a Hyperbole term?  Check out the Hyperbole Manual 
<(glossary)>.
 
 Here is a <(keyboard macro)> button.  It displays documentation for the
 first Emacs Lisp function that follows it, e.g. (hbut:report).  You can see
-that a button label can consist of a number of words, up to a set <(maximum
+that a button label may consist of many characters, up to a set <(maximum
 length)>.
 
 A <(shell command)> button can do many things, such as display the length of
@@ -653,6 +695,9 @@ advantage of this feature.  Note how a separate window is 
used when you
 activate file link buttons.  Most basic Hyperbole action types display their
 results in this manner.
 
+You can create buttons that run specific web searches such as a Wikipedia
+query on an <(electric car)> with the `link-to-web-search' action type.
+
 You can make a button an alias for another by using the `link-to-ebut'
 action type.  This <(factorial alias)> button does whatever the earlier
 <(factorial)> button does.
diff --git a/HY-ABOUT b/HY-ABOUT
index 7eb38da..00cd435 100644
--- a/HY-ABOUT
+++ b/HY-ABOUT
@@ -1,7 +1,7 @@
                          ABOUT GNU HYPERBOLE
                   Designed and Written by Bob Weiner
                 https://www.gnu.org/software/hyperbole/
-                            Version 6.0.1
+                            Version 6.0.2
 
 GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is
 an efficient and programmable hypertextual information management
diff --git a/HY-ANNOUNCE b/HY-ANNOUNCE
index fdfcdf7..b3a88bb 100644
--- a/HY-ANNOUNCE
+++ b/HY-ANNOUNCE
@@ -1,17 +1,21 @@
-           ANNOUNCE: GNU Hyperbole 6.0.1 for Emacs 25 is released
+            ANNOUNCE: GNU Hyperbole 6.0.2 for Emacs 24.4 to 25 is released
 
 GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is an
 amazing programmable hypertextual information management system implemented as
-a GNU Emacs package.  It works well on GNU Emacs 24.4 or above.  People who get
-used to Hyperbole find it helps them so much that they prefer never to use
-Emacs without it.
+a GNU Emacs package.  This is the second public release in 2016.  Hyperbole has
+been greatly expanded and modernized for use with the latest Emacs 25
+releases; it supports GNU Emacs 24.4 or above.  It contains an extensive set
+of improvements that can greatly boost your day-to-day productivity with Emacs
+and your ability to manage information stored across many different machines
+on the internet.  People who get used to Hyperbole find it helps them so much
+that they prefer never to use Emacs without it.
 
 Hyperbole includes easy-to-use, powerful hypertextual button types and links
-that can be made without the need to learn a markup language.  without the need
-to learn a markup language.  It also includes a hierarchical, record-based
-contact manager, a rapid window and frame control system and a powerful
-multi-level auto-numbered outliner.  All features are aimed at making textual
-information management and display fast and easy.
+that can be made without the need to learn a markup language.  It also
+includes a hierarchical, record-based contact manager, a rapid window and
+frame control system and a powerful multi-level auto-numbered outliner.  All
+features are aimed at making textual information management and display fast
+and easy.
 
 Hyperbole embeds hypertext buttons within unstructured and structured files,
 mail messages and news articles.  It offers intuitive keyboard and mouse-based
@@ -21,12 +25,6 @@ point-and-click access to World-Wide Web URLs, Info manuals, 
ftp archives, etc.
 The Hyperbole wiki page, "https://www.emacswiki.org/emacs/Hyperbole";, explains
 the many ways it differs from and is complementary to Org mode.
 
-Version 6.0.1 is the first public release for any modern version of Emacs and
-has been tested throughout its development with Emacs version 25.  It contains
-an extensive set of improvements that can greatly boost your day-to-day
-productivity with Emacs and your ability to manage information stored across
-many different machines on the internet.
-
 Instructions follow on how to download, install and utilize GNU Hyperbole as an
 Emacs package.  These are followed by What's New with Hyperbole in 2016.
 
@@ -35,9 +33,12 @@ it for the Free Software Foundation.  It includes an 
interactive demo to
 introduce you to its features and a detailed reference manual.
 
 ===========================================================================
-*                         About
+*                          About
 ===========================================================================
 
+http://git.savannah.gnu.org/cgit/hyperbole.git/tree/man/im contains a number
+of screenshots of Hyperbole and its menus.
+
 GNU Hyperbole consists of five parts:
 
 * Buttons and Smart Keys
@@ -95,7 +96,22 @@ The GNU Hyperbole project home page gives a more extensive 
description:
 "https://www.gnu.org/software/hyperbole/";.
 
 ===========================================================================
-*                         Package Installation
+*                       Browsing the Source
+===========================================================================
+
+To explore the Hyperbole source code rather than installing it for use,
+download a tar.gz source archive from either:
+
+    ftp://ftp.gnu.org/gnu/hyperbole/
+
+or
+
+    http://ftpmirror.gnu.org/hyperbole/
+
+which will find the closest mirror of the GNU ftp site and show it to you.
+
+===========================================================================
+*                          Package Installation
 ===========================================================================
 
 Once you have Emacs set up at your site, GNU Hyperbole may be
@@ -117,7 +133,7 @@ lines to your personal Emacs initialization file, typically 
"~/.emacs".
 (setq package-enable-at-startup nil) ;; Prevent double loading of libraries
 (package-initialize)
 (unless (package-installed-p 'hyperbole)
-  (package-refresh-contents)   
+  (package-refresh-contents)    
   (package-install 'hyperbole))
 (require 'hyperbole)
 
@@ -126,7 +142,7 @@ your version of Emacs.  You may see a bunch of compilation 
warnings but these
 can be safely ignored.
 
 ===========================================================================
-*                          Invocation
+*                           Invocation
 ===========================================================================
 
 Once Hyperbole has been installed for use at your site and loaded into your
@@ -155,7 +171,10 @@ Hyperbole's multi-level autonumbered hypertextual outliner.
 To try out HyControl, Hyperbole's interactive frame and window control
 system, use {C-h h s w} for window control or {C-h h s f} for frame
 control.  {t} switches between window and frame control once in one of
-them.
+them.  Hyperbole also binds {C-c \} for quick access to HyControl's
+window control menu if it was not already bound prior to Hyperbole's
+initialization.  A long video demonstrating most of HyControl's features
+is available at https://youtu.be/M3-aMh1ccJk.
 
 The above are the best interactive ways to learn about Hyperbole.  The
 Hyperbole Manual is a reference manual, not a simple introduction.  It is
@@ -175,21 +194,21 @@ wherever the Hyperbole package directory is on your 
system; often this is:
 "~/.emacs.d/elpa/hyperbole-${hyperb:version}/".
 
 ===========================================================================
-*                          User Quotes
+*                           User Quotes
 ===========================================================================
 
 
   *** MAN I love Hyperbole!!!  Wow! ***
 
-                                       -- Ken Olstad
-                                          Cheyenne Software, Inc.
+                                        -- Ken Olstad
+                                           Cheyenne Software, Inc.
 
 -------
 
   I *love* koutlines.
 
-                                       -- Bob Glickstein
-                                          Z-Code Software Corporation
+                                        -- Bob Glickstein
+                                           Z-Code Software Corporation
 
 -------
 
@@ -206,8 +225,8 @@ wherever the Hyperbole package directory is on your system; 
often this is:
   products I have ever come across.  It is certainly the one which has made
   the biggest improvement in my personal productivity.
 
-                                       -- Chris Nuzum
-                                          Co-founder, Traction Software, Inc.
+                                        -- Chris Nuzum
+                                           Co-founder, Traction Software, Inc.
 
 -------
 
@@ -224,7 +243,7 @@ wherever the Hyperbole package directory is on your system; 
often this is:
   our internal web for others to see.
 
                                         -- Farzin Guilak
-                                          Protocol Systems, Inc., Engineer
+                                           Protocol Systems, Inc., Engineer
 
 -------
 
@@ -242,8 +261,8 @@ wherever the Hyperbole package directory is on your system; 
often this is:
     4) The Hyperbole Koutliner, which I find a very useful tool.  I've
        implemented Emacspeak extensions to support it.
 
-                                       -- TV Raman
-                                          Google Inc.
+                                        -- TV Raman
+                                           Google Inc.
 
 -------
 
@@ -265,8 +284,8 @@ wherever the Hyperbole package directory is on your system; 
often this is:
   that do various little things, and I index saved mail messages by putting
   explicit link-to-mail buttons in an outline file.
 
-                                       -- Ken Olstad
-                                          Cheyenne Software, Inc.
+                                        -- Ken Olstad
+                                           Cheyenne Software, Inc.
 
 -------
 
@@ -302,8 +321,8 @@ wherever the Hyperbole package directory is on your system; 
often this is:
     folders, saved newsgroup conversation threads, online note-taker,
     emacs-command invocations, etc.
 
-                                       -- Dadong Wan
-                                          University of Hawaii
+                                        -- Dadong Wan
+                                           University of Hawaii
 
 -------
 
@@ -315,37 +334,142 @@ wherever the Hyperbole package directory is on your 
system; often this is:
   in it is a very powerful capability.  Using ange-ftp mode, one can make
   file references "across the world" as easily as normal file references.
 
-                                       -- Mark Eichin
-                                          Cygnus Support
+                                        -- Mark Eichin
+                                           Cygnus Support
 -------
 
    I just wanted to say how much I enjoy using the Hyperbole Koutliner.
    It is a great way to quickly construct very readable technical documents
    that I can pass around to others.   Thanks for the great work.  
 
-                                       -- Jeff Fried
-                                          Informix
+                                        -- Jeff Fried
+                                           Informix
 
 -------
 
    The Hyperbole system provides a nice interface to exploring corners of
    Unix that I didn't know existed before.
 
-                                       -- Craig Smith
+                                        -- Craig Smith
 
 ===========================================================================
-*                What's New in GNU Hyperbole
+*                 What's New in GNU Hyperbole V6.0.2
 ===========================================================================
 
-NOTE: Version 6.0.1 is the first public release by the author, Bob Weiner,
+  BUTTONS
+
+    - pathname Implicit Button Type: generalized to handle hash-style links to
+      HTML files, to Github Markdown # sections and to Emacs outline *
+      sections.  So an Action Key press on any of the following links displays
+      the link referent:
+            "man/hyperbole.html#Questions-and-Answers"
+           "README.md#why-was-hyperbole-developed"
+           "DEMO#HTML Markdown and Emacs Outline Hash Links"
+      Even links split across 2 lines like this now work: "DEMO#Social Media
+      Hashtags and Usernames", as long as point is on the first line.
+
+      Within HTML and Markdown files, in-file hash links without any file name
+      prefix work as well.
+
+      HTML hash-links are case-sensitive; other hash-links are not.  Hash links
+      typically use dashes in place of the spaces that referents may contain,
+      but if the link is enclosed in quotes, Hyperbole allows spaces to be used
+      as well.  In fact, it is best practice to always enclose hash-style links
+      in quotes so Hyperbole can distinguish them from other similar looking
+      constructs, such as social media hashtags (see "(hyperbole)Social 
Media").
+
+      Pathnames surrounded by literal non-ASCII quote marks now work as well.
+      For example, ‘http://ftp.gnu.org/gnu/hyperbole/’.
+
+    - New Implicit Button Type, markdown-internal-link, displays any in-file
+      Markdown link referent, aside from pathnames and urls.  Together with
+      other types, all Markdown links can now be followed by the Action Key.
+
+    - social-reference Implicit Button Type: Disabled this type within quoted
+      strings (all modes) and within parentheses (markdown-mode), so in-file
+      hash link references are not matched as social hash tags.  Made the list
+      of modes a variable, hibtypes-social-inhibit-modes.
+
+    - New link-to-web-search Action Type: Allows global and explicit buttons
+      to link to specific web term searches from `hyperbole-web-search-alist'.
+
+    - org-mode Implicit Button Type: Improved to invoke org-meta-return when
+      not on an Org link or outline heading.
+
+  DOCUMENTATION
+
+    - Added pointer to HyControl video and {C-c \} binding which invokes
+      HyControl window control.
+
+    - README File: New Org-mode user testimonial.
+
+    - DEMO File: Added description and exercise using the new Find/Web menu.
+
+    - Added README.md.html introduction with images combining README, INSTALL
+      and HY-ABOUT information.
+
+    - Full set of hand-written changes are now in the file "Changes".  The
+      former name, ChangeLog, is now auto-generated from the version controlled
+      'git log' but not as complete.
+
+  KEYS
+
+    - New variables, action-key-eol-function and assist-key-eol-function, used
+      to control what the Action and Assist Keys do at the end of a line.
+      Default behaviors remain as before but now one can set these to do
+      something other than scrolling, if desired.  See "(hyperbole)Smart Key -
+      Smart Scrolling"
+
+    - When in HyControl, pressing {ESC} now quits in addition to {q}.
+
+  MENUS
+
+    - New submenu, Find/Web, for quick access to major web search engines.
+      The Find/Web menu looks like this:
+        Web> Amazon Bing Dictionary Elisp Facebook Google Hub(git) Images Maps 
RFCs StackOverflow Twitter Wikipedia Youtube
+
+      Hyperbole binds the key {C-c /} for quick access to this menu, if it is
+      not already bound prior to Hyperbole's initialization. The
+      Cust/Web-Search menu, {C-h h c w}, sets the option,
+      hyperbole-web-search-browser-function, which determines whether web
+      search results are displayed within Emacs or with an external web
+      browser.  A short video introduction to the Find/Web menu may be found at
+      https://youtu.be/8lMlJed0-OM.
+
+      Advanced users can change the search engines listed in the Find/Web menu
+      with M-x customize-variable RET hyperbole-web-search-alist RET.  Changes
+      are automatically reflected in the Hyperbole menus once applied.
+      Remember each search engine name must begin with a unique letter and each
+      URL must have a %s format field indicating where to place the web search
+      term when a search is performed.  See "(hyperbole)Web Search Engines".
+
+===========================================================================
+*                            V6.0.0 - V6.0.1
+===========================================================================
+
+NOTE: Version 6.0.1 was the first public release by the author, Bob Weiner,
 since version 4.18.  All version 5 releases made this year were test releases,
 so you should look through all of the V5 news items to understand all that is
 new in V6 as well.  In other words, all news items listed below are new for
 2016.
 
-===========================================================================
-*                           V6.0.0 - V6.0.1
-===========================================================================
+  BUTTONS
+
+    - New implicit button type for social media hashtag or username
+      references, social-reference.  Action key activation displays
+      the web page associated with the hashtag or username.  References
+      can look like #hashtag or @username for Twitter references.
+      fb#hashtag or address@hidden for Facebook references or
+      in#hashtag or address@hidden for Instagram references.
+      See the new file "hib-social.el" for more information.
+
+  DOCUMENTATION
+
+    - The introductory parts of the manual have been improved and the flow
+      from section to section is better.  Added menu key sequences to
+      "(hyperbole)Suggestion or Bug Reporting".  Expanded and added
+      instructions on using the customize interface to change the functions
+      run by Smart Key modeline clicks.  See "(hyperbole)Smart Key Modeline".
 
   HYROLO
 
@@ -376,6 +500,11 @@ new in V6 as well.  In other words, all news items listed 
below are new for
       for details on the customization system and "(hyperbole)Configuration"
       for Hyperbole specifics.
 
+    - hsettings.el is now included in the Hyperbole package rather than
+      generated (formerly called hsite.el).  Use the Hyperbole customization
+      variables to change anything in there rather than editing the file
+      manually as before.
+
     - Renamed any Hyperbole hook variables that had a colon in their names to
       use a hyphen instead.
 
@@ -389,7 +518,7 @@ new in V6 as well.  In other words, all news items listed 
below are new for
       to begin with hywconfig- and the library is now called hywconfig.el.
 
 ===========================================================================
-*                                  V5.15
+*                                   V5.15
 ===========================================================================
 
   BUTTONS
@@ -484,7 +613,7 @@ new in V6 as well.  In other words, all news items listed 
below are new for
       navigate and quit from menus with just the Action Mouse Key.
 
 ===========================================================================
-*                              V5.13 and V5.14
+*                               V5.13 and V5.14
 ===========================================================================
 
   BUTTONS
@@ -495,10 +624,10 @@ new in V6 as well.  In other words, all news items listed 
below are new for
       This works for the GNU Hyperbole issue tracker as well as many other GNU
       projects.  All of these button formats may be embedded within any text:
 
-            #id-number
-            bug#id-number, bug# id-number, bug #id-number or bug id-number
-            bug?attr1=val1&attr2=val2&attr3=val3
-            bug#id-number?attr1=val1&attr2=val2&attr3=val3
+             #id-number
+             bug#id-number, bug# id-number, bug #id-number or bug id-number
+             bug?attr1=val1&attr2=val2&attr3=val3
+             bug#id-number?attr1=val1&attr2=val2&attr3=val3
 
       Note that `issue' or `debbugs' may be used in place of `bug'.
 
@@ -550,14 +679,14 @@ new in V6 as well.  In other words, all news items listed 
below are new for
           the file formats supported by the default setting of the
           `hpath:internal-display-alist' variable.
         - Added sections "(hyperbole)Smart Key Modifiers" and
-         "(hyperbole)Smart Key Modeline".
+          "(hyperbole)Smart Key Modeline".
         - Added a "(hyperbole)Glossary" entry for Chord Keyboard.
         - In "(hyperbole)Smart Key Thing Selection", added documentation of the
           {C-c RET} key for syntactical region marking and the {C-c .} key for
           delimited thing jumping between start and end.
         - In the Cust/ menu section of "(hyperbole)Menus" which lists all
-         Hyperbole key bindings, indicated which keys are bound only if not
-         bound prior to loading Hyperbole.
+          Hyperbole key bindings, indicated which keys are bound only if not
+          bound prior to loading Hyperbole.
 
   HYCONTROL
 
@@ -621,7 +750,7 @@ new in V6 as well.  In other words, all news items listed 
below are new for
 
 
 ===========================================================================
-*                                  V5.12
+*                                   V5.12
 ===========================================================================
 
   BUTTONS
@@ -720,7 +849,7 @@ new in V6 as well.  In other words, all news items listed 
below are new for
       its format will automatically be handled by the rolo.
 
 ===========================================================================
-*                                  V5.11
+*                                   V5.11
 ===========================================================================
 
   BUTTONS
@@ -809,7 +938,7 @@ new in V6 as well.  In other words, all news items listed 
below are new for
       commands.
 
 ===========================================================================
-*                                  V5.10
+*                                   V5.10
 ===========================================================================
 
   EMACS SUPPORT
@@ -887,7 +1016,7 @@ new in V6 as well.  In other words, all news items listed 
below are new for
       See the GNU Hyperbole Manual for its usage.
 
 ===========================================================================
-*                                  V5.09
+*                                   V5.09
 ===========================================================================
 
   FRAMES
@@ -974,7 +1103,7 @@ new in V6 as well.  In other words, all news items listed 
below are new for
 
 
 ===========================================================================
-*                                  V5.08
+*                                   V5.08
 ===========================================================================
 
   DOCUMENTATION
@@ -1010,7 +1139,7 @@ new in V6 as well.  In other words, all news items listed 
below are new for
       mouse button do the same thing.  Try it, you'll like it.
 
 ===========================================================================
-*                                  V5.07
+*                                   V5.07
 ===========================================================================
 
   EMACS VERSIONS
diff --git a/HY-NEWS b/HY-NEWS
index a681edd..e9ad7ce 100644
--- a/HY-NEWS
+++ b/HY-NEWS
@@ -3,23 +3,114 @@
 
           (See "ChangeLog" for more complete details of changes.)
 
-NOTE: Version 6.0.1 is the first public release by the author since version
-4.18.  All version 5 releases were test releases, so all V5 and V6 features
-are new in 2016 and you should look through them all.
+===========================================================================
+*                                  V6.0.2
+===========================================================================
+
+  BUTTONS
+
+    - pathname Implicit Button Type: generalized to handle hash-style links to
+      HTML files, to Github Markdown # sections and to Emacs outline *
+      sections.  So an Action Key press on any of the following links displays
+      the link referent:
+            "man/hyperbole.html#Questions-and-Answers"
+           "README.md#why-was-hyperbole-developed"
+           "DEMO#HTML Markdown and Emacs Outline Hash Links"
+      Even links split across 2 lines like this now work: "DEMO#Social Media
+      Hashtags and Usernames", as long as point is on the first line.
+
+      Within HTML and Markdown files, in-file hash links without any file name
+      prefix work as well.
+
+      HTML hash-links are case-sensitive; other hash-links are not.  Hash links
+      typically use dashes in place of the spaces that referents may contain,
+      but if the link is enclosed in quotes, Hyperbole allows spaces to be used
+      as well.  In fact, it is best practice to always enclose hash-style links
+      in quotes so Hyperbole can distinguish them from other similar looking
+      constructs, such as social media hashtags (see "(hyperbole)Social 
Media").
+
+      Pathnames surrounded by literal non-ASCII quote marks now work as well.
+      For example, ‘http://ftp.gnu.org/gnu/hyperbole/’.
+
+    - New Implicit Button Type, markdown-internal-link, displays any in-file
+      Markdown link referent, aside from pathnames and urls.  Together with
+      other types, all Markdown links can now be followed by the Action Key.
+
+    - social-reference Implicit Button Type: Disabled this type within quoted
+      strings (all modes) and within parentheses (markdown-mode), so in-file
+      hash link references are not matched as social hash tags.  Made the list
+      of modes a variable, hibtypes-social-inhibit-modes.
+
+    - New link-to-web-search Action Type: Allows global and explicit buttons
+      to link to specific web term searches from `hyperbole-web-search-alist'.
+
+    - org-mode Implicit Button Type: Improved to invoke org-meta-return when
+      not on an Org link or outline heading.
+
+  DOCUMENTATION
+
+    - Added pointer to HyControl video and {C-c \} binding which invokes
+      HyControl window control.
+
+    - README File: New Org-mode user testimonial.
+
+    - DEMO File: Added description and exercise using the new Find/Web menu.
+
+    - Added README.md.html introduction with images combining README, INSTALL
+      and HY-ABOUT information.
+
+    - Full set of hand-written changes are now in the file "Changes".  The
+      former name, ChangeLog, is now auto-generated from the version controlled
+      'git log' but not as complete.
+
+  KEYS
+
+    - New variables, action-key-eol-function and assist-key-eol-function, used
+      to control what the Action and Assist Keys do at the end of a line.
+      Default behaviors remain as before but now one can set these to do
+      something other than scrolling, if desired.  See "(hyperbole)Smart Key -
+      Smart Scrolling"
+
+    - When in HyControl, pressing {ESC} now quits in addition to {q}.
+
+  MENUS
+
+    - New submenu, Find/Web, for quick access to major web search engines.
+      The Find/Web menu looks like this:
+        Web> Amazon Bing Dictionary Elisp Facebook Google Hub(git) Images Maps 
RFCs StackOverflow Twitter Wikipedia Youtube
+
+      Hyperbole binds the key {C-c /} for quick access to this menu, if it is
+      not already bound prior to Hyperbole's initialization. The
+      Cust/Web-Search menu, {C-h h c w}, sets the option,
+      hyperbole-web-search-browser-function, which determines whether web
+      search results are displayed within Emacs or with an external web
+      browser.  A short video introduction to the Find/Web menu may be found at
+      https://youtu.be/8lMlJed0-OM.
+
+      Advanced users can change the search engines listed in the Find/Web menu
+      with M-x customize-variable RET hyperbole-web-search-alist RET.  Changes
+      are automatically reflected in the Hyperbole menus once applied.
+      Remember each search engine name must begin with a unique letter and each
+      URL must have a %s format field indicating where to place the web search
+      term when a search is performed.  See "(hyperbole)Web Search Engines".
 
 ===========================================================================
 *                                  V6.0.1
 ===========================================================================
 
+NOTE: Version 6.0.1 is the first public release by the author since version
+4.18.  All version 5 releases were test releases, so all V5 and V6 features
+are new in 2016 and you should look through them all.
+
   BUTTONS
 
-    - New implicit button type for social media hashtag or username
-      references, social-reference.  Action key activation displays
-      the web page associated with the hashtag or username.  References
-      can look like #hashtag or @username for Twitter references.
-      fb#hashtag or address@hidden for Facebook references or
-      in#hashtag or address@hidden for Instagram references.
-      See the new file "hib-social.el" for more information.
+    - New Implicit Button Type, social-reference: for social media hashtag or
+      username references, social-reference.  Action key activation
+      displays the web page associated with the hashtag or username.
+      References can look like #hashtag or @username for Twitter
+      references.  fb#hashtag or address@hidden for Facebook references
+      or in#hashtag or address@hidden for Instagram references.  See
+      the new file "hib-social.el" for more information.
 
   DOCUMENTATION
 
@@ -66,7 +157,7 @@ are new in 2016 and you should look through them all.
       options.  Use {M-x customize-browse RET} and find the Hyperbole group
       under Applications.  Hyperbole's options are divided into logical
       subgroups such as Rolo and Koutliner.  See "(emacs)Easy Customization"
-      for details on the customization system and "(hyperbole)Configuration"
+      for details on the customization system and "(hyperbole)Customization"
       for Hyperbole specifics.
 
     - Renamed any Hyperbole hook variables that had a colon in their names
diff --git a/HY-WHY.kotl b/HY-WHY.kotl
index 3bdf057..6f3f0d0 100644
--- a/HY-WHY.kotl
+++ b/HY-WHY.kotl
@@ -4,13 +4,17 @@
    1. Create a library of documents, link them on-the-fly and retrieve
       any one at the touch of a button containing its short id.
 
-   2. Display and edit local or remote files and directories simply by
+   2. Utilize a single key to follow URLs with section links, Markdown
+      links, Emacs outline heading links, Org mode links, file and
+      directory links and program identifier references.
+
+   3. Display and edit local or remote files and directories simply by
       pressing on their names.  Hyperbole will automatically embed
       certain key variables in link pathnames so that as these links
       are moved from site to site and the variable values change at
       each site, the links automatically maintain proper linkages.
 
-   3. Full-text search for any contact-related information across
+   4. Full-text search for any contact-related information across
       thousands of contacts in under a second.  The fastest contact
       manager you have ever used, with hierarchical entries so you can
       easily find everyone on a particular team or within an
@@ -18,42 +22,42 @@
       while still seeing name, phone number and email information.
       Edit entries with a single key press.
 
-   4. Hyperbole has some radically cool ways to select regions of
+   5. 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.  These
       selectable things include: delimited pairs of (), @address@hidden, <>, []
       and quote marks, source code functions, source code comments and
       matching tag pairs in HTML and SGML modes.
 
-   5. Use the fantastic, auto-numbered Koutliner with per-item links
+   6. Use the fantastic, auto-numbered Koutliner with per-item links
       and rapidly changeable views.
 
-   6. Rapid control over what is displayed where in multiple windows
-      and frames with Hyperbole' HyControl module.
+   7. Rapid control over what is displayed where in multiple windows
+      and frames with the Hyperbole HyControl system.
 
-     6a. Use a quick mouse key press to scroll any window line to the
+     7a. Use a quick mouse key press to scroll any window line to the
          top or bottom of a window, to see exactly what you want on
          screen.
 
-     6b. For each frame, store a series of window configurations
+     7b. For each frame, store a series of window configurations
          (layouts) that each allow for working with a set of specific
          buffers, rapidly moving among them.
 
-     6c. Easily adjust the height and width of windows as needed.
+     7c. Easily adjust the height and width of windows as needed.
 
-     6d. Quick clicks on different areas of a buffer's modeline will
+     7d. Quick clicks on different areas of a buffer's modeline will
          rotate through your working list of buffers, changing what
          each window displays.  A popup menu gives you quick access to
          Hyperbole commands plus frame, window and buffer selection
          and management commands.  GNU documentation manuals may be
          shown and navigated with a single mouse key.
 
-     6e. A single mouse drag swaps what is displayed in each of two
+     7e. A single mouse drag swaps what is displayed in each of two
          windows, even across frames.
 
 
 "ben" ;; kvspec:current
-16 ;; id-counter
+18 ;; id-counter
 alpha ;; label-type
 4 ;; label-min-width
 ". " ;; label-separator
@@ -61,9 +65,11 @@ alpha ;; label-type
 
 ;; depth-first kcell attributes
 [[0
-  (creator "address@hidden" create-time "20160613:15:02:38" id-counter 16 file 
"/Users/bk/sw-dev/emacs/hyperbole-5.12/HY-WHY.kotl")]
+  (creator nil create-time "20160806:03:21:53" id-counter 18 file 
"/Users/bk/sw-dev/emacs/hyperbole-6.0.1/HY-WHY.kotl")]
  [1
   (creator "address@hidden" create-time "20160524:15:04:17" no-fill t)]
+ [17
+  (creator "address@hidden" create-time "20160809:03:31:21" no-fill t)]
  [2
   (creator "address@hidden" create-time "20160524:15:04:24" no-fill t)]
  [9
@@ -84,4 +90,4 @@ alpha ;; label-type
   (creator "address@hidden" create-time "20160530:15:10:41" no-fill t)]
  [12
   (creator "address@hidden" create-time "20160530:15:14:46" no-fill t)]
- nil nil nil nil nil]
+ nil nil nil nil nil nil]
diff --git a/INSTALL b/INSTALL
index 19f4357..47c2e9e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -12,6 +12,21 @@
 # This file is part of GNU Hyperbole.
 
 ===========================================================================
+*                       Browsing the Source
+===========================================================================
+
+To explore the Hyperbole source code rather than installing it for use,
+download a tar.gz source archive from either:
+
+    ftp://ftp.gnu.org/gnu/hyperbole/
+
+or
+
+    http://ftpmirror.gnu.org/hyperbole/
+
+which will find the closest mirror of the GNU ftp site and show it to you.
+
+===========================================================================
 *                         Installation
 ===========================================================================
 
@@ -79,7 +94,10 @@ Hyperbole's multi-level autonumbered hypertextual outliner.
 To try out HyControl, Hyperbole's interactive frame and window control
 system, use {C-h h s w} for window control or {C-h h s f} for frame
 control.  {t} switches between window and frame control once in one of
-them.
+them.  Hyperbole also binds {C-c \} for quick access to HyControl's
+window control menu if it was not already bound prior to Hyperbole's
+initialization.  A long video demonstrating most of HyControl's
+features is available at https://youtu.be/M3-aMh1ccJk.
 
 The above are the best interactive ways to learn about Hyperbole.  The
 Hyperbole Manual is a reference manual, not a simple introduction.  It is
diff --git a/MANIFEST b/MANIFEST
index 94fa5a9..7727f20 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -10,9 +10,10 @@ INSTALL             - GNU Hyperbole installation and 
invocation instructions
 Makefile            - Build GNU Hyperbole directories and distributions
 README              - Information GNU Hyperbole users and maintainers should 
read
 README.md           - Markdown formatted introduction combining README, 
INSTALL and HY-ABOUT
+README.md.html      - HTML formatted introduction combining README, INSTALL 
and HY-ABOUT
 hversion.el         - GNU Hyperbole version and system information setup
 hyperbole.el        - Loads and initializes GNU Hyperbole
-ChangeLog           - Summary of changes in recent GNU Hyperbole releases
+Changes             - Summary of changes in recent GNU Hyperbole releases
 
 --- DOCUMENTATION ---
 dir                 - GNU Hyperbole Info directory tree entry
@@ -91,5 +92,5 @@ smart-clib-sym      - Test whether symbol appears within a 
set of C libraries
 
 --- EXTERNAL SYSTEM ENCAPSULATIONS ---
 hsys-org.el         - GNU Hyperbole support for Emacs Org mode links
-hsys-w3.el          - GNU Hyperbole support for Emacs W3 World-Wide Web (WWW) 
browsing
+hsys-www.el         - GNU Hyperbole support for Emacs W3 World-Wide Web (WWW) 
browsing
 
diff --git a/Makefile b/Makefile
index ca13f08..a668fed 100644
--- a/Makefile
+++ b/Makefile
@@ -33,8 +33,10 @@
 #                   make help
 #
 #               For OO-Browser maintainers:
-#                 To assemble the Hyperbole Emacs package for release:
+#                 To assemble a Hyperbole Emacs package for testing:
 #                   make pkg
+#                 To release a Hyperbole Emacs package to ELPA and ftp.gnu.org:
+#                   make release
 #
 #               The Hyperbole Manual is included in the package in four forms:
 #
@@ -50,7 +52,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 = 6.0.1
+HYPB_VERSION = 6.0.2
 
 # Emacs executable used to byte-compile .el files into .elc's.
 # Possibilities include: emacs, infodock, xemacs, etc.
@@ -97,17 +99,20 @@ html_dir = $(id_dir)/id-html
 # Shell used to process this Makefile.  Bourne shell syntax is required.
 SHELL = /bin/sh
 
-# UNIX commands you may want to change for your particular system.
+# Shell commands you may want to change for your particular system.
 CP = \cp -p
 ETAGS = \etags
+GNUFTP = \gnupload --to ftp.gnu.org:hyperbole
+GPG = \gpg
+GZIP = \gzip -c
 INSTALL = \install -m 644 -c
 MKDIR = \mkdir -p
 MAKE = \make
 RM = \rm -f
 TAR = \tar
-GPG = \gpg
 ZIP = \zip -qry
 
+
 # Directory in which to create new package distributions of Hyperbole.
 pkg_dir = /tmp
 pkg_hyperbole = $(pkg_dir)/hyperbole-$(HYPB_VERSION)
@@ -138,7 +143,7 @@ EL_COMPILE = hact.el hactypes.el hargs.el hbdata.el 
hbmap.el hbut.el \
             hib-social.el hibtypes.el \
             hinit.el hload-path.el hlvar.el hmail.el hmh.el hmoccur.el 
hmouse-info.el \
             hmouse-drv.el hmouse-key.el hmouse-mod.el hmouse-sh.el 
hmouse-tag.el \
-            hpath.el hrmail.el hsettings.el hsmail.el hsys-org.el hsys-w3.el 
htz.el \
+            hpath.el hrmail.el hsettings.el hsmail.el hsys-org.el hsys-www.el 
htz.el \
             hycontrol.el hui-jmenu.el hui-menu.el hui-mini.el hui-mouse.el 
hui-select.el \
             hui-window.el hui.el hvar.el hversion.el hvm.el hypb.el 
hyperbole.el \
             hyrolo-logic.el hyrolo-menu.el hyrolo.el hywconfig.el set.el
@@ -153,7 +158,7 @@ ELC_COMPILE =  hactypes.elc hibtypes.elc hib-debbugs.elc 
hib-doc-id.elc hib-kbd.
             hargs.elc hbdata.elc hbmap.elc hbut.elc hgnus.elc hhist.elc \
             hinit.elc hload-path.elc hlvar.elc hmail.elc hmh.elc hmoccur.elc 
hmouse-info.elc \
             hmouse-drv.elc hmouse-key.elc hmouse-mod.elc hmouse-sh.elc 
hmouse-tag.elc \
-            hpath.elc hrmail.elc hsettings.elc hsmail.elc hsys-org.elc 
hsys-w3.elc htz.elc \
+            hpath.elc hrmail.elc hsettings.elc hsmail.elc hsys-org.elc 
hsys-www.elc htz.elc \
             hycontrol.elc hui-jmenu.elc hui-menu.elc hui-mini.elc 
hui-mouse.elc hui-select.elc \
             hui-window.elc hui.elc hvar.elc hversion.elc hvm.elc hypb.elc 
hyperbole.elc \
             hyrolo-logic.elc hyrolo-menu.elc hyrolo.elc hywconfig.elc set.elc
@@ -250,15 +255,30 @@ $(man_dir)/hyperbole.pdf: $(man_dir)/hyperbole.texi 
$(man_dir)/version.texi $(ma
 
 # Generate a Hyperbole package suitable for distribution via the Emacs package 
manager.
 pkg: package
-package: release $(pkg_dir)/hyperbole-$(HYPB_VERSION).tar.sig
+package: doc kotl/kotl-loaddefs.el $(pkg_dir)/hyperbole-$(HYPB_VERSION).tar.sig
 
-# Generate a Hyperbole release suitable for distribution via GNU ELPA.
+# Generate and distribute a Hyperbole release to GNU ELPA and ftp.gnu.org.
 # One step in this is to generate an autoloads file for the Koutliner, 
kotl/kotl-loaddefs.el.
-release: doc kotl/kotl-loaddefs.el
+release: package $(pkg_dir)/hyperbole-$(hypb_version).tar.gz elpa ftp
+
+# Once the release version number is updated in hyperbole.el and the release 
is pushed to
+# git, ELPA will automatically check and build its Hyperbole archive, allowing 
users to
+# update their packages of Hyperbole.  ELPA does this twice a day now.
+elpa: package
+       git tag -s hyperbole-$(HYPB_VERSION) && git push
+
+# Send compressed tarball for uploading to GNU ftp site; this must be done 
from the directory
+# containing the tarball to upload.
+ftp: package
+       cd $(pkg_dir) && $(GNUFTP) hyperbole-$(HYPB_VERSION).tar.gz
 
 kotl/kotl-loaddefs.el: $(EL_KOTL)
        $(EMACS) $(BATCHFLAGS) -eval '(progn (let ((generated-autoload-file 
(expand-file-name "kotl/kotl-loaddefs.el"))) (update-directory-autoloads 
(expand-file-name "kotl/"))))' && sed -i '3 i ;; Copyright (C) 2016  Free 
Software Foundation, Inc.\n;;' $@ && $(RM) kotl/kotl-loaddefs.el~
 
+# Used for ftp.gnu.org tarball distributions.
+$(pkg_dir)/hyperbole-$(HYPB_VERSION).tar.gz:
+       cd $(pkg_dir) && $(GZIP) hyperbole-$(HYPB_VERSION).tar > 
hyperbole-$(HYPB_VERSION).tar.gz
+
 $(pkg_dir)/hyperbole-$(HYPB_VERSION).tar.sig: 
$(pkg_dir)/hyperbole-$(HYPB_VERSION).tar
        cd $(pkg_dir) && $(GPG) -ba -o hyperbole-$(HYPB_VERSION).tar.sig 
hyperbole-$(HYPB_VERSION).tar
        @ echo; echo "Hyperbole package built successfully:"
@@ -277,7 +297,7 @@ $(pkg_dir)/hyperbole-$(HYPB_VERSION).tar: $(HYPERBOLE_FILES)
 pkgclean: packageclean
 packageclean:
        if [ -d $(pkg_hyperbole) ]; then \
-         cd $(pkg_hyperbole) && $(RM) -r .git* ChangeLog.* *autoloads.* *.elc 
TAGS TODO* .DS_Store \
+         cd $(pkg_hyperbole) && $(RM) -r .git* videos ChangeLog.* *autoloads.* 
*.elc TAGS TODO* .DS_Store \
            core .place* ._* .*~ *~ *\# *- *.orig *.rej .nfs* CVS .cvsignore 
GNUmakefile.id; fi
        if [ -d $(pkg_hyperbole)/kotl ]; then \
          cd $(pkg_hyperbole)/kotl && $(RM) -r *autoloads.* *.elc TAGS TODO* 
.DS_Store \
diff --git a/README b/README
index 42dda98..d8d1a31 100644
--- a/README
+++ b/README
@@ -28,6 +28,17 @@ containing this file wherever it may be of use.
 
 See the "HY-ABOUT" file for a description and overview of Hyperbole.
 
+See "DEMO" for a demonstration of standard Hyperbole button capabilities.
+This is the best way to initially interactively learn about Hyperbole after
+installing it.
+
+"man/im/demo.png", "man/im/hyperbole-cv.png" and "koutline.png" are
+screenshots of Hyperbole in action.
+
+HyControl is Hyperbole's frame and window manager; a long video
+demonstrating most of HyControl's features is available at
+https://youtu.be/M3-aMh1ccJk.
+
 See the "HY-NEWS" file for a summary of new features in this release.
 
 See the "INSTALL" file for installation and invocation instructions.
@@ -36,11 +47,8 @@ See the "HY-COPY" and "COPYING" files for license 
information.
 
 See the "MANIFEST" file for summaries of Hyperbole distribution files.
 
-See "DEMO" for a demonstration of standard Hyperbole button capabilities.
-This is the best way to initially interactively learn about Hyperbole after
-installing it.
-
-Various forms of the Hyperbole are below the "man/" subdirectory.
+Various forms of the reference manual for Hyperbole are below the
+"man/" subdirectory.
 
 ===========================================================================
 *                   Programmer Quick Reference
@@ -92,6 +100,25 @@ Hyperbole key bindings (Smart Keys).
 
 -------
 
+  One of the nicest things about Hyperbole is that it's available
+  everywhere. Org-mode is a mode and its features are only available in
+  *.org files. For instance if you dropped into `eshell' or `ansi-term' and
+  did `ls', you can move point to any of the directory's contents, do M-RET
+  (or Shift-Button2) and jump to that file.  And that's just one example.
+  Note that this means that all Hyperbole functionality is available in
+  *.org files as well.  To me, except for the Hyperbole outliner, that means
+  complementary not conflicting. It's Hyperbole *and* org-mode, not
+  Hyperbole vs. org-mode.
+
+  Additionally, off the bat, I found it very well documented and for me
+  that's a proxy for the quality of a package.  The maintainers are quite
+  responsive.  There's plenty more functionality that I haven't uncovered yet
+  but due to the ease of installation and the quality of the documentation,
+  digging into it is actually fun.
+
+                                       -- Aditya Siram
+-------
+
   For me, Emacs isn't Emacs without Hyperbole.  I have depended on Hyperbole
   daily since 1992, when I first started using it to manage my development
   environment.  It didn't take long before I could summon almost any
diff --git a/README.md b/README.md
index b0b38ff..fd705ce 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# GNU Hyperbole - Version 6.0.1
+# GNU Hyperbole - Version 6.0.2
 
 <!-- START doctoc generated TOC -->
 **Table of Contents**
@@ -20,7 +20,7 @@
 `Hyperbole`, is an efficient and programmable hypertextual information
 management system implemented as a GNU Emacs package.  It works well
 on GNU Emacs 24.4 or above.  It is designed and written by Bob Weiner.
-It's main distribution site is: <https://www.gnu.org/software/hyperbole/>.
+Its main distribution site is: <https://www.gnu.org/software/hyperbole/>.
 
 It includes easy-to-use, powerful hypertextual button types without
 the need to learn a markup language; a hierarchical, record-based
@@ -37,6 +37,21 @@ World-Wide Web URLs, Info manuals, ftp archives, etc.
 The [Hyperbole wiki page](https://www.emacswiki.org/emacs/Hyperbole)
 explains the many ways it differs from and is complementary to Org mode.
 
+![Hyperbole screenshot of the Koutliner, DEMO file and 
HyRolo](man/im/hyperbole-cv.png)
+
+## Browsing the Source
+
+To explore the Hyperbole source code rather than installing it for use,
+download a tar.gz source archive from either:
+
+  - <ftp://ftp.gnu.org/gnu/hyperbole/>
+
+or
+
+  - <http://ftpmirror.gnu.org/hyperbole/>
+
+which will find the closest mirror of the GNU ftp site and show it to you.
+
 ## Installation
 
 Once you have Emacs set up at your site, GNU Hyperbole may be
@@ -83,6 +98,8 @@ You can invoke Hyperbole commands in one of three ways:
 
    use the Hyperbole menu on your menubar;
 
+   ![Hyperbole Menubar Menu](man/im/menu-hyperbole.png)
+
    type {C-h h} or {M-x hyperbole RET} to bring up the Hyperbole main menu
    in the minibuffer window, for fast keyboard or mouse-based selection;
    select an item from this menu by typing the item's first letter; use {q}
@@ -94,18 +111,25 @@ You can invoke Hyperbole commands in one of three ways:
 Use {C-h h d d} for an interactive demonstration of standard Hyperbole
 button capabilities.
 
+![Hyperbole screenshot of the DEMO](man/im/demo.png)
+
 {C-h h k e} offers a interactive demonstration of the Koutliner,
 Hyperbole's multi-level autonumbered hypertextual outliner.
 
+![Hyperbole screenshot of the Koutliner](man/im/koutliner.png)
+
 To try out HyControl, Hyperbole's interactive frame and window control
 system, use {C-h h s w} for window control or {C-h h s f} for frame
 control.  {t} switches between window and frame control once in one of
-them.
+them.  Hyperbole also binds {C-c \} for quick access to HyControl's
+window control menu if it was not already bound prior to Hyperbole's
+initialization.  A long video demonstrating most of HyControl's
+features is available at https://youtu.be/M3-aMh1ccJk.
 
-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 "man/" subdirectory of the Hyperbole package directory in
-four forms:
+The above are the best interactive ways to learn about Hyperbole.
+Hyperbole also includes the Hyperbole Manual, a full reference manual,
+not a simple introduction.  It is included in the "man/" subdirectory
+of the Hyperbole package directory in four forms:
 
 [hyperbole.info](man/hyperbole.info)   - online Info browser version  
 [hyperbole.html](man/hyperbole.html)   - web HTML version  
@@ -154,6 +178,8 @@ Hyperbole consists of five parts:
        has a menu interface, which may be operated from the keyboard or
        the mouse.
 
+          ![HyRolo Menubar Menu](man/im/menu-rolo.png)
+
    3.  **Screen Control**: the fastest, easiest-to-use window and frame
        control available for GNU Emacs.  With just a few keystrokes,
        you can shift from increasing a window's height by 5 lines
@@ -333,6 +359,26 @@ Keys).
 
 -------
 
+  One of the nicest things about Hyperbole is that it's available
+  everywhere. Org-mode is a mode and its features are only available in
+  *.org files. For instance if you dropped into `eshell' or `ansi-term' and
+  did `ls', you can move point to any of the directory's contents, do M-RET
+  (or Shift-Button2) and jump to that file.  And that's just one example.
+  Note that this means that all Hyperbole functionality is available in
+  *.org files as well.  To me, except for the Hyperbole outliner, that means
+  complementary not conflicting. It's Hyperbole *and* org-mode, not
+  Hyperbole vs. org-mode.
+
+  Additionally, off the bat, I found it very well documented and for me
+  that's a proxy for the quality of a package.  The maintainers are quite
+  responsive.  There's plenty more functionality that I haven't uncovered yet
+  but due to the ease of installation and the quality of the documentation,
+  digging into it is actually fun.
+
+                        -- Aditya Siram  
+
+-------
+
   For me, Emacs isn't Emacs without Hyperbole.  I have depended on Hyperbole
   daily since 1992, when I first started using it to manage my development
   environment.  It didn't take long before I could summon almost any
diff --git a/README.md.html b/README.md.html
new file mode 100644
index 0000000..d182443
--- /dev/null
+++ b/README.md.html
@@ -0,0 +1,985 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+
+<meta charset="utf-8">
+<title>README</title>
+
+
+<style type="text/css">
+body {
+  font-family: Helvetica, arial, sans-serif;
+  font-size: 14px;
+  line-height: 1.6;
+  padding-top: 10px;
+  padding-bottom: 10px;
+  background-color: white;
+  padding: 30px; }
+
+body > *:first-child {
+  margin-top: 0 !important; }
+body > *:last-child {
+  margin-bottom: 0 !important; }
+
+a {
+  color: #4183C4; }
+a.absent {
+  color: #cc0000; }
+a.anchor {
+  display: block;
+  padding-left: 30px;
+  margin-left: -30px;
+  cursor: pointer;
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0; }
+
+h1, h2, h3, h4, h5, h6 {
+  margin: 20px 0 10px;
+  padding: 0;
+  font-weight: bold;
+  -webkit-font-smoothing: antialiased;
+  cursor: text;
+  position: relative; }
+
+h1 tt, h1 code {
+  font-size: inherit; }
+
+h2 tt, h2 code {
+  font-size: inherit; }
+
+h3 tt, h3 code {
+  font-size: inherit; }
+
+h4 tt, h4 code {
+  font-size: inherit; }
+
+h5 tt, h5 code {
+  font-size: inherit; }
+
+h6 tt, h6 code {
+  font-size: inherit; }
+
+h1 {
+  font-size: 28px;
+  color: black; }
+
+h2 {
+  font-size: 24px;
+  border-bottom: 1px solid #cccccc;
+  color: black; }
+
+h3 {
+  font-size: 18px; }
+
+h4 {
+  font-size: 16px; }
+
+h5 {
+  font-size: 14px; }
+
+h6 {
+  color: #777777;
+  font-size: 14px; }
+
+p, blockquote, ul, ol, dl, li, table, pre {
+  margin: 15px 0; }
+
+hr {
+  background: transparent 
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4g
 [...]
+  border: 0 none;
+  color: #cccccc;
+  height: 4px;
+  padding: 0;
+}
+
+body > h2:first-child {
+  margin-top: 0;
+  padding-top: 0; }
+body > h1:first-child {
+  margin-top: 0;
+  padding-top: 0; }
+  body > h1:first-child + h2 {
+    margin-top: 0;
+    padding-top: 0; }
+body > h3:first-child, body > h4:first-child, body > h5:first-child, body > 
h6:first-child {
+  margin-top: 0;
+  padding-top: 0; }
+
+a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, 
a:first-child h5, a:first-child h6 {
+  margin-top: 0;
+  padding-top: 0; }
+
+h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
+  margin-top: 0; }
+
+li p.first {
+  display: inline-block; }
+li {
+  margin: 0; }
+ul, ol {
+  padding-left: 30px; }
+
+ul :first-child, ol :first-child {
+  margin-top: 0; }
+
+dl {
+  padding: 0; }
+  dl dt {
+    font-size: 14px;
+    font-weight: bold;
+    font-style: italic;
+    padding: 0;
+    margin: 15px 0 5px; }
+    dl dt:first-child {
+      padding: 0; }
+    dl dt > :first-child {
+      margin-top: 0; }
+    dl dt > :last-child {
+      margin-bottom: 0; }
+  dl dd {
+    margin: 0 0 15px;
+    padding: 0 15px; }
+    dl dd > :first-child {
+      margin-top: 0; }
+    dl dd > :last-child {
+      margin-bottom: 0; }
+
+blockquote {
+  border-left: 4px solid #dddddd;
+  padding: 0 15px;
+  color: #777777; }
+  blockquote > :first-child {
+    margin-top: 0; }
+  blockquote > :last-child {
+    margin-bottom: 0; }
+
+table {
+  padding: 0;border-collapse: collapse; }
+  table tr {
+    border-top: 1px solid #cccccc;
+    background-color: white;
+    margin: 0;
+    padding: 0; }
+    table tr:nth-child(2n) {
+      background-color: #f8f8f8; }
+    table tr th {
+      font-weight: bold;
+      border: 1px solid #cccccc;
+      margin: 0;
+      padding: 6px 13px; }
+    table tr td {
+      border: 1px solid #cccccc;
+      margin: 0;
+      padding: 6px 13px; }
+    table tr th :first-child, table tr td :first-child {
+      margin-top: 0; }
+    table tr th :last-child, table tr td :last-child {
+      margin-bottom: 0; }
+
+img {
+  max-width: 100%; }
+
+span.frame {
+  display: block;
+  overflow: hidden; }
+  span.frame > span {
+    border: 1px solid #dddddd;
+    display: block;
+    float: left;
+    overflow: hidden;
+    margin: 13px 0 0;
+    padding: 7px;
+    width: auto; }
+  span.frame span img {
+    display: block;
+    float: left; }
+  span.frame span span {
+    clear: both;
+    color: #333333;
+    display: block;
+    padding: 5px 0 0; }
+span.align-center {
+  display: block;
+  overflow: hidden;
+  clear: both; }
+  span.align-center > span {
+    display: block;
+    overflow: hidden;
+    margin: 13px auto 0;
+    text-align: center; }
+  span.align-center span img {
+    margin: 0 auto;
+    text-align: center; }
+span.align-right {
+  display: block;
+  overflow: hidden;
+  clear: both; }
+  span.align-right > span {
+    display: block;
+    overflow: hidden;
+    margin: 13px 0 0;
+    text-align: right; }
+  span.align-right span img {
+    margin: 0;
+    text-align: right; }
+span.float-left {
+  display: block;
+  margin-right: 13px;
+  overflow: hidden;
+  float: left; }
+  span.float-left span {
+    margin: 13px 0 0; }
+span.float-right {
+  display: block;
+  margin-left: 13px;
+  overflow: hidden;
+  float: right; }
+  span.float-right > span {
+    display: block;
+    overflow: hidden;
+    margin: 13px auto 0;
+    text-align: right; }
+
+code, tt {
+  margin: 0 2px;
+  padding: 0 5px;
+  white-space: nowrap;
+  border: 1px solid #eaeaea;
+  background-color: #f8f8f8;
+  border-radius: 3px; }
+
+pre code {
+  margin: 0;
+  padding: 0;
+  white-space: pre;
+  border: none;
+  background: transparent; }
+
+.highlight pre {
+  background-color: #f8f8f8;
+  border: 1px solid #cccccc;
+  font-size: 13px;
+  line-height: 19px;
+  overflow: auto;
+  padding: 6px 10px;
+  border-radius: 3px; }
+
+pre {
+  background-color: #f8f8f8;
+  border: 1px solid #cccccc;
+  font-size: 13px;
+  line-height: 19px;
+  overflow: auto;
+  padding: 6px 10px;
+  border-radius: 3px; }
+  pre code, pre tt {
+    background-color: transparent;
+    border: none; }
+
+sup {
+    font-size: 0.83em;
+    vertical-align: super;
+    line-height: 0;
+}
+* {
+       -webkit-print-color-adjust: exact;
+}
address@hidden screen and (min-width: 914px) {
+    body {
+        width: 854px;
+        margin:0 auto;
+    }
+}
address@hidden print {
+       table, pre {
+               page-break-inside: avoid;
+       }
+       pre {
+               word-wrap: break-word;
+       }
+}
+</style>
+
+<style type="text/css">
+
+code[class*="language-"],
+pre[class*="language-"] {
+       color: black;
+       background: none;
+       text-shadow: 0 1px white;
+       font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+       text-align: left;
+       white-space: pre;
+       word-spacing: normal;
+       word-break: normal;
+       word-wrap: normal;
+       line-height: 1.5;
+
+       -moz-tab-size: 4;
+       -o-tab-size: 4;
+       tab-size: 4;
+
+       -webkit-hyphens: none;
+       -moz-hyphens: none;
+       -ms-hyphens: none;
+       hyphens: none;
+}
+
+pre[class*="language-"]::-moz-selection, pre[class*="language-"] 
::-moz-selection,
+code[class*="language-"]::-moz-selection, code[class*="language-"] 
::-moz-selection {
+       text-shadow: none;
+       background: #b3d4fc;
+}
+
+pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
+code[class*="language-"]::selection, code[class*="language-"] ::selection {
+       text-shadow: none;
+       background: #b3d4fc;
+}
+
address@hidden print {
+       code[class*="language-"],
+       pre[class*="language-"] {
+               text-shadow: none;
+       }
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+       padding: 1em;
+       margin: .5em 0;
+       overflow: auto;
+}
+
+:not(pre) > code[class*="language-"],
+pre[class*="language-"] {
+       background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+       padding: .1em;
+       border-radius: .3em;
+       white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+       color: slategray;
+}
+
+.token.punctuation {
+       color: #999;
+}
+
+.namespace {
+       opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+       color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+       color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+       color: #a67f59;
+       background: hsla(0, 0%, 100%, .5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+       color: #07a;
+}
+
+.token.function {
+       color: #DD4A68;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+       color: #e90;
+}
+
+.token.important,
+.token.bold {
+       font-weight: bold;
+}
+.token.italic {
+       font-style: italic;
+}
+
+.token.entity {
+       cursor: help;
+}
+</style>
+
+
+</head>
+
+<body>
+
+<h1 id="toc_0">GNU Hyperbole</h1>
+
+<!-- START doctoc generated TOC -->
+
+<p><strong>Table of Contents</strong></p>
+
+<ul>
+<li><a href="#summary">Summary</a></li>
+<li><a href="#browsing-the-source">Browsing the Source</a></li>
+<li><a href="#installation">Installation</a></li>
+<li><a href="#invocation">Invocation</a></li>
+<li><a href="#details">Details</a></li>
+<li><a href="#files">Files</a></li>
+<li><a href="#programmer-quick-reference">Programmer Quick Reference</a></li>
+<li><a href="#user-quotes">User Quotes</a></li>
+<li><a href="#why-was-hyperbole-developed">Why was Hyperbole 
developed?</a></li>
+</ul>
+
+<!-- END doctoc generated TOC -->
+
+<h2 id="summary">Summary</h2>
+
+<p><code>GNU Hyperbole</code> (pronounced Ga-new Hi-per-bo-lee), or just
+<code>Hyperbole</code>, is an efficient and programmable hypertextual 
information
+management system implemented as a GNU Emacs package.  It works well
+on GNU Emacs 24.4 or above.  It is designed and written by Bob Weiner.
+Its main distribution site is: <a 
href="https://www.gnu.org/software/hyperbole/";>https://www.gnu.org/software/hyperbole/</a>.</p>
+
+<p>It includes easy-to-use, powerful hypertextual button types without
+the need to learn a markup language; a hierarchical, record-based
+contact manager; a rapid window and frame control system; and a
+powerful multi-level auto-numbered outliner.  All features are aimed
+at making textual information management and display fast and easy.</p>
+
+<p>Hyperbole allows hypertext buttons to be embedded within unstructured
+and structured files, mail messages and news articles.  It offers
+intuitive keyboard and mouse-based control of information display
+within multiple windows.  It also provides point-and-click access to
+World-Wide Web URLs, Info manuals, ftp archives, etc.</p>
+
+<p>The <a href="https://www.emacswiki.org/emacs/Hyperbole";>Hyperbole wiki 
page</a>
+explains the many ways it differs from and is complementary to Org mode.</p>
+
+<p><img src="man/im/hyperbole-cv.png" alt="Hyperbole screenshot of the 
Koutliner, DEMO file and HyRolo"></p>
+
+<h2 id="browsing-the-source">Browsing the Source</h2>
+
+<p>To explore the Hyperbole source code rather than installing it for use,
+    download a tar.gz source archive from either:</p>
+
+<ul><li><a 
href="ftp://ftp.gnu.org/gnu/hyperbole/";>ftp://ftp.gnu.org/gnu/hyperbole/</a></li></ul>
+
+<p>or</p>
+
+<ul><li><a 
href="http://ftpmirror.gnu.org/hyperbole/";>http://ftpmirror.gnu.org/hyperbole/</a></li></ul>
+
+<p>which will find the closest mirror of the GNU ftp site and show it to 
you.</p>
+
+<h2 id="installation">Installation</h2>
+
+<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 the Packages section of the GNU Emacs Manual,
+<a 
href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Packages.html";>Emacs
 Packages</a>. </p>
+
+<p>If you have Hyperbole 5.10 or higher already installed and simply want to
+upgrade it, invoke the Emacs Package Manager with {M-x list-packages RET},
+then use the {U} key followed by the {x} key to upgrade all out-of-date
+packages, Hyperbole among them.  Then skip the text below and move on to
+the next section, <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,
+typically &quot;~/.emacs&quot;.  For further details, see <a 
href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html";>Emacs
 Init
+File</a>.</p>
+
+<p>Below are the lines to add:</p>
+
+<div><pre><code class="language-none">(require 'package)
+(setq package-enable-at-startup nil) ;; Prevent double loading of libraries
+(package-initialize)
+(unless (package-installed-p 'hyperbole)
+  (package-refresh-contents)
+  (package-install 'hyperbole))
+(require 'hyperbole)</code></pre></div>
+
+<hr>
+
+<p>Now save the file and then restart Emacs.  Hyperbole will then be
+downloaded and compiled for use with your version of Emacs; give it a
+minute or two.  You may see a bunch of compilation warnings but these
+can be safely ignored.</p>
+
+<h2 id="invocation">Invocation</h2>
+
+<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 menu on your
+menubar and {C-h h} will display a Hyperbole menu in the minibuffer for
+quick keyboard-based selection.</p>
+
+<p>You can invoke Hyperbole commands in one of three ways:</p>
+
+<p>use the Hyperbole menu on your menubar;</p>
+
+<p><img src="man/im/menu-hyperbole.png" alt="Hyperbole Menubar Menu"></p>
+
+<p>type {C-h h} or {M-x hyperbole RET} to bring up the Hyperbole main menu
+   in the minibuffer window, for fast keyboard or mouse-based selection;
+   select an item from this menu by typing the item's first letter; use {q}
+   to quit from the menu.</p>
+
+<p>use a specific Hyperbole command such as an Action Key click {M-RET} on
+   a pathname to display the associated file or directory.</p>
+
+<p>Use {C-h h d d} for an interactive demonstration of standard Hyperbole
+button capabilities.</p>
+
+<p><img src="man/im/demo.png" alt="Hyperbole screenshot of the DEMO"></p>
+
+<p>{C-h h k e} offers a interactive demonstration of the Koutliner,
+Hyperbole's multi-level autonumbered hypertextual outliner.</p>
+
+<p><img src="man/im/koutliner.png" alt="Hyperbole screenshot of the 
Koutliner"></p>
+
+<p>To try out HyControl, Hyperbole's interactive frame and window control
+system, use {C-h h s w} for window control or {C-h h s f} for frame
+control.  {t} switches between window and frame control once in one of
+them.  Hyperbole also binds {C-c } for quick access to HyControl's
+window control menu if it was not already bound prior to Hyperbole's
+initialization.  A long video demonstrating most of HyControl's
+features is available at https://youtu.be/M3-aMh1ccJk.</p>
+
+<p>The above are the best interactive ways to learn about Hyperbole.
+Hyperbole also includes the Hyperbole Manual, a full reference manual,
+not a simple introduction.  It is included in the &quot;man/&quot; subdirectory
+of the Hyperbole package directory in four forms:</p>
+
+<p><a href="man/hyperbole.info">hyperbole.info</a>   - online Info browser 
version<br>
+<a href="man/hyperbole.html">hyperbole.html</a>   - web HTML version<br>
+<a href="man/hyperbole.pdf">hyperbole.pdf</a>     - printable version<br>
+<a href="man/hyperbole.texi">hyperbole.texi</a>   - source form  </p>
+
+<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.  {C-h h d i} will let you browse the manual.  For web
+browsing, point your browser at &quot;${hyperb:dir}/man/hyperbole.html&quot;,
+wherever the Hyperbole package directory is on your system; often this is:
+&quot;~/.emacs.d/elpa/hyperbole-${hyperb:version}/&quot;.</p>
+
+<h2 id="details">Details</h2>
+
+<p>Hyperbole consists of five parts:</p>
+
+<ol>
+<li><p><strong>Buttons and Smart Keys</strong>: A set of hyperbutton types 
which supply
+   core hypertext and other behaviors.  Buttons may be added to
+   documents (explicit buttons) with a simple drag between windows,
+   no markup language needed.  Implicit buttons are patterns
+   automatically recognized within text that perform actions,
+   e.g. bug#24568 displays the bug status information for that bug
+   number.</p>
+
+<p>Buttons are accessed by clicking on them or referenced by name
+   (global buttons), so they can be activated regardless of what is
+   on screen.  Users can make simple changes to button types and
+   those familiar with Emacs Lisp can prototype and deliver new
+   types quickly with just a few lines of code.</p>
+
+<p>Hyperbole includes two special `Smart Keys', the Action Key
+   and the Assist Key, that perform an extensive array of
+   context-sensitive operations across emacs usage, including
+   activating and showing help for Hyperbole buttons.  In many
+   popular Emacs modes, they allow you to perform common, sometimes
+   complex operations without having to a different key for each
+   operation.  Just press a Smart Key and the right thing happens;</p></li>
+<li><p><strong>Contact and Text Finder</strong>: an interactive textual 
information
+   management interface, including fast, flexible file and text
+   finding commands.  A powerful, hierarchical contact manager,
+   HyRolo, which anyone can use is also included.  It is easy to
+   learn to use since it introduces only a few new mechanisms and
+   has a menu interface, which may be operated from the keyboard or
+   the mouse.</p>
+
+<p><img src="man/im/menu-rolo.png" alt="HyRolo Menubar Menu"></p></li>
+<li><p><strong>Screen Control</strong>: the fastest, easiest-to-use window and 
frame
+   control available for GNU Emacs.  With just a few keystrokes,
+   you can shift from increasing a window's height by 5 lines
+   to moving a frame by 220 pixels or immediately moving it to a
+   screen corner.  Text in each window or frame may be enlarged
+   or shrunk (zoomed) for easy viewing, plus many other features;</p></li>
+<li><p><strong>The Koutliner</strong>: an advanced outliner with multi-level
+   autonumbering and permanent ids attached to each outline node for
+   use as hypertext link anchors, per node properties and flexible
+   view specifications that can be embedded within links or used
+   interactively;</p></li>
+<li><p><strong>Programming Library</strong>: a set of programming library 
classes for
+   system developers who want to integrate Hyperbole with another
+   user interface or as a back-end to a distinct system.  (All of
+   Hyperbole is written in Emacs Lisp for ease of modification.
+   Hyperbole has been engineered for real-world usage and is well
+   structured).</p></li>
+</ol>
+
+<p>A Hyperbole hypertext user works with buttons; he may create, modify, move
+or delete buttons.  Each button performs a specific action, such as linking
+to a file or executing a shell command.</p>
+
+<p>There are three categories of Hyperbole buttons:</p>
+
+<ol>
+<li><p><em>Explicit Buttons</em>
+      created by Hyperbole, accessible from within a single document; </p></li>
+<li><p><em>Global Buttons</em>
+      created by Hyperbole, accessible anywhere within a user's
+      network of documents;</p></li>
+<li><p><em>Implicit Buttons</em>
+      buttons created and managed by other programs or embedded
+      within the structure of a document, accessible from within a
+      single document.  Hyperbole recognizes implicit buttons by
+      contextual patterns given in their type specifications.</p></li>
+</ol>
+
+<p>Hyperbole buttons may be clicked upon with a mouse to activate them or to
+describe their actions.  Thus, a user can always check how a button will act
+before activating it.  Buttons may also be activated from a keyboard.  (In
+fact, virtually all Hyperbole operations, including menu usage, may be
+performed from any standard terminal interface, so one can use it on distant
+machines that provide limited display access).</p>
+
+<p>Hyperbole does not enforce any particular hypertext or information
+management model, but instead allows you to organize your information in
+large or small chunks as you see fit, organizing each bit as time allows.
+The Hyperbole Koutliner and HyRolo tools organize textual hierarchies and
+may also contain links to external information sources.</p>
+
+<p>Some of Hyperbole's most important features include:</p>
+
+<ul>
+<li><p>Buttons may link to information or may execute commands, such as
+computing a complex value or communicating with external programs;</p></li>
+<li><p>Buttons are quick and easy to create with no programming nor
+markup needed.  One simply drags between a button source location
+and a link destination to create or to modify a link button.  The
+same result can be achieved from the keyboard.</p></li>
+<li><p>Buttons may be embedded within email messages and activated from
+Emacs mail readers; hyperlinks may include variables so that they
+work at different locations where the variable settings differ;</p></li>
+<li><p>Koutlines allow rapid browsing, editing and movement of chunks of
+information organized into trees (hierarchies) and offer links
+that include viewspecs which determine how documents are to be
+displayed, e.g. show just the first two lines of all levels in a
+Koutline;</p></li>
+<li><p>Other hypertext and information retrieval systems may be
+encapsulated under a Hyperbole user interface very easily.</p></li>
+</ul>
+
+<p>Typical Hyperbole applications include:</p>
+
+<ul>
+<li><p><em>Personal Information Management</em><br>
+Overlapping link paths provide a variety of views into an
+information space.  A single key press activates buttons
+regardless of their types, making navigation easy.</p>
+
+<p>A search facility locates buttons in context and permits quick
+selection.</p></li>
+<li><p><em>Documentation Browsing</em><br>
+Embedding cross-references in a favorite documentation format.</p>
+
+<p>Addition of a point-and-click interface to existing documentation.</p>
+
+<p>Linkage of code and design documents.  Jumping to the definition
+of an identifier from its use within code or its reference within
+documentation.</p></li>
+<li><p><em>Brainstorming</em><br>
+Capture of ideas and then quick reorganization with the Hyperbole
+Koutliner.  Link to related ideas, eliminating the need to copy
+and paste information into a single place.</p></li>
+<li><p><em>Help/Training Systems</em><br>
+Creation of tutorials with embedded buttons that show students how
+things work while explaining the concepts, e.g. an introduction
+to UNIX commands.  This technique can be much more effective than
+descriptions alone.</p></li>
+<li><p><em>Archive Managers</em><br>
+Supplementation of programs that manage archives from incoming
+information stream, having them add topic-based buttons that
+link to the archive holdings.  Users can then search and create
+their own links to archive entries.</p></li>
+</ul>
+
+<h2 id="files">Files</h2>
+
+<p>See the <a href="HY-ABOUT">HY-ABOUT</a> file for a description and overview 
of Hyperbole.</p>
+
+<p>See the <a href="HY-ABOUT">HY-NEWS</a> file for a summary of new features 
in this release.</p>
+
+<p>See the <a href="INSTALL">INSTALL</a> file for installation and invocation 
instructions.</p>
+
+<p>See the <a href="HY-COPY">HY-COPY</a> and <a href="COPYING">COPYING</a> 
files for license information.</p>
+
+<p>See the <a href="MANIFEST">MANIFEST</a> file for summaries of Hyperbole 
distribution files.</p>
+
+<p>See <a href="DEMO">DEMO</a> for a demonstration of standard Hyperbole 
button capabilities.
+This is the best way to initially interactively learn about Hyperbole after
+installing it.</p>
+
+<p>Various forms of the Hyperbole are below the &quot;man/&quot; 
subdirectory.</p>
+
+<h2 id="programmer-quick-reference">Programmer Quick Reference</h2>
+
+<p><a href="MANIFEST">MANIFEST</a> summarizes most of the files in the 
distribution.</p>
+
+<p>See <a href="DEMO">DEMO</a> for a demonstration of standard Hyperbole button
+capabilities.  This is the best way to initially interactively learn
+about Hyperbole.  The Hyperbole Manual is a reference manual, not a
+simple introduction.</p>
+
+<p>Naming conventions:</p>
+
+<ul>
+<li><p>All Hyperbole-specific code files begin with an `h', aside from the
+Koutliner files which are in the kotl/ subdirectory and begin with a 
`k'.</p></li>
+<li><p>Hyperbole user-interface files begin with `hui-' or `hmous'.</p></li>
+<li><p>Files that define implicit button types begin with `hib'.</p></li>
+<li><p>Encapsulations of foreign systems begin with `hsys-'.</p></li>
+</ul>
+
+<p>Most of the standard Emacs user interface for Hyperbole is located in
+<a href="hui.el">hui.el</a>.  Most of the Hyperbole application programming
+interface can be found in <a href="hbut.el">hbut.el</a>.  <a 
href="hbdata.el">hbdata.el</a>
+encapsulates the button attribute storage implemented by Hyperbole.
+<a href="hmail.el">hmail.el</a> provides a basic abstract interface for
+integrating mail readers other than Rmail into Hyperbole.</p>
+
+<p>See the <a href="man/hyperbole.html#Questions-and-Answers">Hyperbole 
Questions and Answers</a> appendix in the Hyperbole manual for information on 
how
+to alter the default context-sensitive Hyperbole key bindings (Smart
+Keys).</p>
+
+<h2 id="user-quotes">User Quotes</h2>
+
+<p>*** MAN I love Hyperbole!!!  Wow! ***</p>
+
+<div><pre><code class="language-none">                    -- Ken Olstad  
+                       Cheyenne Software, Inc.</code></pre></div>
+
+<hr>
+
+<p>I <em>love</em> koutlines.</p>
+
+<div><pre><code class="language-none">                    -- Bob Glickstein  
+                       Z-Code Software Corporation</code></pre></div>
+
+<hr>
+
+<p>One of the nicest things about Hyperbole is that it's available
+   everywhere. Org-mode is a mode and its features are only available in
+   *.org files. For instance if you dropped into `eshell' or `ansi-term' and
+   did `ls', you can move point to any of the directory's contents, do M-RET
+   (or Shift-Button2) and jump to that file.  And that's just one example.
+   Note that this means that all Hyperbole functionality is available in
+   *.org files as well.  To me, except for the Hyperbole outliner, that means
+   complementary not conflicting. It's Hyperbole *and* org-mode, not
+   Hyperbole vs. org-mode.
+
+<p>Additionally, off the bat, I found it very well documented and for me
+   that's a proxy for the quality of a package.  The maintainers are quite
+   responsive.  There's plenty more functionality that I haven't uncovered yet
+   but due to the ease of installation and the quality of the documentation,
+   digging into it is actually fun.</p>
+
+<div><pre><code class="language-none">                    -- Aditya Siram  
+</code></pre></div>
+<hr>
+
+<p>For me, Emacs isn't Emacs without Hyperbole.  I have depended on Hyperbole
+  daily since 1992, when I first started using it to manage my development
+  environment.  It didn't take long before I could summon almost any
+  information I needed directly from within my editing environment with an
+  implicit button. Since I almost never have to slow down to look for
+  things--one context-dependent button usually produces exactly what I need
+  --I am able to maintain focus on the task I am working on and complete it
+  more quickly.  With its gestural interface, seamless integration with other
+  Emacs packages and incredibly useful set of core features.  I think that
+  Hyperbole is one of the best designed and most easily extensible software
+  products I have ever come across.  It is certainly the one which has made
+  the biggest improvement in my personal productivity.</p>
+
+<div><pre><code class="language-none">                    -- Chris Nuzum  
+                       Co-founder, Traction Software, Inc.</code></pre></div>
+
+<hr>
+
+<p>I've found Hyperbole (in conjunction with XEmacs) to be very useful
+  for signal processing algorithm development.</p>
+
+<p>For me, it has almost completely obsoleted the engineering notebook:
+  I keep a set of files with ideas, algorithms, and results, linked
+  together and to the implementation in C++ files.  Using XEmacs'
+  support for embedding graphics, I've written a mode that accepts
+  image tags (formatted like HTML), and reads in GIF files to display
+  plots.  I have another program that converts the file to HTML (not
+  perfect, but adequate), so I can put any aspect of development on
+  our internal web for others to see.</p>
+
+<div><pre><code class="language-none">                    -- Farzin Guilak  
+                       Protocol Systems, Inc., Engineer</code></pre></div>
+
+<hr>
+
+<p>I am blind and have been using Hyperbole since 1992.  I used to use a PC as
+  a talking terminal attached to a UNIX system, but then I developed
+  Emacspeak which lets me use Emacs and Hyperbole from standard UNIX
+  workstations with an attached voice synthesizer.</p>
+
+<p>My main uses are:</p>
+
+<ol>
+<li><p>Global and implicit buttons for jumping to ftp sites.</p></li>
+<li><p>The contact manager with Emacspeak support.</p></li>
+<li><p>Explicit buttons as part of comments made about a structured document.
+  Each button jumps to the document section referred to by the comment.
+  This is very, very useful.</p></li>
+<li><p>The Hyperbole Koutliner, which I find a very useful tool.  I've
+  implemented Emacspeak extensions to support it.</p>
+
+<div><pre><code class="language-none">                -- TV Raman  
+                   Google Inc.</code></pre></div></li>
+</ol>
+
+<hr>
+
+<p>I've been a grateful Hyperbole user for a few years now.  Hyperbole's
+  flexibility and ease of use is a marvel.</p>
+
+<p>Mainly, I write easy little implicit button types (and corresponding action
+  types) to make my life easier.  For example, I have an implicit button type
+  to bury certain buffers when I click at their bottoms, one that recognizes
+  a bug report record in various contexts and edits it, one that links pieces
+  of test output in a log file to the corresponding test case source code
+  (EXTREMELY helpful in interpreting test output), others that support our
+  homegrown test framework, one that handles tree dired mode the way I'd
+  like, one that completely handles wico menus (I've also overloaded the
+  wconfig actions triggered by diagonal mouse drags with wicos actions), and
+  a couple that support interaction with BBDB.</p>
+
+<p>Other than that, I keep a global button file with 30 or so explicit buttons
+  that do various little things, and I index saved mail messages by putting
+  explicit link-to-mail buttons in an outline file.</p>
+
+<div><pre><code class="language-none">                    -- Ken Olstad  
+                       Cheyenne Software, Inc.</code></pre></div>
+
+<hr>
+
+<p>In general, Hyperbole is an embeddable, highly extensible hypertext
+  tool.  As such, I find it very useful. As it stands now, Hyperbole is
+  particularly helpful for organizing ill-structured or loosely coupled
+  information, in part because there are few tools geared for this purpose.
+  Hyperbole also possesses a lot of potential in supporting a wider
+  spectrum of structuredness, ranging from unstructured to highly
+  structured environments, as well as structural changes over time.</p>
+
+<p>Major Uses:</p>
+
+<ul>
+<li><p>Menu interface to our own collaborative support environment called
+CoReView: This interface brings together all top-level user commands
+into a single partitioned screen, and allows the end user to interact
+with the system using simple mouse-clicking instead of the meta-x key.</p></li>
+<li><p>Gateway to internet resources: this includes links to major Internet
+archive sites of various types of information. Links are made at both
+directory and file levels.</p></li>
+<li><p>Alternative directory organizer: The hierarchical nature of the Unix
+file system sometimes makes it difficult to find things quickly and
+easily using directory navigational tools such as dired. Hyperbole
+enables me to create various &quot;profile&quot; views of my directory tree, 
with
+entries in these views referring to files anywhere in the hierarchy.</p></li>
+<li><p>Organizing and viewing online documentation: using Hyperbole along with
+Hyper-man and Info makes it truly easy to look up online 
documentation.</p></li>
+<li><p>Other desktop organization tasks: including links to various mail
+folders, saved newsgroup conversation threads, online note-taker,
+emacs-command invocations, etc.</p>
+
+<div><pre><code class="language-none">                -- Dadong Wan  
+                   University of Hawaii</code></pre></div></li>
+</ul>
+
+<hr>
+
+<p>Hyperbole is the first hyper-link system I've run across that is
+  actually part of the environment I use regularly, namely Emacs. The
+  complete flexibility of the links is both impressive and expected -- the
+  idea of making the link itself programmable is clever, and given that one
+  assumes the full power of Emacs.  Being able to send email with buttons
+  in it is a very powerful capability.  Using ange-ftp mode, one can make
+  file references &quot;across the world&quot; as easily as normal file 
references.</p>
+
+<div><pre><code class="language-none">                    -- Mark Eichin  
+                       Cygnus Support</code></pre></div>
+
+<hr>
+
+<p>I just wanted to say how much I enjoy using the Hyperbole Koutliner.
+   It is a great way to quickly construct very readable technical documents
+   that I can pass around to others.   Thanks for the great work.  </p>
+
+<div><pre><code class="language-none">                    -- Jeff Fried  
+                       Informix</code></pre></div>
+
+<hr>
+
+<p>The Hyperbole system provides a nice interface to exploring corners of
+   Unix that I didn't know existed before.</p>
+
+<div><pre><code class="language-none">                    -- Craig Smith  
</code></pre></div>
+
+<h2 id="why-was-hyperbole-developed">Why was Hyperbole developed?</h2>
+
+<p>Hyperbole was originally designed to aid in research aimed at Personalized
+Information production/retrieval Environments (PIEs).  Hyperbole was a
+PIE Manager that provided services to PIE Tools.  PIEmail, a mail reader was
+the only PIE Tool developed as part of this research but Hyperbole has
+greatly expanded since then and has long been a production quality toolset.</p>
+
+<p>An examination of many hypertext environments as background research did
+not turn up any that seemed suitable for the research envisioned, mainly
+due to the lack of rich, portable programmer and user environments.  We also
+tired of trying to manage our own distributed information pools with standard
+UNIX tools.  And so Hyperbole was conceived and raved about until it
+got its name.</p>
+
+<p>Since then Hyperbole has proved indispensible at improving information
+access and organization in daily use over many years.  Why not start
+improving your information handling efficiency today?</p>
+
+<p>-- The End --</p>
+
+</body>
+
+</html>
diff --git a/hactypes.el b/hactypes.el
index 171743c..29cf6a7 100644
--- a/hactypes.el
+++ b/hactypes.el
@@ -16,7 +16,7 @@
 ;;; ************************************************************************
 
 (eval-and-compile (mapc #'require '(hbut hpath hargs hmail)))
-(eval-when-compile (require 'comint))
+(eval-when-compile (mapc #'require '(comint hsettings)))
 
 ;;; ************************************************************************
 ;;; Standard Hyperbole action types
@@ -138,7 +138,7 @@ kill the last output to the shell buffer before executing 
SHELL-CMD."
               (comint-delete-output))
          (insert shell-cmd)
          (comint-send-input)
-         (show-output-from-shell)
+         (comint-show-output)
          (or internal-cmd (scroll-down 1)))
       (select-window owind))))
 
@@ -454,6 +454,14 @@ Returns t if found, nil if not."
                    nodename)))
     (hact 'link-to-file buffer-file-name node-point)))
 
+(defact link-to-web-search (service-name search-term)
+  "Searches web SERVICE-NAME for SEARCH-TERM.
+Uses `hyperbole-web-search-alist' to match each service to its search url.
+Uses `hyperbole-web-search-browser-function' and the `browse-url'
+package to display search results."
+  (interactive (hyperbole-read-web-search-arguments))
+  (hyperbole-web-search service-name search-term))
+
 (defact man-show (topic)
   "Displays man page on TOPIC, which may be of the form <command>(<section>).
 If using the Superman manual entry package, see the documentation for
diff --git a/hargs.el b/hargs.el
index 9a8e3cf..61d0415 100644
--- a/hargs.el
+++ b/hargs.el
@@ -26,6 +26,7 @@
 ;;; ************************************************************************
 
 (require 'hpath)
+(require 'hypb)
 (require 'set)
 
 ;;; ************************************************************************
@@ -91,7 +92,7 @@ interactive form or takes no arguments."
 
 (defun hargs:delimited (start-delim end-delim
                        &optional start-regexp-flag end-regexp-flag 
list-positions-flag)
-  "Returns a single line, delimited string that point is within, or nil.
+  "Returns a normalized, single line, delimited string that point is within, 
or nil.
 START-DELIM and END-DELIM are strings that specify the argument
 delimiters.  With optional START-REGEXP-FLAG non-nil, START-DELIM is
 treated as a regular expression.  END-REGEXP-FLAG is similar.
@@ -115,7 +116,8 @@ With optional LIST-POSITIONS-FLAG, return list of 
(string-matched start-pos end
                  (funcall end-search-func end-delim opoint t))
        (setq start nil))
       (when start
-       (end-of-line) (setq limit (1+ (point)))
+       (forward-line 2)
+       (setq limit (point))
        (goto-char opoint)
        (and (funcall end-search-func end-delim limit t)
             (setq end (match-beginning 0))
@@ -126,9 +128,10 @@ With optional LIST-POSITIONS-FLAG, return list of 
(string-matched start-pos end
                 (setq end (1- end))
               t)
             (< start end)
-            (if list-positions-flag
-                (list (buffer-substring start end) start end)
-              (buffer-substring start end)))))))
+            (let ((string (hypb:replace-match-string "[\n\r]\\s-*" 
(buffer-substring start end) " " t)))
+              (if list-positions-flag
+                  (list string start end)
+                string)))))))
 
 (defun hargs:get (interactive-entry &optional default prior-arg)
   "Prompts for an argument, if need be, from INTERACTIVE-ENTRY, a string.
@@ -301,7 +304,7 @@ Handles all of the interactive argument types that 
`hargs:iform-read' does."
               ((hpath:at-p 'file))
               ;; Unquoted remote file name.
               ((hpath:is-p (hpath:remote-at-p) 'file))
-              ;; Possibly non-existant file name
+              ;; Possibly non-existent file name
               ((hpath:at-p nil 'non-exist))
               (no-default nil)
               ((buffer-file-name))
diff --git a/hib-social.el b/hib-social.el
index acd0a9e..62e441d 100644
--- a/hib-social.el
+++ b/hib-social.el
@@ -29,6 +29,7 @@
 
 (eval-when-compile (require 'browse-url))
 (require 'hbut)
+(require 'hargs)
 
 ;;; ************************************************************************
 ;;; Public variables
@@ -64,6 +65,9 @@
   "Regular expression that matches a social media hashtag or username 
reference.
 See `ibtypes::social-reference' for format details.")
 
+(defvar hibtypes-social-inhibit-modes '(texinfo-mode para-mode)
+  "*List of major modes in which to inhibit any possible social media tag 
matches.")
+
 ;;; ************************************************************************
 ;;; Public Button Types
 ;;; ************************************************************************
@@ -77,8 +81,17 @@ Reference format is:
 The first part of the label for a button of this type is the social
 media service name.  The service name defaults to the value of
 `hibtypes-social-default-service' (default value of \"twitter\")
-when not given, so #hashtag would be the same as twitter#hashtag."
-  (when (and (not (memq major-mode '(texinfo-mode para-mode)))
+when not given, so #hashtag would be the same as twitter#hashtag.
+
+This will not match within any single line, single or
+double-quoted strings or within any buffer whose major mode is
+listed in `hibtypes-social-inhibit-modes'."
+  (when (and (not (or (memq major-mode hibtypes-social-inhibit-modes)
+                     (hargs:delimited "\"" "\"")
+                     (hargs:delimited "[\`\']" "\'" t)
+                     ;; Avoid Markdown parenthesized hash links
+                     (and (eq major-mode 'markdown-mode)
+                          (hargs:delimited "(" ")"))))
             (save-excursion
               (if (looking-at "address@hidden:alnum:]]")
                   (skip-chars-backward "address@hidden:alnum:]"))
diff --git a/hibtypes.el b/hibtypes.el
index 89b8ee8..41ab6b0 100644
--- a/hibtypes.el
+++ b/hibtypes.el
@@ -75,10 +75,10 @@
 
 (defib pathname ()
   "Makes a valid pathname display the path entry.
-Also works for delimited and non-delimited remote pathnames and
-Texinfo @file{} entries.  Emacs Lisp library files (filenames
-without any directory component that end in .el and .elc) are
-looked up using the `load-path' directory list.
+Also works for delimited and non-delimited remote pathnames, Texinfo @file{}
+entries, and hash-style link references to HTML, Markdown or Emacs outline
+headings.  Emacs Lisp library files (filenames without any directory component
+that end in .el and .elc) are looked up using the `load-path' directory list.
 
 See `hpath:at-p' function documentation for possible delimiters.
 See `hpath:suffixes' variable documentation for suffixes that are added to or
@@ -234,9 +234,7 @@ constituent character, and must not be in buffers whose 
names begin with a
        buffer-file-name
        (let ((chr (aref (buffer-name) 0)))
         (not (or (eq chr ?\ ) (eq chr ?*))))
-       (not (memq major-mode '(c-mode objc-mode c++-mode java-mode)))
-       ;; Force [PPG-sw-process-id], if defined, to take precedence.
-       (not (htype:names 'ibtypes 'ppg-sw-process))
+       (not (memq major-mode '(c-mode objc-mode c++-mode java-mode 
markdown-mode)))
        (let* ((ref-and-pos (hbut:label-p t "[" "]" t))
              (ref (car ref-and-pos)))
         (and ref (eq ?w (char-syntax (aref ref 0)))
@@ -244,6 +242,43 @@ constituent character, and must not be in buffers whose 
names begin with a
                     (hact 'annot-bib ref))))))
 
 ;;; ========================================================================
+;;; Displays in-file Markdown link referents.
+;;; ========================================================================
+
+(defib markdown-internal-link ()
+  "Displays any in-file Markdown link referent.  Pathnames and urls are 
handled elsewhere."
+  (when (and (eq major-mode 'markdown-mode)
+            (not (hpath:www-at-p)))
+    (let ((opoint (point))
+         npoint)
+      (cond ((markdown-link-p) 
+            (condition-case ()
+                ;; Follows a reference link to its referent.
+                (progn (markdown-jump)
+                       (when (/= opoint (point))
+                         (setq npoint (point))
+                         (goto-char opoint)
+                         (hact 'link-to-file buffer-file-name npoint)))
+              ;; May be on the name of an inline link, so move to the
+              ;; link itself and follow that.
+              (error 
+               (skip-chars-forward "^\]\[()")
+               (if (looking-at "\][\[\(]")
+                   (progn (skip-chars-forward "\]\[\(")
+                          ;; Leave point on the link even if not activated
+                          ;; here, so that code elsewhere activates it.
+                          (if (and (markdown-link-p)
+                                   (not (or (hpath:www-at-p) (hpath:at-p))))
+                              (progn (hpath:display-buffer (current-buffer))
+                                     (hact 'markdown-follow-link-at-point))))
+                 (goto-char opoint)
+                 nil))))
+           ((markdown-wiki-link-p)
+            (hpath:display-buffer (current-buffer))
+            (hact 'markdown-follow-wiki-link-at-point))))))
+            
+
+;;; ========================================================================
 ;;; Summarizes an Internet rfc for random access browsing by section.
 ;;; ========================================================================
 
@@ -859,7 +894,7 @@ GNUS is a news and mail reader."
 ;;; Follows URLs by invoking a web browser.
 ;;; ========================================================================
 
-(require 'hsys-w3)
+(require 'hsys-www)
 
 ;;; ========================================================================
 ;;; Displays Info nodes when double quoted "(file)node" button is activated.
diff --git a/hinit.el b/hinit.el
index 955716e..dd3acd2 100644
--- a/hinit.el
+++ b/hinit.el
@@ -29,26 +29,27 @@
 ;;; Public functions
 ;;; ************************************************************************
 
-(if (not (fboundp 'br-in-browser))
-    ;; Then the OO-Browser is not loaded, so we can never be within the
-    ;; browser.  Define this as a dummy function that always returns nil
-    ;; until the OO-Browser is ever loaded.
-    (defun br-in-browser ()
-      "Always returns nil since the OO-Browser is not loaded."
-      nil))
+(unless (fboundp 'br-in-browser)
+  ;; Then the OO-Browser is not loaded, so we can never be within the
+  ;; browser.  Define this as a dummy function that always returns nil
+  ;; until the OO-Browser is ever loaded.
+  (defun br-in-browser ()
+    "Always returns nil since the OO-Browser is not loaded."
+    nil))
 
 ;;;###autoload
 (defun hyperb:init-menubar ()
-  "Add a pulldown menu for Hyperbole, if appropriate."
+  "Add a pulldown menu for Hyperbole after Emacs is initialized."
   (interactive)
-  (if (not (featurep 'infodock))
-      (progn
-       ;; Initialize now for when this is loaded after startup.
-       (and (or hyperb:emacs-p (and (boundp 'current-menubar) current-menubar))
-            after-init-time
-            (hyperbole-menubar-menu))
-       ;; Initialize at startup.  This really is needed.
-       (add-hook 'after-init-hook #'hyperbole-menubar-menu))))
+  (unless (featurep 'infodock)
+    ;; Initialize now since Emacs startup has finished.
+    (if (and (or hyperb:emacs-p (and (boundp 'current-menubar) 
current-menubar))
+            after-init-time)
+       (hyperbole-menubar-menu)
+      ;; Defer initialization until after Emacs startup.  This really is 
needed.
+      (add-hook 'after-init-hook #'hyperbole-menubar-menu))
+    ;; Avoid returning the large Hyperbole menu.
+    nil))
 
 ;;; ************************************************************************
 ;;; Menu Support Functions
diff --git a/hload-path.el b/hload-path.el
index 60df85e..db6b3c5 100644
--- a/hload-path.el
+++ b/hload-path.el
@@ -51,8 +51,11 @@
   "Directory where the Hyperbole executable code is kept.
 It must end with a directory separator character.")
 
-;; Add hyperb:dir to load-path so other Hyperbole libraries can be found.
-(add-to-list 'load-path hyperb:dir)
+;; Add hyperb:dir to load-path so other Hyperbole libraries can be
+;; found unless it is already there since the Emacs Package Manager
+;; may have already added it.
+(unless (member (directory-file-name hyperb:dir) load-path)
+  (add-to-list 'load-path hyperb:dir))
 
 ;;; ************************************************************************
 ;;; Koutliner mode and file suffix importation settings
@@ -62,7 +65,7 @@ It must end with a directory separator character.")
 ;; initializations.
 
 (if hyperb:kotl-p
-    (progn (add-to-list #'load-path (expand-file-name "kotl/" hyperb:dir))
+    (progn (add-to-list 'load-path (expand-file-name "kotl/" hyperb:dir))
           ;; Invoke kotl-mode for files ending in ".kotl".  Also
           ;; allow ".kot" for DOS and Windows users.
           (setq auto-mode-alist (cons '("\\.kotl$\\|\\.kot$" . kotl-mode)
diff --git a/hmouse-key.el b/hmouse-key.el
index e4850d3..f63735b 100644
--- a/hmouse-key.el
+++ b/hmouse-key.el
@@ -36,9 +36,8 @@
   ;; XEmacs and Emacs pre-load their mouse libraries, so
   ;; we shouldn't have to require them here.
   (eval (cdr (assoc (hyperb:window-system)
-                   '(
-                     ("xterm"   . (require 'x-mouse))   ; X
-                     ("next"    . (load "eterm-fns" t)) ; NeXTstep
+                   '(("xterm"   . (require 'x-mouse))   ; X
+                     ("next"    . (load "eterm-fns" t)) ; NEXTSTEP
                      )))))
 
 ;;; ************************************************************************
diff --git a/hmouse-tag.el b/hmouse-tag.el
index fca6c8a..e41497e 100644
--- a/hmouse-tag.el
+++ b/hmouse-tag.el
@@ -857,18 +857,12 @@ Look for include file in `smart-asm-include-path' and add 
suffix \".ins\" or
             ;; If path exists, display file
             ;;
             (if path
-                (if (and (file-readable-p path)
-                         (progn
-                           (hpath:find path)
-                           (cond ((featurep 'asm-mode) t)
-                                 ((load "asm-mode" nil 'nomessage)
-                                  (provide 'asm-mode))
-                                 (t
-                                  (beep)
-                                  (message
-                                   "(smart-asm-include-file):  asm-mode 
undefined")
-                                  nil))))
-                    nil
+                (unless (and (file-readable-p path)
+                             (progn
+                               (hpath:find path)
+                               (or (require 'asm-mode nil t)
+                                   (progn (message "(smart-asm-include-file):  
asm-mode undefined")
+                                          nil))))
                   (beep)
                   (message "(smart-asm-include-file):  `%s' unreadable" path))
               (beep)
@@ -878,7 +872,6 @@ Look for include file in `smart-asm-include-path' and add 
suffix \".ins\" or
          (t (goto-char opoint)
             nil))))
 
-
 (defun smart-c-include-file ()
   "If point is on an include file line, tries to display file.
 Returns non-nil iff on an include file line, even if file is not found.
@@ -911,18 +904,10 @@ Look for include file in `smart-c-cpp-include-path' and 
in directory list
              (if (and (file-readable-p path)
                       (progn
                         (hpath:find path)
-                        (cond ((or (featurep 'cc-mode)
-                                   (featurep 'c-mode))
-                               t)
-                              ((or (load "cc-mode" 'missing-ok 'nomessage)
-                                   (load "c-mode" 'missing-ok 'nomessage))
-                               (provide 'c-mode))
-                              (t
-                               (beep)
-                               (message
-                                "(smart-c-include-file):  c-mode undefined")
-                               nil
-                               ))))
+                        (or (require 'cc-mode nil t)
+                            (progn (beep)
+                                   (message "(smart-c-include-file):  c-mode 
undefined")
+                                   nil))))
                  (smart-cc-mode-initialize)
                (beep)
                (message "(smart-c-include-file):  `%s' unreadable" path))
diff --git a/hpath.el b/hpath.el
index edf7119..695a079 100644
--- a/hpath.el
+++ b/hpath.el
@@ -17,6 +17,7 @@
 ;;; ************************************************************************
 
 (require 'hversion) ;; for (hyperb:window-system) definition
+(require 'hui-select) ;; for `hui-select-markup-modes'
 
 (unless (fboundp 'br-in-browser)
     ;; Then the OO-Browser is not loaded, so we can never be within the
@@ -278,6 +279,40 @@ See the documentation for `hpath:url-regexp' for match 
groupings to
 use with string-match.")
 
 ;;; ************************************************************************
+;;; Private variables
+;;; ************************************************************************
+
+(defconst hpath:html-anchor-id-pattern "\\(id\\|name\\)=['\"]%s['\"]?"
+  "Regexp matching an html anchor id definition and containing a %s for 
replacement of a specific anchor id.")
+
+(defconst hpath:markdown-anchor-id-pattern "^[ ]*%s: "
+  "Regexp matching a Markdown anchor id definition and containing a %s for 
replacement of a specific anchor id.")
+
+(defconst hpath:markdown-section-pattern "^#+[ \t]+%s\\([ \t[:punct:]]*\\)$"
+  "Regexp matching a Markdown section header and containing a %s for 
replacement of a specific section name.")
+
+(defconst hpath:markdown-suffix-regexp "\\.[mM][dD]"
+  "Regexp that matches to a Markdown file suffix.")
+
+(defconst hpath:markup-link-anchor-regexp
+ (concat "\\`\\(#?[^#]+\\)\\(#\\)\\([^\]\[#^{}<>\"`'\\\n\t\f\r]*\\)")
+  "Regexp that matches an markup filename followed by a hash (#) and an 
optional in-file anchor name.")
+
+(defconst hpath:outline-section-pattern "^\*+[ \t]+%s\\([ \t[:punct:]]*\\)$"
+  "Regexp matching an Emacs outline section header and containing a %s for 
replacement of a specific section name.")
+
+(defvar hpath:prefix-regexp "\\`[-!&][ ]*"
+  "Regexp matching command characters which may precede a pathname.
+These are used to indicate how to display or execute the pathname.
+  - means evaluate it as Emacs Lisp;
+  ! means execute it as a shell script
+  & means run it under the current window system.")
+
+(defvar hpath:remote-regexp
+  "\\`/[^/:]+:\\|\\`ftp[:.]\\|\\`www\\.\\|\\`https?:"
+  "Regexp matching remote pathnames and urls which invoke remote file 
handlers.")
+
+;;; ************************************************************************
 ;;; Public functions
 ;;; ************************************************************************
 
@@ -459,7 +494,7 @@ double quotes, open and close single quote, whitespace, or 
Texinfo file referenc
 With optional NON-EXIST, nonexistent local paths are allowed.  Absolute 
pathnames must begin with a `/' or `~'."
   (or (hargs:delimited "\"" "\"") 
       ;; Filenames in Info docs or Python files
-      (hargs:delimited "[\`\']" "\'" t)
+      (hargs:delimited "[`'‘]" "[`'’]" t t)
       ;; Filenames in TexInfo docs
       (hargs:delimited "@file{" "}")
       ;; Any existing whitespace delimited filename at point.
@@ -531,12 +566,15 @@ display function to use.  If no matches are found there,
 `hpath:display-where-alist' is consulted using the optional argument,
 DISPLAY-WHERE (a symbol) or if that is nil, the value of
 `hpath:display-where', and the matching display function is used.
+
+Allows for hash-style link references to HTML, Markdown or Emacs outline
+headings of the form, <file>#<anchor-name>.
+
 Returns non-nil iff file is displayed within a buffer (not with an external
 program)."
   (interactive "FFind file: ")
-  (let (modifier
-       loc
-       dir)
+  (let ((case-fold-search t)
+       modifier loc dir anchor hash path)
     (if (string-match hpath:prefix-regexp filename)
        (setq modifier (aref filename 0)
              filename (substring filename (match-end 0))))
@@ -545,24 +583,31 @@ program)."
          dir (file-name-directory
               ;; Loc may be a buffer without a file
               (if (stringp loc) loc default-directory))
-         filename (hpath:absolute-to filename dir))
-    (let ((remote-filename (hpath:remote-p filename)))
+         filename (hpath:absolute-to filename dir)
+         path (if (string-match hpath:markup-link-anchor-regexp filename)
+                  (progn (setq hash t
+                               anchor (match-string 3 filename))
+                         (substring filename 0 (match-end 1)))
+                filename))
+    (let ((remote-filename (hpath:remote-p path)))
       (or modifier remote-filename
-         (file-exists-p filename)
+         (file-exists-p path)
          (error "(hpath:find): \"%s\" does not exist"
                 (file-relative-name filename)))
       (or modifier remote-filename
-         (file-readable-p filename)
+         (file-readable-p path)
          (error "(hpath:find): \"%s\" is not readable"
                 (file-relative-name filename)))
       ;; If filename is a remote file (not a directory, we have to copy it to
       ;; a temporary local file and then display that.
-      (if (and remote-filename (not (file-directory-p remote-filename)))
-         (copy-file remote-filename
-                    (setq filename
-                          (concat hpath:tmp-prefix
-                                  (file-name-nondirectory remote-filename)))
-                    t t)))
+      (when (and remote-filename (not (file-directory-p remote-filename)))
+       (copy-file remote-filename
+                  (setq path (concat hpath:tmp-prefix
+                                     (file-name-nondirectory remote-filename)))
+                  t t)
+       (setq filename (cond (anchor (concat remote-filename "#" anchor))
+                            (hash   (concat remote-filename "#"))
+                            (t path)))))
     (cond (modifier (cond ((eq modifier ?!)
                           (hact 'exec-shell-cmd filename))
                          ((eq modifier ?&)
@@ -570,7 +615,7 @@ program)."
                          ((eq modifier ?-)
                           (load filename)))
                    nil)
-         (t (let ((display-executables (hpath:find-program filename))
+         (t (let ((display-executables (hpath:find-program path))
                   executable)
               (cond ((stringp display-executables)
                      (hact 'exec-window-cmd
@@ -589,7 +634,7 @@ program)."
                                                      filename))
                        (error "(hpath:find): No available executable from: %s"
                               display-executables)))
-                    (t (setq filename (hpath:validate filename))
+                    (t (setq path (hpath:validate path))
                        (if (null display-where)
                            (setq display-where hpath:display-where))
                        (funcall
@@ -597,9 +642,44 @@ program)."
                                             hpath:display-where-alist)
                                       (assq 'other-window
                                             hpath:display-where-alist))))
-                        filename)
+                        path)
+                       (if (or hash anchor) (hpath:to-markup-anchor hash 
anchor))
                        t)))))))
 
+(defun hpath:to-markup-anchor (hash anchor)
+  "Move point to the definition of ANCHOR if found or if only HASH is non-nil, 
move to the beginning of the buffer."
+  (cond ((and (stringp anchor) (not (string-empty-p anchor)))
+        (cond ((memq major-mode hui-select-markup-modes)
+               ;; In HTML-like mode where link ids are case-sensitive.
+               (let ((opoint (point))
+                     (case-fold-search))
+                 (goto-char (point-min))
+                 (if (re-search-forward (format hpath:html-anchor-id-pattern 
(regexp-quote anchor)) nil t)
+                     (progn (forward-line 0)
+                            (recenter 0))
+                   (goto-char opoint)
+                   (error "(hpath:to-markup-anchor): Anchor `%s' not found in 
the visible buffer portion"
+                          anchor))))
+              (t 
+               (let ((opoint (point))
+                     ;; Markdown or outline link ids are case
+                     ;; insensitive and - characters are converted to
+                     ;; spaces at the point of definition.
+                     (case-fold-search t)
+                     (anchor-name (subst-char-in-string ?- ?\  anchor)))
+                 (goto-char (point-min))
+                 (if (re-search-forward (format 
+                                         (if (string-match 
hpath:markdown-suffix-regexp buffer-file-name)
+                                             hpath:markdown-section-pattern
+                                           hpath:outline-section-pattern)
+                                         (regexp-quote anchor-name)) nil t)
+                     (progn (forward-line 0)
+                            (recenter 0))
+                   (goto-char opoint)
+                   (error "(hpath:to-markup-anchor): Section `%s' not found in 
the visible buffer portion"
+                          anchor-name))))))
+       (hash (goto-char (point-min)))))
+
 (defun hpath:find-executable (executable-list)
   "Return the first executable string from EXECUTABLE-LIST found within 
`exec-path'."
   (catch 'found
@@ -695,15 +775,15 @@ nonexistent local paths are allowed."
   (let ((rtn-path path)
        (suffix))
     (and (stringp path)
-        ;; Path may be a link reference with other components other than a
+        ;; Path may be a link reference with components other than a
         ;; pathname.  These components always follow a comma or # symbol, so
         ;; strip them, if any, before checking path.
-        (if (string-match "[ \t\n\r]*," path)
-            (setq rtn-path (concat (substring path 0 (match-beginning 0))
-                                    "%s" (substring path (match-beginning 0)))
-                  path (substring path 0 (match-beginning 0)))
+        (if (string-match "\\`[^#][^#,]*\\([ \t\n\r]*[#,]\\)" path)
+            (setq rtn-path (concat (substring path 0 (match-beginning 1))
+                                    "%s" (substring path (match-beginning 1)))
+                  path (substring path 0 (match-beginning 1)))
           (setq rtn-path (concat rtn-path "%s")))
-        ;; If path is just a local HTML reference that begins with #,
+        ;; If path is just a local reference that begins with #,
         ;; prepend the file name to it.
         (cond ((and buffer-file-name
                     ;; ignore HTML color strings
@@ -712,7 +792,7 @@ nonexistent local paths are allowed."
                     (string-match "\\`#[^\'\"<>#]+\\'" path))
                (setq rtn-path (concat "file://" buffer-file-name rtn-path)
                      path buffer-file-name))
-              ((string-match "\\`[^#]+\\(#[^#]+\\)\\'" path)
+              ((string-match "\\`[^#]+\\(#[^#]*\\)\\'" path)
                ;; file and # reference
                (setq path (substring path 0 (match-beginning 1)))
                (if (memq (aref path 0) '(?/ ?~))
@@ -759,13 +839,14 @@ nonexistent local paths are allowed."
                             (file-directory-p path))
                            (t))))
               (progn
-                ;; Quote any but last %s within rtn-path.
+                ;; Quote any %s except for one at the end of the path
+                ;; part of rtn-path (immediately preceding a # or ,
+                ;; character or the end of string).
                 (setq rtn-path (hypb:replace-match-string "%s" rtn-path "%%s")
-                      rtn-path (hypb:replace-match-string "%%s\\'" rtn-path 
"%s"))
+                      rtn-path (hypb:replace-match-string 
"%%s\\([#,]\\|\\'\\)" rtn-path "%s\\1"))
                 ;; Return path if non-nil return value.
-                (if (stringp suffix);; suffix could = t, which we ignore
-                    (if (string-match
-                         (concat (regexp-quote suffix) "%s") rtn-path)
+                (if (stringp suffix) ;; suffix could = t, which we ignore
+                    (if (string-match (concat (regexp-quote suffix) "%s") 
rtn-path)
                         ;; remove suffix
                         (concat (substring rtn-path 0 (match-beginning 0))
                                 (substring rtn-path (match-end 0)))
@@ -949,7 +1030,7 @@ to it."
 (defun hpath:handle-urls ()
   (let ((remote-fs-package (hpath:remote-available-p)))
       (progn
-       ;; www-url functions are defined in "hsys-w3.el".
+       ;; www-url functions are defined in "hsys-www.el".
        (put 'expand-file-name   remote-fs-package   'www-url-expand-file-name)
        (put 'find-file-noselect remote-fs-package   
'www-url-find-file-noselect)
        ;; Necessary since Dired overrides other file-name-handler-alist
@@ -1018,7 +1099,7 @@ If `/~' appears, all of FILENAME through that `/' is 
discarded."
     (remove-hook 'file-name-handler-alist
                 (cons hpath:remote-regexp 'tramp-file-name-handler))
 
-    ;; www-url functions are defined in "hsys-w3.el".
+    ;; www-url functions are defined in "hsys-www.el".
     (put 'expand-file-name   'tramp nil)
     (put 'find-file-noselect 'tramp nil)
     ;; Necessary since Dired overrides other file-name-handler-alist
@@ -1113,7 +1194,8 @@ in which case, it is loaded here."
        ((featurep 'efs) 'efs)
        ((featurep 'ange-ftp) 'ange-ftp)
        ((boundp 'file-name-handler-alist) ; GNU Emacs
-        (cond ((rassq 'tramp-file-name-handler file-name-handler-alist)
+        (cond ((or (rassq 'tramp-file-name-handler file-name-handler-alist)
+                   (rassq 'tramp-autoload-file-name-handler 
file-name-handler-alist))
                (require 'tramp))
               ((rassq 'efs-file-handler-function file-name-handler-alist)
                (require 'efs))
@@ -1135,10 +1217,10 @@ Returns \"anonymous\" if no default user is set."
        (t "anonymous")))
 
 (defun hpath:delete-trailer (string)
-  "Return string minus any trailing .?#!*() characters."
+  "Return string minus any trailing .?#!*() or quoting characters."
   (save-match-data
     (if (and (stringp string) (> (length string) 0)
-            (string-match "[.?#!*()]+\\'" string))
+            (string-match "[.?#!*()`'\"]+\\'" string))
        (substring string 0 (match-beginning 0))
       string)))
 
@@ -1261,21 +1343,6 @@ If PATH is modified, returns PATH, otherwise returns 
nil."
        (if (equal new-path path) nil new-path))))
 
 
-;;; ************************************************************************
-;;; Private variables
-;;; ************************************************************************
-
-(defvar hpath:prefix-regexp "\\`[-!&][ ]*"
-  "Regexp matching command characters which may precede a pathname.
-These are used to indicate how to display or execute the pathname.
-  - means evaluate it as Emacs Lisp;
-  ! means execute it as a shell script
-  & means run it under the current window system.")
-
-(defvar hpath:remote-regexp
-  "\\`/[^/:]+:\\|\\`ftp[:.]\\|\\`www\\.\\|\\`https?:"
-  "Regexp matching remote pathnames and urls which invoke remote file 
handlers.")
-
 (provide 'hpath)
 
 ;;; hpath.el ends here
diff --git a/hrmail.el b/hrmail.el
index 9216b54..cfab6d0 100644
--- a/hrmail.el
+++ b/hrmail.el
@@ -181,8 +181,7 @@ Returns t if successful, else nil."
     ;; Adjust the marker that points to the end of this message.
     (set-marker (aref rmail-message-vector (1+ rmail-current-message))
                (point))
-    (hmail:msg-narrow)
-    )
+    (hmail:msg-narrow))
   (let ((old rmail-old-text))
     ;; Update the mode line.
     (set-buffer-modified-p (buffer-modified-p))
diff --git a/hsettings.el b/hsettings.el
index 994cfaa..37a26cc 100644
--- a/hsettings.el
+++ b/hsettings.el
@@ -99,6 +99,75 @@ down a windowful."
 ;;
 ;; and Hyperbole should be loaded after this setting is made.
 
+;; Web search setttings for Hyperbole Find/Web menu.
+(require 'browse-url)
+
+(defun hyperbole-update-menus ()
+  "Rebuild all Hyperbole menus with any updated settings."
+  (hyperbole-menubar-menu)
+  (hyperbole-minibuffer-menu))
+
+(defun hyperbole-read-web-search-arguments (&optional service-name search-term)
+  "Read from the keyboard a list of (web-search-service-string 
search-term-string) if not given as arguments."
+  (let ((completion-ignore-case t))
+    (while (or (not (stringp service-name)) (equal service-name ""))
+      (setq service-name (completing-read "Search service: " 
hyperbole-web-search-alist
+                                         nil t)))
+    (while (or (not (stringp search-term)) (equal search-term ""))
+     (setq search-term (read-string (format "Search %s for: " service-name))))
+    (list service-name search-term)))
+
+(defun hyperbole-web-search (&optional service-name search-term)
+  "Search web SERVICE-NAME for SEARCH-TERM.
+Both arguments are optional and are prompted for when not given or when null.
+Uses `hyperbole-web-search-alist' to match each service to its search url.
+Uses `hyperbole-web-search-browser-function' and the `browse-url'
+package to display search results."
+  (interactive)
+  (cl-multiple-value-bind (service-name search-term)
+      (hyperbole-read-web-search-arguments service-name search-term)
+    (if (assoc service-name hyperbole-web-search-alist)
+       (let ((browse-url-browser-function
+              hyperbole-web-search-browser-function))
+         (browse-url (format (cdr (assoc service-name 
hyperbole-web-search-alist))
+                             search-term)))
+      (user-error "(Hyperbole): Invalid web search service `%s'" 
service-name))))
+
+(defcustom hyperbole-web-search-browser-function browse-url-browser-function
+  "*Function of one url argument called by any Hyperbole Find/Web search."
+  :type 'boolean
+  :group 'hyperbole-commands)
+
+(defcustom hyperbole-web-search-alist
+  '(("Amazon" . "http://www.amazon.com/s/field-keywords=%s";)
+    ("Bing" . "http://www.bing.com/search?q=%s";)
+    ;; Wikipedia Dictionary
+    ("Dictionary" . "https://en.wiktionary.org/wiki/%s";)
+    ("Elisp" . "http://www.google.com/search?q=%s+filetype:el";)
+    ;; Facebook Hashtags
+    ("Facebook" . "https://www.facebook.com/hashtag/%s";)
+    ;; To search for a Facebook user, use "https://www.facebook.com/%s";.
+    ("Google" . "http://www.google.com/search?q=%s";)
+    ("Hub(git)" . "https://github.com/search?ref=simplesearch&q=%s";)
+    ("Images" . "http://www.google.com/images?hl=en&q=%s";)
+    ("Maps" . "http://maps.google.com/maps?q=%s";)
+    ("RFCs" . "https://tools.ietf.org/html/rfc%s";)
+    ("StackOverflow" . "https://stackoverflow.com/search?q=%s";)
+    ("Twitter" . "https://twitter.com/search?q=%s";)
+    ("Wikipedia" . "https://en.wikipedia.org/wiki/%s";)
+    ("Youtube" . "https://www.youtube.com/results?search_query=%s";))
+  "*Alist of (web-service-name . url-with-%s-parameter) elements.
+The first character of each web-service-name must be unique.
+This custom option is used in the Hyperbole Find/Web menu where
+the %s in the url-with-%s-parameter is replaced with an interactively
+obtained search string."
+  :initialize 'custom-initialize-default
+  :set (lambda (_option value)
+        (setq hyperbole-web-search-alist value)
+        (hyperbole-update-menus))
+  :type '(alist :key-type string :value-type string)
+  :group 'hyperbole-commands)
+
 ;;; ************************************************************************
 ;;; GNU EMACS AND XEMACS CONFIGURATION
 ;;; ************************************************************************
diff --git a/hsmail.el b/hsmail.el
index 26ffeef..0bc6e76 100644
--- a/hsmail.el
+++ b/hsmail.el
@@ -33,23 +33,21 @@ for a comment.")
            (unless (equal (nth 2 send-mail-function) '(smail:widen))
              (error
               "(hsmail): Set 'send-mail-function' to a symbol-name, not a 
list, before load.")))
-       (setq send-mail-function
-             (list 'lambda nil '(smail:widen) (list send-mail-function))))
+       (setq send-mail-function `(lambda () (smail:widen) 
(,send-mail-function))))
   (error "(hsmail): Install an Emacs \"sendmail.el\" which includes 
'send-mail-function'."))
 
 (if (fboundp 'mail-prefix-region)
     ;;
     ;; For compatibility with rsw-modified sendmail.el.
     (defvar mail-yank-hook
-      (lambda ()
-       ;; Set off original message.
-       (mail-prefix-region (hypb:mark t) (point)))
+      ;; Set off original message.
+      (lambda () (mail-prefix-region (hypb:mark t) (point)))
       "*Hook to run mail yank preface function.
 Expects point and mark to be set to the region to preface.")
   ;;
   ;; Else for compatibility with Supercite and GNU Emacs.
   ;; If you create your own yank hook, set this variable rather than
-  ;; 'mail-yank-hook' from above.
+  ;; `mail-yank-hook' from above.
   (defvar mail-citation-hook nil
     "Hook for modifying a citation just inserted in the mail buffer.
 Each hook function can find the citation between (point) and (mark t),
@@ -96,7 +94,7 @@ message.  If not given, 'smail:comment' is evaluated by 
default."
   "Widens outgoing mail buffer to include Hyperbole button data."
   (if (fboundp 'mail+narrow) (mail+narrow) (widen)))
 
-;; Redefine this function from Emacs 19 "sendmail.el" to work with V18.
+;; Redefine this function from Emacs "sendmail.el" to work with supercite.
 (defun mail-indent-citation ()
   "Modify text just inserted from a message to be cited.
 The inserted text should be the region.
@@ -104,24 +102,25 @@ When this function returns, the region is again around 
the modified text.
 
 Normally, indent each nonblank line `mail-indentation-spaces' spaces.
 However, if `mail-yank-prefix' is non-nil, insert that prefix on each line."
-  (let ((start (point)))
-    ;; Don't ever remove headers if user uses Supercite package,
-    ;; since he can set an option in that package to do
-    ;; the removal.
-    (or (hypb:supercite-p)
-       (mail-yank-clear-headers start (hypb:mark t)))
-    (if (null mail-yank-prefix)
-       (indent-rigidly start (hypb:mark t) mail-indentation-spaces)
-      (save-excursion
-       (goto-char start)
-       (while (< (point) (hypb:mark t))
+  ;; Don't ever remove headers if user uses Supercite package,
+  ;; since he can set an option in that package to do
+  ;; the removal.
+  (unless (hypb:supercite-p)
+    (mail-yank-clear-headers (region-beginning) (region-end)))
+  (if (null mail-yank-prefix)
+      (indent-rigidly (region-beginning) (region-end)
+                     mail-indentation-spaces)
+    (save-excursion
+      (let ((end (set-marker (make-marker) (region-end))))
+       (goto-char (region-beginning))
+       (while (< (point) end)
          (insert mail-yank-prefix)
          (forward-line 1))))))
 
 ;; Redefine this function from "sendmail.el" to include Hyperbole button
 ;; data when yanking in a message and to highlight buttons if possible.
 (defun mail-yank-original (arg)
-  "Insert the message being replied to, if any.
+  "Insert the message being replied to, if any (in Rmail).
 Puts point before the text and mark after.
 Applies 'mail-citation-hook', 'mail-yank-hook' or 'mail-yank-hooks'
 to text (in decreasing order of precedence).
@@ -129,54 +128,96 @@ Just \\[universal-argument] as argument means don't apply 
hooks
 and don't delete any header fields.
 
 If supercite is in use, header fields are never deleted.
-Use (setq sc-nuke-mail-headers-p t) to have them removed."
+Use (setq sc-nuke-mail-headers 'all) to have them removed."
   (interactive "P")
-  (if mail-reply-buffer
-      (let ((start (point)) opoint)
-       (delete-windows-on mail-reply-buffer)
+  (if mail-reply-action
+      (let ((start (point))
+           (original mail-reply-action)
+           (omark (mark t))
+           opoint)
+       (and (consp original) (eq (car original) 'insert-buffer)
+            (setq original (nth 1 original)))
        (unwind-protect
            (progn
-             (with-current-buffer mail-reply-buffer
-               ;; Might be called from newsreader before any
-               ;; Hyperbole mail reader support has been autoloaded.
-               (cond ((fboundp 'rmail:msg-widen) (rmail:msg-widen))
-                     ((eq major-mode 'news-reply-mode) (widen))))
-             (setq opoint (point))
-             (insert-buffer-substring mail-reply-buffer)
-             (hmail:msg-narrow)
-             (if (fboundp 'hproperty:but-create) (hproperty:but-create))
-             (if (consp arg)
-                 nil
-               ;; Don't ever remove headers if user uses Supercite package,
-               ;; since he can set an option in that package to do
-               ;; the removal.
-               (or (hypb:supercite-p)
-                   (mail-yank-clear-headers
-                     start (marker-position (hypb:mark-marker t))))
-               (let ((mail-indentation-spaces (if arg (prefix-numeric-value 
arg)
-                                                mail-indentation-spaces)))
-                 (cond ((and (boundp 'mail-citation-hook) mail-citation-hook)
-                        (run-hooks 'mail-citation-hook))
-                       ((and (boundp 'mail-yank-hook) mail-yank-hook)
-                        (run-hooks 'mail-yank-hook))
-                       ((and (boundp 'mail-yank-hooks) mail-yank-hooks)
-                        (run-hooks 'mail-yank-hooks))
-                       (t (mail-indent-citation))))
-               (goto-char (min (point-max) (hypb:mark t)))
-               (set-mark opoint)
-               (delete-region (point)  ; Remove trailing blank lines.
-                              (progn (re-search-backward "[^ \t\n\r\f]")
-                                     (end-of-line)
-                                     (point))))
-             (or (eq major-mode 'news-reply-mode)
-                 ;; This is like exchange-point-and-mark, but doesn't activate 
the mark.
-                 ;; It is cleaner to avoid activation, even though the command
-                 ;; loop would deactivate the mark because we inserted text.
-                 (goto-char (prog1 (hypb:mark t)
-                              (set-marker (hypb:mark-marker t)
-                                          (point) (current-buffer)))))
-             (if (not (eolp)) (insert ?\n))
-             )
+             (if (consp original)
+                 (progn
+                   ;; Call yank function, and set the mark if it doesn't.
+                   (apply (car original) (cdr original))
+                   (if (eq omark (mark t))
+                       (push-mark (point))))
+               ;; If the original message is in another window in the same
+               ;; frame, delete that window to save space.
+               (delete-windows-on original t)
+               (with-current-buffer original
+                 ;; Might be called from newsreader before any
+                 ;; Hyperbole mail reader support has been autoloaded.
+                 (cond ((fboundp 'rmail:msg-widen) (rmail:msg-widen))
+                       ((eq major-mode 'news-reply-mode) (widen))))
+               (setq opoint (point))
+               (with-no-warnings
+                 ;; We really want this to set mark.
+                 (insert-buffer original)
+                 ;; If they yank the original text, the encoding of the
+                 ;; original message is a better default than
+                 ;; the default buffer-file-coding-system.
+                 (and (coding-system-equal
+                       (default-value 'buffer-file-coding-system)
+                       buffer-file-coding-system)
+                      (setq buffer-file-coding-system
+                            (coding-system-change-text-conversion
+                             buffer-file-coding-system
+                             (coding-system-base
+                              (with-current-buffer original
+                                buffer-file-coding-system))))))
+               (set-text-properties (point) (mark t) nil))
+               (hmail:msg-narrow)
+               (if (fboundp 'hproperty:but-create) (hproperty:but-create))
+               (if (consp arg)
+                   nil
+                 ;; Don't ever remove headers if user uses Supercite package,
+                 ;; since he can set an option in that package to do
+                 ;; the removal.
+                 (or (hypb:supercite-p)
+                     (mail-yank-clear-headers
+                      start (marker-position (hypb:mark-marker t))))
+                 (goto-char start)
+                 (let ((mail-indentation-spaces (if arg (prefix-numeric-value 
arg)
+                                                  mail-indentation-spaces))
+                       ;; Avoid error in Transient Mark mode
+                       ;; on account of mark's being inactive.
+                       (mark-even-if-inactive t))
+                   (cond ((and (boundp 'mail-citation-hook) mail-citation-hook)
+                          ;; Bind mail-citation-header to the inserted
+                          ;; message's header.
+                          (let ((mail-citation-header
+                                 (buffer-substring-no-properties
+                                  start
+                                  (save-excursion
+                                    (save-restriction
+                                      (narrow-to-region start (point-max))
+                                      (goto-char start)
+                                      (rfc822-goto-eoh)
+                                      (point))))))
+                            (run-hooks 'mail-citation-hook)))
+                         ((and (boundp 'mail-yank-hook) mail-yank-hook)
+                          (run-hooks 'mail-yank-hook))
+                         ((and (boundp 'mail-yank-hooks) mail-yank-hooks)
+                          (run-hooks 'mail-yank-hooks))
+                         (t (mail-indent-citation))))
+                 (goto-char (min (point-max) (hypb:mark t)))
+                 (set-mark opoint)
+                 (delete-region (point) ; Remove trailing blank lines.
+                                (progn (re-search-backward "[^ \t\n\r\f]")
+                                       (end-of-line)
+                                       (point))))
+               (unless (eq major-mode 'news-reply-mode)
+                 ;; This is like exchange-point-and-mark, but doesn't activate 
the mark.
+                 ;; It is cleaner to avoid activation, even though the command
+                 ;; loop would deactivate the mark because we inserted text.
+                 (goto-char (prog1 (hypb:mark t)
+                              (set-marker (hypb:mark-marker t)
+                                          (point) (current-buffer))))
+                 (if (not (eolp)) (insert ?\n))))
          (with-current-buffer mail-reply-buffer
            (hmail:msg-narrow))))))
 
diff --git a/hsys-org.el b/hsys-org.el
index 56d2b12..f9604db 100644
--- a/hsys-org.el
+++ b/hsys-org.el
@@ -11,8 +11,14 @@
 
 ;;; Commentary:
 ;;
-;;   This defines an implicit button type, org-link, that displays Org
-;;   mode links in a web browser.
+;;   This defines a context-sensitive implicit button type, org-mode, triggered
+;;   when the major mode is org-mode and point is anywhere other than
+;;   the end of a line.
+;;   When:
+;;     on an Org mode link - displays the link referent
+;;     on an Org mode heading - cycles through the available display
+;;       views for that heading
+;;     anywhere else - executes `org-meta-return'.
 
 ;;; Code:
 ;;; ************************************************************************
@@ -20,6 +26,7 @@
 ;;; ************************************************************************
 
 (require 'hbut)
+(require 'org)
 
 ;;; ************************************************************************
 ;;; Public Button Types
@@ -30,27 +37,23 @@
 The variable, `browse-url-browser-function', customizes the url browser that
 is used for urls.  Valid values of this variable include 
`browse-url-default-browser'
 and `browse-url-generic'."
-  (cond ((org-link-at-p)
-        (hact 'org-link nil))
-       ((org-heading-at-p)
-        (hact 'org-cycle nil))
-       ;;
-       ;; Uncomment the following only if you want this type to display
-       ;; help in org-mode even when there is no matching context.
-       ;; That can be a bit confusing.
-       ;;   (t (and (boundp 'assist-flag) assist-flag
-       ;;      (hact 'org-mode:help)))
-       ))
+  (when (eq major-mode 'org-mode)
+    (cond ((org-link-at-p)
+          (hact 'org-link nil))
+         ((org-at-heading-p)
+          (hact 'org-cycle nil))
+         (t (hact 'org-meta-return)))))
 
 (defun org-mode:help (&optional _but)
   "If on an Org mode heading, cycles through views of the whole buffer outline.
 If on an Org mode link, displays standard Hyperbole help."
-  (cond ((and (org-heading-at-p) (not (org-link-at-p)))
-        (org-global-cycle nil))
-       ;; Shows help for an Org mode link; if not on a link, this
-       ;; will not be called.
-       (t (hkey-help current-prefix-arg)))
-  t)
+  (when (eq major-mode 'org-mode)
+    (cond ((org-link-at-p)
+          (hkey-help current-prefix-arg)
+          t)
+         ((org-at-heading-p)
+          (org-global-cycle nil)
+          t))))
 
 (defact org-link (link)
   "Follows an Org mode LINK.  If LINK is nil, follows the link at point."
@@ -62,15 +65,11 @@ If on an Org mode link, displays standard Hyperbole help."
 ;;; Public functions
 ;;; ************************************************************************
 
-(defun org-heading-at-p ()
-  (require 'org)
-  (and (eq major-mode 'org-mode) (org-at-heading-p)))
-
+;; Assumes caller has already checked that the current buffer is in org-mode.
 (defun org-link-at-p ()
-  (and (eq major-mode 'org-mode)
-       (let ((face-prop (get-text-property (point) 'face)))
-        (or (eq face-prop 'org-link)
-            (and (listp face-prop) (memq 'org-link face-prop))))))
+  (let ((face-prop (get-text-property (point) 'face)))
+    (or (eq face-prop 'org-link)
+       (and (listp face-prop) (memq 'org-link face-prop)))))
 
 ;;; ************************************************************************
 ;;; Private functions
diff --git a/hsys-w3.el b/hsys-www.el
similarity index 91%
rename from hsys-w3.el
rename to hsys-www.el
index 26dedc9..7f36bf0 100644
--- a/hsys-w3.el
+++ b/hsys-www.el
@@ -1,4 +1,4 @@
-;;; hsys-w3.el ---  GNU Hyperbole support for Emacs World-Wide Web (WWW) 
browsing
+;;; hsys-www.el ---  GNU Hyperbole support for Emacs World-Wide Web (WWW) 
browsing
 ;;
 ;; Author:       Bob Weiner
 ;;
@@ -27,12 +27,10 @@
 ;;; Other required Elisp libraries
 ;;; ************************************************************************
 
+;;; This does not require any particular web browser.
 (require 'browse-url)
 (require 'hbut)
 
-;;; Does not load any particular web browser but requires a package like 'w3'
-;;; to operate properly.
-
 ;;; ************************************************************************
 ;;; Public functions and types
 ;;; ************************************************************************
@@ -51,9 +49,8 @@ Valid values of this variable include 
`browse-url-default-browser' and
 
 (defact www-url (url)
   "Follow a link given by URL.
-The variable, `browse-url-browser-function,' customizes the url browser that
-is used.
-Valid values of this variable include `browse-url-default-browser' and
+The variable, `browse-url-browser-function', customizes the url browser that
+is used.  Valid values of this variable include `browse-url-default-browser' 
and
 `browse-url-generic'."
   (interactive "sURL to follow: ")
   (or (stringp url)
@@ -113,6 +110,6 @@ Valid values of this variable include 
`browse-url-default-browser' and
               (current-buffer))
       (apply 'find-file-noselect path args))))
 
-(provide 'hsys-w3)
+(provide 'hsys-www)
 
-;;; hsys-w3.el ends here
+;;; hsys-www.el ends here
diff --git a/hui-menu.el b/hui-menu.el
index c5b73b8..930e4b8 100644
--- a/hui-menu.el
+++ b/hui-menu.el
@@ -18,38 +18,134 @@
 
 (eval-and-compile (mapc #'require '(hpath hui-jmenu hyrolo-menu browse-url 
easymenu)))
 
+
 ;;; ************************************************************************
-;;; Public functions
+;;; Private functions
 ;;; ************************************************************************
 
-;; Add Hyperbole menu to menubar.
-(defun hyperbole-menubar-menu ()
-  "Add the Hyperbole menu to the global menubar."
-  (cond ((and (boundp 'menubar-configuration)
-             (not (memq 'Hyperbole menubar-configuration)))
-        ;; Hyperbole may be included as part of the menubar but
-        ;; may be invisible due to a menubar configuration
-        ;; setting.  Make it visible here.
-        (if (fboundp 'customize-set-variable)
-            (customize-set-variable 'menubar-configuration
-                                    (cons 'Hyperbole menubar-configuration))
-          (setq menubar-configuration
-                (cons 'Hyperbole menubar-configuration)))
-        (set-menubar-dirty-flag))
-       ((not (if hyperb:emacs-p
-                 (global-key-binding [menu-bar Hyperbole])
-               (and (boundp 'current-menubar)
-                    (car (find-menu-item current-menubar '("Hyperbole"))))))
-        (let ((add-before (cond ((and (boundp 'infodock-menubar-type)
-                                      (eq infodock-menubar-type 
'menubar-infodock))
-                                 "Key")
-                                ((global-key-binding [menu-bar Koutline])
-                                 "Koutline")
-                                ((global-key-binding [menu-bar OO-Browser])
-                                 "OO-Browser"))))
-          (add-submenu nil (infodock-hyperbole-menu) add-before))))
-  ;; Force a menu-bar update.
-  (force-mode-line-update))
+(defmacro hui-menu-browser (title browser-option)
+  `(list
+    (list ,title
+         ["Chrome (Google)"
+          (setq ,browser-option #'browse-url-chrome)
+          :style radio
+          :selected (eq ,browser-option #'browse-url-chrome)]
+         ["Chromium"
+          (setq ,browser-option #'browse-url-chromium)
+          :style radio
+          :selected (eq ,browser-option #'browse-url-chromium)]
+         ["Default (System wide)"
+          (setq ,browser-option
+               (if (and (boundp 'browse-url-generic-program) (stringp 
browse-url-generic-program))
+                   #'browse-url-generic
+                 #'browse-url-default-browser))
+          :style radio
+          :selected (eq ,browser-option #'browse-url-default-browser)]
+         ["EWW (Emacs)"
+          (setq ,browser-option #'eww-browse-url)
+          :style radio
+          :selected (eq ,browser-option #'eww-browse-url)]
+         ;; Whatever browse-url-text-browser is set to, default is Lynx
+         ["Emacs Text Browser"
+          (setq ,browser-option #'browse-url-text-emacs)
+          :style radio
+          :selected (eq ,browser-option #'browse-url-text-emacs)]
+         ["Firefox"
+          (setq ,browser-option #'browse-url-firefox)
+          :style radio
+          :selected (eq ,browser-option #'browse-url-firefox)]
+         ["KDE"
+          (setq ,browser-option #'browse-url-kde)
+          :style radio
+          :selected (eq ,browser-option #'browse-url-kde)]
+         ["XTerm Text Browser"
+          (setq ,browser-option #'browse-url-text-xterm)
+          :style radio
+          :selected (eq ,browser-option #'browse-text-xterm)]
+         "----"
+         ["Toggle-URLs-in-New-Window"
+          (setq browse-url-new-window-flag (not browse-url-new-window-flag))
+          :style toggle
+          :selected browse-url-new-window-flag]
+         )))
+
+;; List explicit buttons in the current buffer for menu activation.
+(defun hui-menu-explicit-buttons (rest-of-menu)
+  (delq nil
+       (append
+        '(["Manual"   (id-info "(hyperbole)Explicit Buttons") t]
+          "----")
+        (let ((labels (ebut:list))
+              (cutoff))
+          (if labels
+              (progn
+                ;; Cutoff list if too long.
+                (if (setq cutoff (nthcdr (1- hui-menu-max-list-length) labels))
+                    (setcdr cutoff nil))
+                (delq nil
+                      (append
+                       '("----"
+                         ["Alphabetize-List"
+                          (setq hui-menu-order-explicit-buttons 
+                                (not hui-menu-order-explicit-buttons))
+                          :style toggle :selected 
hui-menu-order-explicit-buttons]
+                         "Activate:")
+                       (mapcar (lambda (label) (vector label `(ebut:act 
,label) t))
+                               (if hui-menu-order-explicit-buttons
+                                   (sort labels 'string-lessp)
+                                 labels))
+                       (if cutoff '(". . ."))
+                       '("----" "----"))))))
+        rest-of-menu)))
+
+(defun hui-menu-cutoff-list (lst)
+  "If list LST is longer than, `hui-menu-max-list-length', then cut it off 
there.
+Return t if cutoff, else nil."
+  (let ((cutoff))
+    (if (setq cutoff (nthcdr (1- hui-menu-max-list-length) lst))
+       (setcdr cutoff nil))
+    (if cutoff t)))
+
+;; List existing global buttons for menu activation.
+(defun hui-menu-global-buttons (rest-of-menu)
+  (delq nil
+       (append
+        '(["Manual" (id-info "(hyperbole)Global Buttons") t]
+          "----")
+        (let ((labels (gbut:label-list))
+              (cutoff))
+          (when labels
+            ;; Cutoff list if too long.
+            (setq cutoff (hui-menu-cutoff-list labels))
+            (delq nil (append
+                       '("----" "Activate:")
+                       (mapcar (lambda (label) (vector label `(gbut:act 
,label) t))
+                               (sort labels 'string-lessp))
+                       (if cutoff '(". . ."))
+                       '("----" "----")))))
+        rest-of-menu)))
+
+;; Dynamically compute submenus for Screen menu
+(defun hui-menu-screen (_ignored)
+  (list
+   ["Manual" (id-info "(hyperbole)HyControl") t]
+   "----"
+   ["Frames-Control"  hycontrol-frames t]
+   ["Windows-Control" hycontrol-windows t]
+   "----"
+   (hui-menu-of-buffers)
+   (hui-menu-of-frames)
+   (hui-menu-of-windows)))
+
+(defun hui-menu-web-search ()
+  ;; Pulldown menu
+  (let ((web-pulldown-menu
+        (mapcar (lambda (service)
+                  (vector service
+                          (list #'hyperbole-web-search service nil)
+                          t))
+                (mapcar 'car hyperbole-web-search-alist))))
+    web-pulldown-menu))
 
 ;;; ************************************************************************
 ;;; Public variables
@@ -69,54 +165,6 @@
             (expand-file-name "HY-ABOUT" hyperb:dir))
          t))
 
-(defconst hui-menu-url-options
-  '("Display-URLs-in"
-    "----"
-    "----"
-    ["Chrome (Google)"
-     (setq browse-url-browser-function #'browse-url-chrome)
-     :style radio
-     :selected (eq browse-url-browser-function #'browse-url-chrome)]
-    ["Chromium"
-     (setq browse-url-browser-function #'browse-url-chromium)
-     :style radio
-     :selected (eq browse-url-browser-function #'browse-url-chromium)]
-    ["Default (System wide)"
-     (setq browse-url-browser-function
-          (if (and (boundp 'browse-url-generic-program) (stringp 
browse-url-generic-program))
-              #'browse-url-generic
-            #'browse-url-default-browser))
-     :style radio
-     :selected (eq browse-url-browser-function #'browse-url-default-browser)]
-    ["EWW (Emacs)"
-     (setq browse-url-browser-function #'eww-browse-url)
-     :style radio
-     :selected (eq browse-url-browser-function #'eww-browse-url)]
-    ;; Whatever browse-url-text-browser is set to, default is Lynx
-    ["Emacs Text Browser"
-     (setq browse-url-browser-function #'browse-url-text-emacs)
-     :style radio
-     :selected (eq browse-url-browser-function #'browse-url-text-emacs)]
-    ["Firefox"
-     (setq browse-url-browser-function #'browse-url-firefox)
-     :style radio
-     :selected (eq browse-url-browser-function #'browse-url-firefox)]
-    ["KDE"
-     (setq browse-url-browser-function #'browse-url-kde)
-     :style radio
-     :selected (eq browse-url-browser-function #'browse-url-kde)]
-    ["XTerm Text Browser"
-     (setq browse-url-browser-function #'browse-url-text-xterm)
-     :style radio
-     :selected (eq browse-url-browser-function #'browse-text-xterm)]
-    "----"
-    ["Toggle-URLs-in-New-Window"
-     (setq browse-url-new-window-flag (not browse-url-new-window-flag))
-     :style toggle
-     :selected browse-url-new-window-flag]
-    )
-  "Menu of Hyperbole URL display options.")
-
 (defconst hui-menu-options
   (append '(["All-Hyperbole-Options" (customize-browse 'hyperbole) t]
             "----"
@@ -164,12 +212,14 @@
                      (mapcar (lambda (sym)
                                (vector
                                 (capitalize (symbol-name sym))
-                                `(setq hpath:display-where 'sym)
+                                `(setq hpath:display-where ',sym)
                                 :style 'radio
                                 :selected `(eq hpath:display-where ',sym)))
                              (mapcar 'car hpath:display-where-alist))))
          '("----")
-         (list hui-menu-url-options)
+         (hui-menu-browser "Display-URLs-in" browse-url-browser-function)
+         '("----")
+         (hui-menu-browser "Display-Web-Searches-in" 
hyperbole-web-search-browser-function)
          '("----")
          '(("Smart-Key-Press-at-Eol"
             "----"
@@ -204,13 +254,37 @@
            ))
   "Untitled menu of Hyperbole options.")
 
-;; Force reinitialization whenever this file is reloaded.
 (defvar infodock-hyperbole-menu nil)
 
 ;;; ************************************************************************
 ;;; Public functions
 ;;; ************************************************************************
 
+;; Add Hyperbole menu to menubar.
+(defun hyperbole-menubar-menu ()
+  "Add to or update the Hyperbole menu on the global menubar."
+  (cond ((boundp 'menubar-configuration)
+        (unless (memq 'Hyperbole menubar-configuration)
+          ;; Hyperbole may be included as part of the menubar but
+          ;; may be invisible due to a menubar configuration
+          ;; setting.  Make it visible here.
+          (if (fboundp 'customize-set-variable)
+              (customize-set-variable 'menubar-configuration
+                                      (cons 'Hyperbole menubar-configuration))
+            (setq menubar-configuration
+                  (cons 'Hyperbole menubar-configuration))))
+        (set-menubar-dirty-flag))
+       (t (let ((add-before (cond ((and (boundp 'infodock-menubar-type)
+                                        (eq infodock-menubar-type 
'menubar-infodock))
+                                   "Key")
+                                  ((global-key-binding [menu-bar Koutline])
+                                   "Koutline")
+                                  ((global-key-binding [menu-bar OO-Browser])
+                                   "OO-Browser"))))
+            (add-submenu nil (infodock-hyperbole-menu t) add-before))))
+  ;; Force a menu-bar update.
+  (force-mode-line-update))
+
 (defun hyperbole-popup-menu ()
   "Popup the Hyperbole menubar menu."
   (interactive)
@@ -218,171 +292,177 @@
 
 ;;; Don't change this name; doing so will break the way InfoDock
 ;;; initializes the Hyperbole menu.
-(defun infodock-hyperbole-menu ()
-  "Hyperbole menu for the global InfoDock menubar"
-  (or infodock-hyperbole-menu
-      (setq infodock-hyperbole-menu
-           (delq nil
-                 (list
-                  (if (featurep 'xemacs) "%_Hyperbole" "Hyperbole")
-                  :config 'Hyperbole
-                  hui-menu-about
-                  ["Demonstration"  (hypb:display-file-with-logo
-                                      (expand-file-name "DEMO" hyperb:dir)) t]
-                  ;; Comment InfoDock manual reference out until
-                  ;; InfoDock is modernized for Emacs 25.
-                  ;; (if (and (boundp 'infodock-version) infodock-version)
-                  ;;     ["Manual"      (id-info "(infodock)Hyperbole Menu") t]
-                  ;;   ["Manual"      (id-info "(hyperbole)Top") t])
+(defun infodock-hyperbole-menu (&optional rebuild-flag)
+  "Return the Hyperbole menu for the global InfoDock menubar.
+Uses any non-nil existing value of the menu unless optional
+REBUILD-FLAG is non-nil, in which case the menu is rebuilt."
+  (when (or rebuild-flag (null infodock-hyperbole-menu))
+    (setq infodock-hyperbole-menu
+         (delq nil
+               (list
+                (if (featurep 'xemacs) "%_Hyperbole" "Hyperbole")
+                :config 'Hyperbole
+                hui-menu-about
+                ["Demonstration"  (hypb:display-file-with-logo
+                                   (expand-file-name "DEMO" hyperb:dir)) t]
+                ;; Comment InfoDock manual reference out until
+                ;; InfoDock is modernized for Emacs 25.
+                ;; (if (and (boundp 'infodock-version) infodock-version)
+                ;;     ["Manual"      (id-info "(infodock)Hyperbole Menu") t]
+                ;;   ["Manual"      (id-info "(hyperbole)Top") t])
+                ["Manual"      (id-info "(hyperbole)Top") t]
+                ["What-is-New?"  (hypb:display-file-with-logo
+                                  (expand-file-name "HY-NEWS" hyperb:dir)) t]
+                "----"
+                ["Remove-This-Menu"
+                 (progn
+                   ;; Delete Hyperbole menu from all menubars.
+                   (hui-menu-remove Hyperbole)
+                   ;;
+                   ;; Remove Hyperbole button comment from future
+                   ;; outgoing mail.
+                   (if (boundp 'smail:comment) (setq smail:comment nil)))
+                 t]
+                "----"
+                ["Activate-Button-at-Point" hui:hbut-current-act
+                 (hbut:is-p (hbut:at-p))]
+                ["Back-to-Prior-Location" (hhist:remove current-prefix-arg)
+                 (and (boundp '*hhist*) *hhist*)]
+                '("Button-File"
+                  ["Manual"  (id-info "(hyperbole)Button Files") t]
+                  "----"
+                  ["Edit-Per-Directory-File" (find-file hbmap:filename) t]
+                  ["Edit-Personal-File" (find-file
+                                         (expand-file-name
+                                          hbmap:filename hbmap:dir-user)) t]
+                  )
+                (cons "Customize" hui-menu-options)
+                '("Documentation"
                   ["Manual"      (id-info "(hyperbole)Top") t]
-                  ["What-is-New?"  (hypb:display-file-with-logo
-                                     (expand-file-name "HY-NEWS" hyperb:dir)) 
t]
                   "----"
-                  ["Remove-This-Menu"
-                    (progn
-                      ;; Delete Hyperbole menu from all menubars.
-                      (hui-menu-remove Hyperbole)
-                      ;;
-                      ;; Remove Hyperbole button comment from future
-                      ;; outgoing mail.
-                      (if (boundp 'smail:comment) (setq smail:comment nil)))
-                    t]
+                  ["Demonstration"  (hypb:display-file-with-logo
+                                     (expand-file-name "DEMO" hyperb:dir)) t]
+                  ["Glossary"    (id-info "(hyperbole)Glossary") t]
+                  ["Manifest"    (find-file-read-only
+                                  (expand-file-name "MANIFEST" hyperb:dir)) t]
+                  ["Smart-Key-Summary" (id-browse-file (hypb:hkey-help-file)) 
t]
+                  ("Types"
+                   ["Action-Types-Manual"
+                    (id-info "(hyperbole)Action Types") t]
+                   ["Implicit-Button-Types-Manual"
+                    (id-info "(hyperbole)Implicit Buttons") t]
+                   "----"
+                   ["Show-Action-Types"
+                    (hui:htype-help-current-window 'actypes) t]
+                   ["Show-Implicit-Button-Types"
+                    (hui:htype-help-current-window 'ibtypes 'no-sort) t]
+                   ))
+                '("Explicit-Button"
+                  :filter hui-menu-explicit-buttons
+                  ["Activate" hui:hbut-act t]
+                  ["Create" hui:ebut-create t]
+                  ["Delete" hui:ebut-delete t]
+                  ["Edit"   hui:ebut-modify t]
+                  ("Help"  
+                   ["Manual"   (id-info "(hyperbole)Location") t]
+                   "----"
+                   ["Buffer-Buttons"   (hui:hbut-report -1) t]
+                   ["Current-Button"   (hui:hbut-report)    t]
+                   ["Ordered-Buttons"  (hui:hbut-report 1)  t]
+                   )
+                  ["Modify" hui:ebut-modify t]
+                  ["Rename" hui:ebut-rename t]
+                  ["Search" hui:ebut-search t]
+                  ["Types"
+                   (hui:htype-help-current-window 'actypes) t]
+                  )
+                (nconc
+                 '("Find"
+                   ["Manual"   (id-info-item "menu, Find") t]
+                   "----"
+                   ;; Show numbered line matches in all specified files.
+                   ["Grep-Files"           hypb:rgrep t]
+                   ;; Show numbered line matches for regexp in all file-based 
buffers.
+                   ["Locate-Files"         locate t]
+                   ;; Show numbered line matches for regexp in all file-based 
buffers.
+                   ["Match-File-Buffers"   moccur t]
+                   ;; Show numbered line matches for regexp from this buffer.
+                   ["Occur-Here"           occur  t]
+                   ;; Following point, remove all lines that match regexp.
+                   ["Remove-Lines-Here"    hypb:remove-lines t]
+                   ;; Following point, keep only lines that match regexp.
+                   ["Save-Lines-Here"      hypb:save-lines t]
+                   "----"
+                   "Web-Search:")
+                 (hui-menu-web-search)
+                 )
+                '("Global-Button"
+                  :filter hui-menu-global-buttons
+                  ["Create" hui:gbut-create t]
+                  ["Edit"   hui:gbut-modify t]
+                  ["Help"   gbut:help t]
+                  ["Modify" hui:gbut-modify t]
+                  )
+                '("Implicit-Button"
+                  ["Manual"   (id-info "(hyperbole)Implicit Buttons") t]
                   "----"
-                  ["Activate-Button-at-Point" hui:hbut-current-act
-                    (hbut:is-p (hbut:at-p))]
-                  ["Back-to-Prior-Location" (hhist:remove current-prefix-arg)
-                    (and (boundp '*hhist*) *hhist*)]
-                  '("Button-File"
-                    ["Manual"  (id-info "(hyperbole)Button Files") t]
-                    "----"
-                    ["Edit-Per-Directory-File" (find-file hbmap:filename) t]
-                    ["Edit-Personal-File" (find-file
-                                           (expand-file-name
-                                            hbmap:filename hbmap:dir-user)) t]
-                    )
-                  (cons "Customize" hui-menu-options)
-                  '("Documentation"
-                    ["Manual"      (id-info "(hyperbole)Top") t]
-                    "----"
-                    ["Demonstration"  (hypb:display-file-with-logo
-                                       (expand-file-name "DEMO" hyperb:dir)) t]
-                    ["Glossary"    (id-info "(hyperbole)Glossary") t]
-                    ["Manifest"    (find-file-read-only
-                                    (expand-file-name "MANIFEST" hyperb:dir)) 
t]
-                    ["Smart-Key-Summary" (id-browse-file 
(hypb:hkey-help-file)) t]
-                    ("Types"
-                     ["Action-Types-Manual"
-                      (id-info "(hyperbole)Action Types") t]
-                     ["Implicit-Button-Types-Manual"
-                      (id-info "(hyperbole)Implicit Buttons") t]
-                     "----"
-                     ["Show-Action-Types"
-                      (hui:htype-help-current-window 'actypes) t]
-                     ["Show-Implicit-Button-Types"
-                      (hui:htype-help-current-window 'ibtypes 'no-sort) t]
-                     ))
-                  '("Explicit-Button"
-                    :filter hui-menu-explicit-buttons
-                    ["Activate" hui:hbut-act t]
-                    ["Create" hui:ebut-create t]
-                    ["Delete" hui:ebut-delete t]
-                    ["Edit"   hui:ebut-modify t]
-                    ("Help"  
-                     ["Manual"   (id-info "(hyperbole)Location") t]
-                     "----"
-                     ["Buffer-Buttons"   (hui:hbut-report -1) t]
-                     ["Current-Button"   (hui:hbut-report)    t]
-                     ["Ordered-Buttons"  (hui:hbut-report 1)  t]
-                     )
-                    ["Modify" hui:ebut-modify t]
-                    ["Rename" hui:ebut-rename t]
-                    ["Search" hui:ebut-search t]
-                    ["Types"
-                      (hui:htype-help-current-window 'actypes) t]
-                    )
-                  '("Find"
-                    ["Manual"   (id-info-item "menu, Find") t]
-                    "----"
-                    ;; Show numbered line matches in all specified files.
-                    ["Grep-Files"           hypb:rgrep t]
-                    ;; Show numbered line matches for regexp in all file-based 
buffers.
-                    ["Locate-Files"         locate t]
-                    ;; Show numbered line matches for regexp in all file-based 
buffers.
-                    ["Match-File-Buffers"   moccur t]
-                    ;; Show numbered line matches for regexp from this buffer.
-                    ["Occur-Here"           occur  t]
-                    ;; Following point, remove all lines that match regexp.
-                    ["Remove-Lines-Here"    hypb:remove-lines t]
-                    ;; Following point, keep only lines that match regexp.
-                    ["Save-Lines-Here"      hypb:save-lines t]
-                    )
-                  '("Global-Button"
-                    :filter hui-menu-global-buttons
-                    ["Create" hui:gbut-create t]
-                    ["Edit"   hui:gbut-modify t]
-                    ["Help"   gbut:help t]
-                    ["Modify" hui:gbut-modify t]
-                    )
-                  '("Implicit-Button"
-                    ["Manual"   (id-info "(hyperbole)Implicit Buttons") t]
-                    "----"
-                    ["Activate-at-Point"    hui:hbut-current-act t]
-                    ["Delete-Type"         (hui:htype-delete 'ibtypes) t]
-                    ["Help"   hui:hbut-help t]
-                    ["Types"  (hui:htype-help 'ibtypes 'no-sort) t]
-                    )
-                  (if hyperb:kotl-p
-                      '("Koutliner"
-                        ["Manual" (id-info "(hyperbole)Koutliner") t]
-                        ["Example"   kotl-mode:example                 t]
-                        "----"
-                        ["Create-File"    kfile:find t]
-                        ["View-File"      kfile:view t]
-                        "----"
-                        ["Collapse-Tree" (progn (kotl-mode:is-p)
-                                                (kotl-mode:hide-tree
-                                                 (kcell-view:label)))
-                         (eq major-mode 'kotl-mode)]
-                        ["Create-Link" klink:create
-                         (eq major-mode 'kotl-mode)]
-                        ["Expand-All-Trees" kotl-mode:show-all
-                         (eq major-mode 'kotl-mode)]
-                        ["Expand-Tree" (progn (kotl-mode:is-p)
-                                              (kotl-mode:show-tree
+                  ["Activate-at-Point"    hui:hbut-current-act t]
+                  ["Delete-Type"         (hui:htype-delete 'ibtypes) t]
+                  ["Help"   hui:hbut-help t]
+                  ["Types"  (hui:htype-help 'ibtypes 'no-sort) t]
+                  )
+                (if hyperb:kotl-p
+                    '("Koutliner"
+                      ["Manual" (id-info "(hyperbole)Koutliner") t]
+                      ["Example"   kotl-mode:example                 t]
+                      "----"
+                      ["Create-File"    kfile:find t]
+                      ["View-File"      kfile:view t]
+                      "----"
+                      ["Collapse-Tree" (progn (kotl-mode:is-p)
+                                              (kotl-mode:hide-tree
                                                (kcell-view:label)))
-                         (eq major-mode 'kotl-mode)]
-                        ["Show-Top-Level-Only" kotl-mode:hide-body
-                         (eq major-mode 'kotl-mode)]
-                        ))
-                  '("Mail-Lists"
-                    ["Manual" (id-info "(hyperbole)Suggestion or Bug 
Reporting")
-                     t]
-                    "----"
-                    ["Mail-to-Hyperbole-Users-List"
-                     (hmail:compose "address@hidden" '(hact 'hyp-config)) t]
-                    ["Mail-to-Hyperbole-Bug-Report-List"
-                     (hmail:compose "address@hidden" '(hact 'hyp-config)) t]
-                    "----"
-                    ["Join-Hyperbole-Users-List"
-                     (hmail:compose "address@hidden" nil
-                                    "Just send the message; subject and body 
are ignored.") t]
-                    ["Join-Hyperbole-Bug-Report-List"
-                     (hmail:compose "address@hidden" nil
-                                    "Just send the message; subject and body 
are ignored.") t]
-                    "----"
-                    ["Leave-Hyperbole-Users-List"
-                     (hmail:compose "address@hidden" nil
-                                    "Just send the message; subject and body 
are ignored.") t]
-                    ["Leave-Hyperbole-Bug-Report-List"
-                     (hmail:compose "address@hidden" nil
-                                    "Just send the message; subject and body 
are ignored.") t]
-                    )
-                  infodock-hyrolo-menu
-                  '("Screen (HyControl)" :filter hui-menu-screen)
-                  hui-menu-hywconfig)))))
+                       (eq major-mode 'kotl-mode)]
+                      ["Create-Link" klink:create
+                       (eq major-mode 'kotl-mode)]
+                      ["Expand-All-Trees" kotl-mode:show-all
+                       (eq major-mode 'kotl-mode)]
+                      ["Expand-Tree" (progn (kotl-mode:is-p)
+                                            (kotl-mode:show-tree
+                                             (kcell-view:label)))
+                       (eq major-mode 'kotl-mode)]
+                      ["Show-Top-Level-Only" kotl-mode:hide-body
+                       (eq major-mode 'kotl-mode)]
+                      ))
+                '("Mail-Lists"
+                  ["Manual" (id-info "(hyperbole)Suggestion or Bug Reporting")
+                   t]
+                  "----"
+                  ["Mail-to-Hyperbole-Users-List"
+                   (hmail:compose "address@hidden" '(hact 'hyp-config)) t]
+                  ["Mail-to-Hyperbole-Bug-Report-List"
+                   (hmail:compose "address@hidden" '(hact 'hyp-config)) t]
+                  "----"
+                  ["Join-Hyperbole-Users-List"
+                   (hmail:compose "address@hidden" nil
+                                  "Just send the message; subject and body are 
ignored.") t]
+                  ["Join-Hyperbole-Bug-Report-List"
+                   (hmail:compose "address@hidden" nil
+                                  "Just send the message; subject and body are 
ignored.") t]
+                  "----"
+                  ["Leave-Hyperbole-Users-List"
+                   (hmail:compose "address@hidden" nil
+                                  "Just send the message; subject and body are 
ignored.") t]
+                  ["Leave-Hyperbole-Bug-Report-List"
+                   (hmail:compose "address@hidden" nil
+                                  "Just send the message; subject and body are 
ignored.") t]
+                  )
+                infodock-hyrolo-menu
+                '("Screen (HyControl)" :filter hui-menu-screen)
+                hui-menu-hywconfig)))))
 
 ;;; ************************************************************************
-;;; Private functions
+;;; Private variables
 ;;; ************************************************************************
 
 (defvar hui-menu-max-list-length 24
@@ -393,78 +473,6 @@
 Otherwise, explicit buttons are listed in their order of appearance within
 the current buffer.")
 
-;; List explicit buttons in the current buffer for menu activation.
-(defun hui-menu-explicit-buttons (rest-of-menu)
-  (delq nil
-       (append
-        '(["Manual"   (id-info "(hyperbole)Explicit Buttons") t]
-          "----")
-        (let ((labels (ebut:list))
-              (cutoff))
-          (if labels
-              (progn
-                ;; Cutoff list if too long.
-                (if (setq cutoff (nthcdr (1- hui-menu-max-list-length) labels))
-                    (setcdr cutoff nil))
-                (delq nil
-                      (append
-                       '("----"
-                         ["Alphabetize-List"
-                          (setq hui-menu-order-explicit-buttons 
-                                (not hui-menu-order-explicit-buttons))
-                          :style toggle :selected 
hui-menu-order-explicit-buttons]
-                         "Activate:")
-                       (mapcar (lambda (label) (vector label `(ebut:act 
,label) t))
-                               (if hui-menu-order-explicit-buttons
-                                   (sort labels 'string-lessp)
-                                 labels))
-                       (if cutoff '(". . ."))
-                       '("----" "----"))))))
-        rest-of-menu)))
-
-(defun hui-menu-cutoff-list (lst)
-  "If list LST is longer than, `hui-menu-max-list-length', then cut it off 
there.
-Return t if cutoff, else nil."
-  (let ((cutoff))
-    (if (setq cutoff (nthcdr (1- hui-menu-max-list-length) lst))
-       (setcdr cutoff nil))
-    (if cutoff t)))
-
-;; List existing global buttons for menu activation.
-(defun hui-menu-global-buttons (rest-of-menu)
-  (delq nil
-       (append
-        '(["Manual" (id-info "(hyperbole)Global Buttons") t]
-          "----")
-        (let ((labels (gbut:label-list))
-              (cutoff))
-          (when labels
-            ;; Cutoff list if too long.
-            (setq cutoff (hui-menu-cutoff-list labels))
-            (delq nil (append
-                       '("----" "Activate:")
-                       (mapcar (lambda (label) (vector label `(gbut:act 
,label) t))
-                               (sort labels 'string-lessp))
-                       (if cutoff '(". . ."))
-                       '("----" "----")))))
-        rest-of-menu)))
-
-;; Dynamically compute submenus for Screen menu
-(defun hui-menu-screen (_ignored)
-  (list
-   ["Manual" (id-info "(hyperbole)HyControl") t]
-   "----"
-   ["Frames-Control"  hycontrol-frames t]
-   ["Windows-Control" hycontrol-windows t]
-   "----"
-   (hui-menu-of-buffers)
-   (hui-menu-of-frames)
-   (hui-menu-of-windows)))
-
-;;; ************************************************************************
-;;; Private variables
-;;; ************************************************************************
-
 (provide 'hui-menu)
 
 ;;; hui-menu.el ends here
diff --git a/hui-mini.el b/hui-mini.el
index 1d0d550..7d2e120 100644
--- a/hui-mini.el
+++ b/hui-mini.el
@@ -37,301 +37,6 @@
 
 (defvar hui:menus nil
   "Hyperbole minibuffer command menus.")
-(setq
- hui:menus
- (delq nil
- (list (cons
-       'hyperbole
-       (append
-        (let ((version (if (= (aref hyperb:version 0) ?0)
-                           (substring hyperb:version 1)
-                         hyperb:version)))
-          (list (list (concat "Hy" version ">"))))
-        (delq nil
-              (list
-               '("Act"         hui:hbut-act
-                 "Activates button at point or prompts for explicit button.")
-               '("Butfile/"    (menu . butfile)
-                 "Quick access button files menus.")
-               '("Cust/"       (menu . cust)
-                 "Customizes Hyperbole by setting major options.")
-               '("Doc/"        (menu . doc)
-                 "Quick access to Hyperbole documentation.")
-               '("Ebut/"       (menu . ebut)
-                 "Explicit button commands.")
-               '("Find/"       (menu . find)
-                 "Find matching line commands.")
-               '("Gbut/"       (menu . gbut)
-                 "Global button commands.")
-               '("Hist"        (hhist:remove current-prefix-arg)
-                 "Jumps back to location prior to last Hyperbole button 
follow.")
-               '("Ibut/"       (menu . ibut)
-                 "Implicit button and button type commands.")
-               (if hyperb:kotl-p
-                   '("Kotl/"   (menu . otl)
-                     "Autonumbered outlining and hyperlink capabilities."))
-               '("Msg/"        (menu . msg)
-                 "Mail and News messaging capabilities.")
-               '("Rolo/"       (menu . hyrolo)
-                 "Hierarchical, multi-file rolo lookup and edit commands.")
-               '("Screen/"     (menu . screen)
-                 "Screen display management commands.")
-               '("Win/"        (menu . win)
-                 "Window configuration management commands.")
-               ))))
-       '(butfile .
-        (("Butfile>")
-         ("DirFile"      (find-file hbmap:filename)
-          "Edits directory-specific button file.")
-         ("Info"
-          (id-info "(hyperbole)Button Files")
-          "Displays manual section on button files.") 
-         ("PersonalFile" (find-file
-                           (expand-file-name hbmap:filename hbmap:dir-user))
-          "Edits user-specific button file.")
-         ))
-       '(cust .
-         (("Cust>")
-         ("All-Options" (customize-browse 'hyperbole)
-          "Display tree of Hyperbole customizable options by group.")
-         ("Debug-Toggle" hkey-toggle-debug
-          "Toggle display of Smart Key context after each press, for 
debugging.")
-         ("Find-File-URLs" hpath:find-file-urls-mode
-          "Toggle find-file support for ftp and www URLs.")
-         ("Isearch-Invisible" hypb:toggle-isearch-invisible
-          "Toggle whether isearch searches invisible text or not.")
-         ("KeyBindings/" (menu . cust-keys) "Rebinds global Hyperbole keys.")
-         ("Msg-Toggle-Ebuts" hyperbole-toggle-messaging
-          "Toggle Hyperbole support for explicit buttons in mail and news 
buffers.")
-         ("Override-Local-Keys" hkey-toggle-override-local-bindings
-          "Toggle whether conflicting local key bindings are overridden by 
Hyperbole.")
-         ("Referents/" (menu . cust-referents)
-          "Sets where Hyperbole button referents are displayed.")
-         ("Smart-Key-at-Eol/" (menu . cust-eol)
-          "Sets how scrolling via end of line presses works.")
-         ("Toggle-Rolo-Dates" hyrolo-toggle-datestamps
-          "Toggle whether date stamps are updated when rolo entries are 
edited.")
-         ("URL-Display/" (menu . cust-urls) "Sets where URLs are displayed.")))
-       '(cust-eol .
-         (("Smart Key press at eol scrolls>")
-         ("Proportionally" (setq smart-scroll-proportional t))
-         ("Windowful"      (setq smart-scroll-proportional nil))))
-       '(cust-keys .
-         (("Change Keys>")
-         ("ActionKey"   (hui:bind-key #'hkey-either))            ;; {M-RET}
-         ("ButRename"   (hui:bind-key #'hui:ebut-rename))        ;; {C-c C-r}
-         ("DragKey"     (hui:bind-key #'hkey-operate))           ;; {M-o}
-         ("HypbMenu"    (hui:bind-key #'hyperbole))              ;; {C-h h}
-         ("MarkThing"   (hui:bind-key #'hui-select-thing))       ;; {C-c RET}
-         ("SmartHelp"   (hui:bind-key #'hkey-help))              ;; {C-h A}
-         ("WinControl"  (hui:bind-key #'hycontrol-windows))      ;; {C-c \}
-         )) 
-       '(cust-referents .
-         (("Ref display>")
-         ("Any-Frame" (setq hpath:display-where 'other-frame))
-         ("Current-Win" (setq hpath:display-where 'this-window))
-         ("Diff-Frame-One-Win"
-          (setq hpath:display-where 'other-frame-one-window))
-         ("New-Frame" (setq hpath:display-where 'new-frame))
-         ("Other-Win" (setq hpath:display-where 'other-window))
-         ("Single-Win" (setq hpath:display-where 'one-window))))
-       '(cust-urls .
-         (("URL display>")
-         ("Chrome" (setq browse-url-browser-function #'browse-url-chrome))
-         ("Default" (setq browse-url-browser-function
-                          (if (and (boundp 'browse-url-generic-program) 
(stringp browse-url-generic-program))
-                              #'browse-url-generic
-                            #'browse-url-default-browser)))
-         ("EWW" (setq browse-url-browser-function #'eww-browse-url))
-         ("Firefox" (setq browse-url-browser-function #'browse-url-firefox))
-         ("KDE" (setq browse-url-browser-function #'browse-url-kde))
-         ("XTerm" (setq browse-url-browser-function #'browse-url-text-xterm))
-         ))
-       '(doc .
-        (("Doc>")
-         ("About"        (hypb:display-file-with-logo
-                          (expand-file-name "HY-ABOUT" hyperb:dir))
-          "Overview of Hyperbole.")
-         ("Demo"         (hypb:display-file-with-logo
-                           (expand-file-name "DEMO" hyperb:dir))
-          "Demonstrates Hyperbole features.")
-         ("Files"        (find-file-read-only
-                           (expand-file-name "MANIFEST" hyperb:dir))
-          "Summarizes Hyperbole system files.  Click on an entry to view it.")
-         ("Glossary"
-          (id-info "(hyperbole)Glossary")
-          "Glossary of Hyperbole terms.")
-         ("Info"         (id-info "(hyperbole)Top")
-          "Online Info version of Hyperbole manual.")
-         ("New"          (hypb:display-file-with-logo
-                          (expand-file-name "HY-NEWS" hyperb:dir))
-          "Recent changes to Hyperbole.")
-         ("SmartKeys"    (find-file-read-only (hypb:hkey-help-file))
-          "Summarizes Smart Key mouse or keyboard handling.")
-         ("Types/"       (menu . types)
-          "Provides documentation on Hyperbole types.")
-        ))
-       '(ebut .
-        (("EButton>")
-         ("Act"    hui:hbut-act
-           "Activates button at point or prompts for explicit button.")
-         ("Create" hui:ebut-create)
-         ("Delete" hui:ebut-delete)
-         ("Edit"   hui:ebut-modify "Modifies any desired button attributes.")
-         ("Help/"  (menu . ebut-help) "Summarizes button attributes.")
-         ("Info"
-          (id-info "(hyperbole)Explicit Buttons")
-          "Displays manual section on explicit buttons.")
-         ("Modify" hui:ebut-modify "Modifies any desired button attributes.")
-         ("Rename" hui:ebut-rename "Relabels an explicit button.")
-         ("Search" hui:ebut-search
-          "Locates and displays personally created buttons in context.")
-         ("Types"  (hui:htype-help-current-window 'actypes)
-          "Displays documentation for one or all action types used by explicit 
buttons.")
-         ))
-       '(ebut-help .
-        (("Help on>")
-         ("BufferButs"   (hui:hbut-report -1)
-          "Summarizes all explicit buttons in buffer.")
-         ("CurrentBut"   (hui:hbut-report)
-          "Summarizes only current button in buffer.")
-         ("OrderedButs"  (hui:hbut-report 1)
-          "Summarizes explicit buttons in lexicographically order.")
-         ))
-       '(find .
-         (("Find>")
-         ("GrepFiles"           hypb:rgrep  "Show numbered line matches in all 
specified files.")
-         ("LocateFiles"         hypb:locate "Locate matching file names 
anywhere across a system.")
-         ("MatchFileBuffers"    moccur      "Show numbered line matches for 
regexp in all file-based buffers.")
-         ("OccurHere"           occur       "Show numbered line matches for 
regexp from this buffer.")
-         ("RemoveLines"         hypb:remove-lines "Following point, remove all 
lines that match regexp.")
-         ("SaveLines"           hypb:save-lines  "Following point, keep only 
lines that match regexp.")
-         ))
-       '(gbut .
-        (("GButton>")
-         ("Act"    gbut:act        "Activates global button by name.") 
-         ("Create" hui:gbut-create "Adds a global button to gbut:file.")
-         ("Edit"   hui:gbut-modify "Modifies global button attributes.")
-         ("Help"   gbut:help       "Reports on a global button by name.") 
-         ("Info"   (id-info "(hyperbole)Global Buttons")
-          "Displays manual section on global buttons.")
-         ("Modify" hui:gbut-modify "Modifies global button attributes.")
-         ))
-       '(ibut .
-        (("IButton>")
-         ("Act"    hui:hbut-current-act  "Activates implicit button at 
point.") 
-         ("DeleteIButType"   (hui:htype-delete 'ibtypes)
-          "Deletes specified button type.")
-         ("Help"   hui:hbut-help   "Reports on button's attributes.")
-         ("Info"   (id-info "(hyperbole)Implicit Buttons")
-          "Displays manual section on implicit buttons.")
-         ("Types"  (hui:htype-help 'ibtypes 'no-sort)
-          "Displays documentation for one or all implicit button types.")
-         ))
-       '(msg .
-        (("Msg>")
-         ("Compose-Hypb-Mail"
-          (hmail:compose "address@hidden" '(hact 'hyp-config))
-          "Send a message to the Hyperbole discussion list.")
-         ("Join-Hypb-List"
-          (hmail:compose "address@hidden" nil
-                         "Just send the message; subject and body are 
ignored.")
-          "Subscribe to the Hyperbole discussion list.")
-         ("Leave-Hypb-List"
-          (hmail:compose "address@hidden" nil
-                         "Just send the message; subject and body are 
ignored.")
-          "Unsubscribe from the Hyperbole discussion list.")
-         ("Report-Hypb-Bug"
-          (hmail:compose "address@hidden" '(hact 'hyp-config))
-          "Send a message to the Hyperbole bug reporting list.")
-         ("Subscribe-Hypb-Bug"
-          (hmail:compose "address@hidden" nil
-                         "Just send the message; subject and body are 
ignored.")
-          "Subscribe to the Hyperbole bug reporting list.")
-         ("Unsub-Hypb-Bug"
-          (hmail:compose "address@hidden" nil
-                         "Just send the message; subject and body are 
ignored.")
-          "Unsubscribe from the Hyperbole bug reporting list.")
-         ))
-       (if hyperb:kotl-p
-          '(otl
-            . (("Kotl>")
-               ("All"       kotl-mode:show-all "Expand all collapsed cells.") 
-               ("Blanks"    kvspec:toggle-blank-lines
-                "Toggle blank lines between cells on or off.")
-               ("Create"    kfile:find   "Create or edit an outline file.")
-               ("Downto"    kotl-mode:hide-sublevels
-                "Hide all cells in outline deeper than a particular level.")
-               ("Examp"     kotl-mode:example
-                "Display a self-descriptive example outline file.")
-               ("Hide"      (progn (kotl-mode:is-p)
-                                   (kotl-mode:hide-tree (kcell-view:label)))
-                "Collapse tree rooted at point.")
-               ("Info"
-                (id-info "(hyperbole)Koutliner")
-                "Display manual section on Hyperbole Koutliner.")
-               ("Kill"      kotl-mode:kill-tree
-                "Kill ARG following trees starting from point.")
-               ("Link"      klink:create
-                "Create and insert an implicit link at point.")
-               ("Overvw"  kotl-mode:overview
-                "Show first line of each cell.")
-               ("Show"      (progn (kotl-mode:is-p)
-                                   (kotl-mode:show-tree (kcell-view:label)))
-                "Expand tree rooted at point.")
-               ("Top"       kotl-mode:top-cells
-                "Hide all but top-level cells.") 
-               ("Vspec"     kvspec:activate
-                "Prompt for and activate a view specifiction.")
-               )))
-       '(hyrolo .
-        (("Rolo>")
-         ("Add"              hyrolo-add          "Add a new rolo entry.")
-         ("Display"          hyrolo-display-matches
-          "Display last found rolo matches again.")
-         ("Edit"             hyrolo-edit   "Edit an existing rolo entry.")
-         ("Info"             (id-info "(hyperbole)HyRolo")
-          "Displays manual section on Hyperbole rolo.")
-         ("Kill"             hyrolo-kill   "Kill an existing rolo entry.")
-         ("Mail"             hyrolo-mail-to "Mail to address following point.")
-         ("Order"            hyrolo-sort   "Order rolo entries in a file.")
-         ("RegexFind"        hyrolo-grep   "Find entries containing a regexp.")
-         ("StringFind"       hyrolo-fgrep  "Find entries containing a string.")
-         ("WordFind"         hyrolo-word   "Find entries containing words.")
-         ("Yank"             hyrolo-yank
-          "Find an entry containing a string and insert it at point.")
-         ))
-       '(screen .
-        (("Screen>")
-         ("FramesControl"    hycontrol-frames
-          "Interactively delete, jump to, move, replicate, and resize frames.")
-         ("WindowsControl"   hycontrol-windows
-          "Interactively delete, jump to, rebalance, resize, and split 
windows.")))
-       '(types .
-        (("Types>")
-         ("ActionTypes"      (hui:htype-help-current-window 'actypes)
-          "Displays documentation for one or all action types.")
-         ("IButTypes"        (hui:htype-help-current-window 'ibtypes 'no-sort)
-          "Displays documentation for one or all implicit button types.")
-         ))
-       '(win .
-        (("WinConfig>")
-         ("AddName"        hywconfig-add-by-name
-          "Name current window configuration.")
-         ("DeleteName"     hywconfig-delete-by-name
-          "Delete named window configuration.")
-         ("RestoreName"    hywconfig-restore-by-name
-          "Restore frame to window configuration given by name.")
-         ("PopRing"        (progn (hywconfig-delete-pop)
-                                  (hyperbole 'win))
-          "Restores window configuration from ring and removes it from ring.")
-         ("SaveRing"       (hywconfig-ring-save)
-          "Saves current window configuration to ring.")
-         ("YankRing"       (progn (call-interactively 'hywconfig-yank-pop)
-                                  (hyperbole 'win))
-          "Restores next window configuration from ring.")
-         ))
-       )))
 
 ;;; ************************************************************************
 ;;; Public functions
@@ -635,6 +340,22 @@ constructs.  If not given, the top-level Hyperbole menu is 
used."
        (concat menu-prompt (mapconcat 'car (cdr menu-alist) " "))
       menu-line)))
 
+(defun hui:menu-web-search ()
+  (let ((web-mini-menu
+        (cons 'web
+              (cons '("Web>")
+                    (mapcar (lambda (service)
+                              (list service
+                                    (list #'hyperbole-web-search service)
+                                    (format "Search %s" service)))
+                            (mapcar 'car hyperbole-web-search-alist))))))
+    web-mini-menu))
+
+(defun hui-search-web ()
+  "Prompt for a web search engine and search term and then perform the search."
+  (interactive)
+  (hyperbole 'web))
+
 ;;; ************************************************************************
 ;;; Private variables
 ;;; ************************************************************************
@@ -642,30 +363,350 @@ constructs.  If not given, the top-level Hyperbole menu 
is used."
 ;; Hyperbole menu mode is suitable only for specially formatted data.
 (put 'hui:menu-mode 'mode-class 'special)
 
-(defvar hui:menu-mode-map nil
-  "Keymap containing Hyperbole minibuffer menu commands.")
-(if hui:menu-mode-map
-    nil
-  (setq hui:menu-mode-map (make-keymap))
-  (suppress-keymap hui:menu-mode-map)
-  (define-key hui:menu-mode-map hui:menu-quit   #'hui:menu-enter)
-  (define-key hui:menu-mode-map hui:menu-abort  #'hui:menu-enter)
-  (define-key hui:menu-mode-map hui:menu-top    #'hui:menu-enter)
-  (define-key hui:menu-mode-map hui:menu-select #'hui:menu-enter)
-  (define-key hui:menu-mode-map "\M-b"          #'hui:menu-backward-item)
-  (define-key hui:menu-mode-map "\M-f"          #'hui:menu-forward-item)
-  (define-key hui:menu-mode-map "\C-i"          #'hui:menu-forward-item)  ;; 
TAB
-  (define-key hui:menu-mode-map [backtab]       #'hui:menu-backward-item) ;; 
Shift-TAB
-  (define-key hui:menu-mode-map "\M-\C-i"       #'hui:menu-backward-item) ;; 
M-TAB
-  ;;
-  ;; This next binding is necessary since the default button1 binding under
-  ;; XEmacs, mouse-track, is broken under XEmacs V19.8.
-  (and (featurep 'xemacs) window-system
-       (define-key hui:menu-mode-map 'button1 'mouse-set-point))
-  (let ((i 32))
-    (while (<= i 126)
-      (define-key hui:menu-mode-map (char-to-string i) 'hui:menu-enter)
-      (setq i (1+ i)))))
+(defvar hui:menu-mode-map nil
+  "Keymap containing Hyperbole minibuffer menu commands.")
+(if hui:menu-mode-map
+    nil
+  (setq hui:menu-mode-map (make-keymap))
+  (suppress-keymap hui:menu-mode-map)
+  (define-key hui:menu-mode-map hui:menu-quit   #'hui:menu-enter)
+  (define-key hui:menu-mode-map hui:menu-abort  #'hui:menu-enter)
+  (define-key hui:menu-mode-map hui:menu-top    #'hui:menu-enter)
+  (define-key hui:menu-mode-map hui:menu-select #'hui:menu-enter)
+  (define-key hui:menu-mode-map "\M-b"          #'hui:menu-backward-item)
+  (define-key hui:menu-mode-map "\M-f"          #'hui:menu-forward-item)
+  (define-key hui:menu-mode-map "\C-i"          #'hui:menu-forward-item)  ;; 
TAB
+  (define-key hui:menu-mode-map [backtab]       #'hui:menu-backward-item) ;; 
Shift-TAB
+  (define-key hui:menu-mode-map "\M-\C-i"       #'hui:menu-backward-item) ;; 
M-TAB
+  ;;
+  ;; This next binding is necessary since the default button1 binding under
+  ;; XEmacs, mouse-track, is broken under XEmacs V19.8.
+  (and (featurep 'xemacs) window-system
+       (define-key hui:menu-mode-map 'button1 'mouse-set-point))
+  (let ((i 32))
+    (while (<= i 126)
+      (define-key hui:menu-mode-map (char-to-string i) 'hui:menu-enter)
+      (setq i (1+ i)))))
+
+;;; ************************************************************************
+;;; Hyperbole Minibuffer Menus
+;;; ************************************************************************
+
+(defun hyperbole-minibuffer-menu ()
+  "Rebuilds and returns the entire Hyperbole minibuffer menu structure."
+(setq
+ hui:menus
+ (delq nil
+ (list (cons
+       'hyperbole
+       (append
+        (let ((version (if (= (aref hyperb:version 0) ?0)
+                           (substring hyperb:version 1)
+                         hyperb:version)))
+          (list (list (concat "Hy" version ">"))))
+        (delq nil
+              (list
+               '("Act"         hui:hbut-act
+                 "Activates button at point or prompts for explicit button.")
+               '("Butfile/"    (menu . butfile)
+                 "Quick access button files menus.")
+               '("Cust/"       (menu . cust)
+                 "Customizes Hyperbole by setting major options.")
+               '("Doc/"        (menu . doc)
+                 "Quick access to Hyperbole documentation.")
+               '("Ebut/"       (menu . ebut)
+                 "Explicit button commands.")
+               '("Find/"       (menu . find)
+                 "Find matching line commands.")
+               '("Gbut/"       (menu . gbut)
+                 "Global button commands.")
+               '("Hist"        (hhist:remove current-prefix-arg)
+                 "Jumps back to location prior to last Hyperbole button 
follow.")
+               '("Ibut/"       (menu . ibut)
+                 "Implicit button and button type commands.")
+               (if hyperb:kotl-p
+                   '("Kotl/"   (menu . otl)
+                     "Autonumbered outlining and hyperlink capabilities."))
+               '("Msg/"        (menu . msg)
+                 "Mail and News messaging capabilities.")
+               '("Rolo/"       (menu . hyrolo)
+                 "Hierarchical, multi-file rolo lookup and edit commands.")
+               '("Screen/"     (menu . screen)
+                 "Screen display management commands.")
+               '("Win/"        (menu . win)
+                 "Window configuration management commands.")
+               ))))
+       '(butfile .
+        (("Butfile>")
+         ("DirFile"      (find-file hbmap:filename)
+          "Edits directory-specific button file.")
+         ("Info"
+          (id-info "(hyperbole)Button Files")
+          "Displays manual section on button files.") 
+         ("PersonalFile" (find-file
+                           (expand-file-name hbmap:filename hbmap:dir-user))
+          "Edits user-specific button file.")
+         ))
+       '(cust .
+         (("Cust>")
+         ("All-Options" (customize-browse 'hyperbole)
+          "Display tree of Hyperbole customizable options by group.")
+         ("Debug-Toggle" hkey-toggle-debug
+          "Toggle display of Smart Key context after each press, for 
debugging.")
+         ("Find-File-URLs" hpath:find-file-urls-mode
+          "Toggle find-file support for ftp and www URLs.")
+         ("Isearch-Invisible" hypb:toggle-isearch-invisible
+          "Toggle whether isearch searches invisible text or not.")
+         ("KeyBindings/" (menu . cust-keys) "Rebinds global Hyperbole keys.")
+         ("Msg-Toggle-Ebuts" hyperbole-toggle-messaging
+          "Toggle Hyperbole support for explicit buttons in mail and news 
buffers.")
+         ("Override-Local-Keys" hkey-toggle-override-local-bindings
+          "Toggle whether conflicting local key bindings are overridden by 
Hyperbole.")
+         ("Referents/" (menu . cust-referents)
+          "Sets where Hyperbole button referents are displayed.")
+         ("Smart-Key-at-Eol/" (menu . cust-eol)
+          "Sets how scrolling via end of line presses works.")
+         ("Toggle-Rolo-Dates" hyrolo-toggle-datestamps
+          "Toggle whether date stamps are updated when rolo entries are 
edited.")
+         ("URL-Display/" (menu . cust-urls) "Sets where URLs are displayed.")
+         ("Web-Search/" (menu . cust-web) "Sets where Web Searches are 
displayed.")))
+       '(cust-eol .
+         (("Smart Key press at eol scrolls>")
+         ("Proportionally" (setq smart-scroll-proportional t))
+         ("Windowful"      (setq smart-scroll-proportional nil))))
+       '(cust-keys .
+         (("Change Keys>")
+         ("ActionKey"   (hui:bind-key #'hkey-either))            ;; {M-RET}
+         ("ButRename"   (hui:bind-key #'hui:ebut-rename))        ;; {C-c C-r}
+         ("DragKey"     (hui:bind-key #'hkey-operate))           ;; {M-o}
+         ("HypbMenu"    (hui:bind-key #'hyperbole))              ;; {C-h h}
+         ("MarkThing"   (hui:bind-key #'hui-select-thing))       ;; {C-c RET}
+         ("SmartHelp"   (hui:bind-key #'hkey-help))              ;; {C-h A}
+         ("WinControl"  (hui:bind-key #'hycontrol-windows))      ;; {C-c \}
+         )) 
+       '(cust-referents .
+         (("Ref Display>")
+         ("Any-Frame" (setq hpath:display-where 'other-frame))
+         ("Current-Win" (setq hpath:display-where 'this-window))
+         ("Diff-Frame-One-Win"
+          (setq hpath:display-where 'other-frame-one-window))
+         ("New-Frame" (setq hpath:display-where 'new-frame))
+         ("Other-Win" (setq hpath:display-where 'other-window))
+         ("Single-Win" (setq hpath:display-where 'one-window))))
+       '(cust-urls .
+         (("URL Display>")
+         ("Chrome" (setq browse-url-browser-function #'browse-url-chrome))
+         ("Default" (setq browse-url-browser-function
+                          (if (and (boundp 'browse-url-generic-program) 
(stringp browse-url-generic-program))
+                              #'browse-url-generic
+                            #'browse-url-default-browser)))
+         ("EWW" (setq browse-url-browser-function #'eww-browse-url))
+         ("Firefox" (setq browse-url-browser-function #'browse-url-firefox))
+         ("KDE" (setq browse-url-browser-function #'browse-url-kde))
+         ("XTerm" (setq browse-url-browser-function #'browse-url-text-xterm))
+         ))
+       '(cust-web .
+         (("Web Search>")
+         ("Chrome" (setq hyperbole-web-search-browser-function 
#'browse-url-chrome))
+         ("Default" (setq hyperbole-web-search-browser-function
+                          (if (and (boundp 'browse-url-generic-program) 
(stringp browse-url-generic-program))
+                              #'browse-url-generic
+                            #'browse-url-default-browser)))
+         ("EWW" (setq hyperbole-web-search-browser-function #'eww-browse-url))
+         ("Firefox" (setq hyperbole-web-search-browser-function 
#'browse-url-firefox))
+         ("KDE" (setq hyperbole-web-search-browser-function #'browse-url-kde))
+         ("XTerm" (setq hyperbole-web-search-browser-function 
#'browse-url-text-xterm))
+         ))
+       '(doc .
+        (("Doc>")
+         ("About"        (hypb:display-file-with-logo
+                          (expand-file-name "HY-ABOUT" hyperb:dir))
+          "Overview of Hyperbole.")
+         ("Demo"         (hypb:display-file-with-logo
+                           (expand-file-name "DEMO" hyperb:dir))
+          "Demonstrates Hyperbole features.")
+         ("Files"        (find-file-read-only
+                           (expand-file-name "MANIFEST" hyperb:dir))
+          "Summarizes Hyperbole system files.  Click on an entry to view it.")
+         ("Glossary"
+          (id-info "(hyperbole)Glossary")
+          "Glossary of Hyperbole terms.")
+         ("Info"         (id-info "(hyperbole)Top")
+          "Online Info version of Hyperbole manual.")
+         ("New"          (hypb:display-file-with-logo
+                          (expand-file-name "HY-NEWS" hyperb:dir))
+          "Recent changes to Hyperbole.")
+         ("SmartKeys"    (find-file-read-only (hypb:hkey-help-file))
+          "Summarizes Smart Key mouse or keyboard handling.")
+         ("Types/"       (menu . types)
+          "Provides documentation on Hyperbole types.")
+        ))
+       '(ebut .
+        (("EButton>")
+         ("Act"    hui:hbut-act
+           "Activates button at point or prompts for explicit button.")
+         ("Create" hui:ebut-create)
+         ("Delete" hui:ebut-delete)
+         ("Edit"   hui:ebut-modify "Modifies any desired button attributes.")
+         ("Help/"  (menu . ebut-help) "Summarizes button attributes.")
+         ("Info"
+          (id-info "(hyperbole)Explicit Buttons")
+          "Displays manual section on explicit buttons.")
+         ("Modify" hui:ebut-modify "Modifies any desired button attributes.")
+         ("Rename" hui:ebut-rename "Relabels an explicit button.")
+         ("Search" hui:ebut-search
+          "Locates and displays personally created buttons in context.")
+         ("Types"  (hui:htype-help-current-window 'actypes)
+          "Displays documentation for one or all action types used by explicit 
buttons.")
+         ))
+       '(ebut-help .
+        (("Help on>")
+         ("BufferButs"   (hui:hbut-report -1)
+          "Summarizes all explicit buttons in buffer.")
+         ("CurrentBut"   (hui:hbut-report)
+          "Summarizes only current button in buffer.")
+         ("OrderedButs"  (hui:hbut-report 1)
+          "Summarizes explicit buttons in lexicographically order.")
+         ))
+       '(find .
+         (("Find>")
+         ("GrepFiles"           hypb:rgrep  "Show numbered line matches in all 
specified files.")
+         ("LocateFiles"         hypb:locate "Locate matching file names 
anywhere across a system.")
+         ("MatchFileBuffers"    moccur      "Show numbered line matches for 
regexp in all file-based buffers.")
+         ("OccurHere"           occur       "Show numbered line matches for 
regexp from this buffer.")
+         ("RemoveLines"         hypb:remove-lines "Following point, remove all 
lines that match regexp.")
+         ("SaveLines"           hypb:save-lines  "Following point, keep only 
lines that match regexp.")
+         ("Web/" (menu . web) "Searches major web sites.")
+         ))
+       '(gbut .
+        (("GButton>")
+         ("Act"    gbut:act        "Activates global button by name.") 
+         ("Create" hui:gbut-create "Adds a global button to gbut:file.")
+         ("Edit"   hui:gbut-modify "Modifies global button attributes.")
+         ("Help"   gbut:help       "Reports on a global button by name.") 
+         ("Info"   (id-info "(hyperbole)Global Buttons")
+          "Displays manual section on global buttons.")
+         ("Modify" hui:gbut-modify "Modifies global button attributes.")
+         ))
+       '(ibut .
+        (("IButton>")
+         ("Act"    hui:hbut-current-act  "Activates implicit button at 
point.") 
+         ("DeleteIButType"   (hui:htype-delete 'ibtypes)
+          "Deletes specified button type.")
+         ("Help"   hui:hbut-help   "Reports on button's attributes.")
+         ("Info"   (id-info "(hyperbole)Implicit Buttons")
+          "Displays manual section on implicit buttons.")
+         ("Types"  (hui:htype-help 'ibtypes 'no-sort)
+          "Displays documentation for one or all implicit button types.")
+         ))
+       '(msg .
+        (("Msg>")
+         ("Compose-Hypb-Mail"
+          (hmail:compose "address@hidden" '(hact 'hyp-config))
+          "Send a message to the Hyperbole discussion list.")
+         ("Join-Hypb-List"
+          (hmail:compose "address@hidden" nil
+                         "Just send the message; subject and body are 
ignored.")
+          "Subscribe to the Hyperbole discussion list.")
+         ("Leave-Hypb-List"
+          (hmail:compose "address@hidden" nil
+                         "Just send the message; subject and body are 
ignored.")
+          "Unsubscribe from the Hyperbole discussion list.")
+         ("Report-Hypb-Bug"
+          (hmail:compose "address@hidden" '(hact 'hyp-config))
+          "Send a message to the Hyperbole bug reporting list.")
+         ("Subscribe-Hypb-Bug"
+          (hmail:compose "address@hidden" nil
+                         "Just send the message; subject and body are 
ignored.")
+          "Subscribe to the Hyperbole bug reporting list.")
+         ("Unsub-Hypb-Bug"
+          (hmail:compose "address@hidden" nil
+                         "Just send the message; subject and body are 
ignored.")
+          "Unsubscribe from the Hyperbole bug reporting list.")
+         ))
+       (if hyperb:kotl-p
+          '(otl
+            . (("Kotl>")
+               ("All"       kotl-mode:show-all "Expand all collapsed cells.") 
+               ("Blanks"    kvspec:toggle-blank-lines
+                "Toggle blank lines between cells on or off.")
+               ("Create"    kfile:find   "Create or edit an outline file.")
+               ("Downto"    kotl-mode:hide-sublevels
+                "Hide all cells in outline deeper than a particular level.")
+               ("Examp"     kotl-mode:example
+                "Display a self-descriptive example outline file.")
+               ("Hide"      (progn (kotl-mode:is-p)
+                                   (kotl-mode:hide-tree (kcell-view:label)))
+                "Collapse tree rooted at point.")
+               ("Info"
+                (id-info "(hyperbole)Koutliner")
+                "Display manual section on Hyperbole Koutliner.")
+               ("Kill"      kotl-mode:kill-tree
+                "Kill ARG following trees starting from point.")
+               ("Link"      klink:create
+                "Create and insert an implicit link at point.")
+               ("Overvw"  kotl-mode:overview
+                "Show first line of each cell.")
+               ("Show"      (progn (kotl-mode:is-p)
+                                   (kotl-mode:show-tree (kcell-view:label)))
+                "Expand tree rooted at point.")
+               ("Top"       kotl-mode:top-cells
+                "Hide all but top-level cells.") 
+               ("Vspec"     kvspec:activate
+                "Prompt for and activate a view specifiction.")
+               )))
+       '(hyrolo .
+        (("Rolo>")
+         ("Add"              hyrolo-add          "Add a new rolo entry.")
+         ("Display"          hyrolo-display-matches
+          "Display last found rolo matches again.")
+         ("Edit"             hyrolo-edit   "Edit an existing rolo entry.")
+         ("Info"             (id-info "(hyperbole)HyRolo")
+          "Displays manual section on Hyperbole rolo.")
+         ("Kill"             hyrolo-kill   "Kill an existing rolo entry.")
+         ("Mail"             hyrolo-mail-to "Mail to address following point.")
+         ("Order"            hyrolo-sort   "Order rolo entries in a file.")
+         ("RegexFind"        hyrolo-grep   "Find entries containing a regexp.")
+         ("StringFind"       hyrolo-fgrep  "Find entries containing a string.")
+         ("WordFind"         hyrolo-word   "Find entries containing words.")
+         ("Yank"             hyrolo-yank
+          "Find an entry containing a string and insert it at point.")
+         ))
+       '(screen .
+        (("Screen>")
+         ("FramesControl"    hycontrol-frames
+          "Interactively delete, jump to, move, replicate, and resize frames.")
+         ("WindowsControl"   hycontrol-windows
+          "Interactively delete, jump to, rebalance, resize, and split 
windows.")))
+       '(types .
+        (("Types>")
+         ("ActionTypes"      (hui:htype-help-current-window 'actypes)
+          "Displays documentation for one or all action types.")
+         ("IButTypes"        (hui:htype-help-current-window 'ibtypes 'no-sort)
+          "Displays documentation for one or all implicit button types.")
+         ))
+       '(win .
+        (("WinConfig>")
+         ("AddName"        hywconfig-add-by-name
+          "Name current window configuration.")
+         ("DeleteName"     hywconfig-delete-by-name
+          "Delete named window configuration.")
+         ("RestoreName"    hywconfig-restore-by-name
+          "Restore frame to window configuration given by name.")
+         ("PopRing"        (progn (hywconfig-delete-pop)
+                                  (hyperbole 'win))
+          "Restores window configuration from ring and removes it from ring.")
+         ("SaveRing"       (hywconfig-ring-save)
+          "Saves current window configuration to ring.")
+         ("YankRing"       (progn (call-interactively 'hywconfig-yank-pop)
+                                  (hyperbole 'win))
+          "Restores next window configuration from ring.")
+         ))
+       (hui:menu-web-search)
+       ))))
+
+;; Always rebuild the Hyperbole minibuffer menu when this file is loaded. 
+(hyperbole-minibuffer-menu)
 
 (provide 'hui-mini)
 
diff --git a/hui-mouse.el b/hui-mouse.el
index 8a2be04..b56557f 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -20,7 +20,7 @@
 ;;  items and Hyperbole buttons, follow these instructions.
 ;;
 ;;  If you plan to use a mouse only with X windows (XEmacs, GNU Emacs
-;;  19, or InfoDock), Mac OS X, or NeXTSTEP, and you want to use the
+;;  19, or InfoDock), Mac OS X, or NEXTSTEP, and you want to use the
 ;;  shift-middle and shift-right buttons, you need not do any mouse
 ;;  configuration.  Your Emacs executable must have been built so as to
 ;;  include the mouse support files for your window system, however.  These
@@ -63,6 +63,18 @@ Set it to #'hkey-summarize if you want it to display a 
summary of Smart Key beha
   :type 'function
   :group 'hyperbole-keys)
 
+(defcustom action-key-eol-function #'smart-scroll-up
+  "*Function run by the Action Key at the end of a line.
+Its default value is #'smart-scroll-up."
+  :type 'function
+  :group 'hyperbole-keys)
+
+(defcustom assist-key-eol-function #'smart-scroll-down
+  "*Function run by the Assist Key at the end of a line.
+Its default value is #'smart-scroll-down."
+  :type 'function
+  :group 'hyperbole-keys)
+
 ;;; ************************************************************************
 ;;; Hyperbole context-sensitive keys dispatch table
 ;;; ************************************************************************
@@ -108,7 +120,7 @@ Set it to #'hkey-summarize if you want it to display a 
summary of Smart Key beha
     ((if (eq major-mode 'kotl-mode)
        (and (not (kotl-mode:eobp)) (kotl-mode:eolp))
       (and (not (eobp)) (or (eolp) (and selective-display (eq (following-char) 
?\r))))) .
-     ((smart-scroll-up) . (smart-scroll-down)))
+     ((funcall action-key-eol-function) . (funcall assist-key-eol-function)))
     ;;
     ;; The Smart Menu system provides menus within Emacs on a dumb terminal.
     ;; It is a part of InfoDock, but may also be obtained as a separate
@@ -142,9 +154,11 @@ Set it to #'hkey-summarize if you want it to display a 
summary of Smart Key beha
            (t (scroll-up))) .
            (scroll-down)))
     ;;
-    ;; Within an OO-Browser OOBR-FTR buffer, an *Implementors* listing
-    ;; buffer, or an Element signatures listing buffer of the
-    ;; OO-Browser.
+    ;; Support the OO-Browser when available.  It is a separate Emacs
+    ;; package not included with Hyperbole.  Within an OO-Browser
+    ;; OOBR-FTR buffer, an *Implementors* listing buffer, or an
+    ;; Element signatures listing buffer of the OO-Browser, display
+    ;; the associated element.
     ((or (string-equal (buffer-name) "*Implementors*")
         (string-match "-Elements\\'" (buffer-name))
         (and (boundp 'br-feature-tags-file)
@@ -297,8 +311,9 @@ Set it to #'hkey-summarize if you want it to display a 
summary of Smart Key beha
     ((eq major-mode 'gomoku-mode) . 
      ((gomoku-human-plays) . (gomoku-human-takes-back)))
     ;;
-    ;; Support the OO-Browser, a part of InfoDock and XEmacs, and an add on
-    ;; to Emacs.  It is not included with Hyperbole.
+    ;; Support the OO-Browser when available.  It is a separate Emacs
+    ;; package not included with Hyperbole.  Hyperbole supplies a stub
+    ;; `br-in-browser' test for use here.
     ((or (br-in-browser) (eq major-mode 'br-mode)) .
      ((smart-br-dispatch) . (smart-br-assist-dispatch)))
     ;;
diff --git a/hversion.el b/hversion.el
index 949d252..7242de6 100644
--- a/hversion.el
+++ b/hversion.el
@@ -23,7 +23,7 @@
 ;;; Public variables
 ;;; ************************************************************************
 
-(defconst hyperb:version "6.0.1" "GNU Hyperbole revision number.")
+(defconst hyperb:version "6.0.2" "GNU Hyperbole revision number.")
 
 ;;;###autoload
 (defvar hyperb:microcruft-os-p
diff --git a/hycontrol.el b/hycontrol.el
index 2c4ea00..d006612 100644
--- a/hycontrol.el
+++ b/hycontrol.el
@@ -194,7 +194,7 @@ set to 1.  If it is > `hycontrol-maximum-units', it is set 
to
                   ((eq e ?n) (set-frame-width nil (- (frame-width) arg)))
                   ((eq e ?o) (setq w (selected-window)) (other-window arg) (if 
(eq w (selected-window)) (other-window 1)))
                   ((eq e ?O) (setq w (selected-window)) (other-frame arg) (if 
(eq w (selected-window)) (other-frame 1)))
-                  ((eq e ?q) (throw 'done t))
+                  ((memq e (list ?q (aref (kbd "<escape>") 0))) (throw 'done 
t))
                   ((eq e ?s) (set-frame-height nil (- (frame-height) arg)))
                   ((eq e ?t) (throw 'done nil))
                   ((eq e ?u) (unbury-buffer))
@@ -279,7 +279,7 @@ set to 1.  If it is > `hycontrol-maximum-units', it is set 
to
                   ((eq e ?n) (shrink-window-horizontally arg))
                   ((eq e ?o) (setq w (selected-window)) (other-window arg) (if 
(eq w (selected-window)) (other-window 1)))
                   ((eq e ?O) (setq w (selected-window)) (other-frame arg) (if 
(eq w (selected-window)) (other-frame 1)))
-                  ((eq e ?q) (throw 'done t))
+                  ((memq e (list ?q (aref (kbd "<escape>") 0))) (throw 'done 
t))
                   ((eq e ?s) (shrink-window arg))
                   ((eq e ?t) (throw 'done nil))
                   ((eq e ?u) (unbury-buffer))
diff --git a/hypb.el b/hypb.el
index 0c138a7..466fc72 100644
--- a/hypb.el
+++ b/hypb.el
@@ -198,6 +198,15 @@ Global keymap is used unless optional KEYMAP is given."
     (put 'error 'error-message msg)
     (error msg)))
 
+(defun hypb:file-major-mode (file)
+  "Return the major mode used by FILE.
+FILE is temporarily read into a buffer to determine the major mode if 
necessary."
+  (let ((existing-flag (get-file-buffer file))
+       (buf (find-file-noselect file)))
+    (prog1 (if buf (save-excursion (set-buffer buf) major-mode))
+      (unless (or existing-flag (null buf))
+       (kill-buffer buf)))))
+
 (defun hypb:format-quote (string)
   "Replace all single % with %% in STRING so a call to `format' or `message' 
ignores them."
   (if (stringp string)
@@ -671,7 +680,7 @@ Without file, the banner is prepended to the current 
buffer."
 (defun hypb:browse-home-page ()
   "Visit the web home page for Hyperbole."
   (interactive)
-  (require 'hsys-w3)
+  (require 'hsys-www)
   (hact 'www-url hypb:home-page))
 
 ;;; ************************************************************************
diff --git a/hyperbole.el b/hyperbole.el
index e10c3f9..7a952ca 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -1,18 +1,20 @@
 ;;; hyperbole.el --- GNU Hyperbole: The Everyday Hypertextual Information 
Manager
-;;
+
+;; Copyright (C) 1992-2016  Free Software Foundation, Inc.
+
 ;; Author:           Bob Weiner
-;; Maintainer:       Bob Weiner <address@hidden> and Mats Lidell 
<address@hidden>
+;; Maintainer:       Bob Weiner <address@hidden>
+;;                  Mats Lidell <address@hidden>
+;; Created:          06-Oct-92 at 11:52:51
+;; Released:         09-Aug-16
+;; Version:          6.0.2
 ;; Keywords:         comm, convenience, files, frames, hypermedia, languages, 
mail, matching, mouse, multimedia, outlines, tools, wp
 ;; Package:          hyperbole
 ;; Package-Requires: ((emacs "24.4"))
 ;; URL:              http://www.gnu.org/software/hyperbole
-;; Version:          6.0.1
-;; Orig-Date:        06-Oct-92 at 11:52:51
-;; Date:             27-Jul-16
-;;
-;; Copyright (C) 1992-2016  Free Software Foundation, Inc.
+
 ;; See the "HY-COPY" file for license information.
-;;
+
 ;; This file is part of GNU Hyperbole.
 
 ;;; Commentary:
@@ -203,8 +205,8 @@ Entry format is: (key-description key-sequence 
key-binding)."
     ;;
     ;; Binds the Action Key to {M-RET} and the Assist Key to {C-u M-RET}
     ;; and loads the Hyperbole mouse key bindings.
-    (and (not (where-is-internal 'hkey-either))
-        (hkey-global-set-key "\M-\C-m" 'hkey-either))
+    (unless (where-is-internal 'hkey-either)
+      (hkey-global-set-key "\M-\C-m" 'hkey-either))
     ;;
     ;; Bind a key, {C-h A}, for Action Key help and {C-u C-h A} for Assist key
     ;; help.
@@ -245,6 +247,9 @@ Entry format is: (key-description key-sequence 
key-binding)."
     ;; Binds {C-c \} to interactively manage windows and frames.
     (hkey-maybe-global-set-key "\C-c\\" 'hycontrol-windows)
     ;;
+    ;; Binds {C-c /} to display the Hyperbole Find/Web search menu.
+    (hkey-maybe-global-set-key "\C-c/" 'hui-search-web)
+    ;;
     ;; Binds {C-c .} to jump between the start and end of an delimited thing.
     ;; Don't override local bindings of this key.
     (hkey-maybe-global-set-key "\C-c." 'hui-select-goto-matching-delimiter t)
diff --git a/man/hyperbole.html b/man/hyperbole.html
index e24fd51..2cfe7c8 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 6.0.1, Published July 27, 2016).
+(Edition 6.0.2, Published August 8, 2016).
 
 Copyright (C) 1989-2016  Free Software Foundation, Inc.
 
@@ -218,14 +218,15 @@ ul.no-bullet {list-style: none}
 <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-Configuration-1" href="#Configuration">B.3 Configuration</a>
+  <li><a name="toc-Customization-1" href="#Customization">B.3 Customization</a>
   <ul class="no-bullet">
-    <li><a name="toc-Using-URLs-with-Find_002dFile-1" 
href="#Using-URLs-with-Find_002dFile">B.3.1 Using URLs with Find-File</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-Invisible-Text-Searches-1" 
href="#Invisible-Text-Searches">B.3.4 Invisible Text Searches</a></li>
-    <li><a name="toc-Link-Variable-Substitution-1" 
href="#Link-Variable-Substitution">B.3.5 Link Variable Substitution</a></li>
-    <li><a name="toc-Configuring-Button-Colors" href="#Button-Colors">B.3.6 
Configuring Button Colors</a></li>
+    <li><a name="toc-Web-Search-Engines-1" href="#Web-Search-Engines">B.3.1 
Web Search Engines</a></li>
+    <li><a name="toc-Using-URLs-with-Find_002dFile-1" 
href="#Using-URLs-with-Find_002dFile">B.3.2 Using URLs with Find-File</a></li>
+    <li><a name="toc-Internal-Viewers-1" href="#Internal-Viewers">B.3.3 
Internal Viewers</a></li>
+    <li><a name="toc-External-Viewers-1" href="#External-Viewers">B.3.4 
External Viewers</a></li>
+    <li><a name="toc-Invisible-Text-Searches-1" 
href="#Invisible-Text-Searches">B.3.5 Invisible Text Searches</a></li>
+    <li><a name="toc-Link-Variable-Substitution-1" 
href="#Link-Variable-Substitution">B.3.6 Link Variable Substitution</a></li>
+    <li><a name="toc-Configuring-Button-Colors" href="#Button-Colors">B.3.7 
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>
@@ -320,8 +321,8 @@ WITHOUT ANY WARRANTY, without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
 
 <PRE>
-Edition 6.0.1
-Printed July 27, 2016.
+Edition 6.0.2
+Printed August 8, 2016.
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -595,13 +596,15 @@ Setup
 </td></tr>
 <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="#Configuration">Configuration</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">
 
-Configuration
+Customization
 
-</pre></th></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">
+</pre></th></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">
+</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">
 </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">
 </td></tr>
@@ -1315,64 +1318,66 @@ the Hyperbole file, <samp>hibtypes.el</samp>, for 
complete examples of
 implicit button types.
 </p>
 <dl compact="compact">
-<dt><code>completion</code></dt>
-<dd><a name="index-ibtypes-completion"></a>
+<dd>
+<a name="index-ibtypes-completion"></a>
 <a name="index-completion"></a>
-<p>Inserts the completion at point into the minibuffer or the other window.
+</dd>
+<dt><code>completion</code></dt>
+<dd><p>Inserts the completion at point into the minibuffer or the other window.
 </p>
+<a name="index-ibtypes-hyp_002dsource"></a>
+<a name="index-Hyperbole-report"></a>
 </dd>
 <dt><code>hyp-source</code></dt>
-<dd><a name="index-ibtypes-hyp_002dsource"></a>
-<a name="index-Hyperbole-report"></a>
-<p>Turns source location entries in Hyperbole reports into buttons that
+<dd><p>Turns source location entries in Hyperbole reports into buttons that
 jump to the associated location.
 </p>
+<a name="index-ibtypes-hyp_002daddress"></a>
+<a name="index-Hyperbole-mail-list"></a>
 </dd>
 <dt><code>hyp-address</code></dt>
-<dd><a name="index-ibtypes-hyp_002daddress"></a>
-<a name="index-Hyperbole-mail-list"></a>
-<p>Turns a Hyperbole support/discussion e-mail address into an implicit
+<dd><p>Turns a Hyperbole support/discussion e-mail address into an implicit
 button which inserts Hyperbole environment information.  This is
 useful when sending mail to a Hyperbole discussion mail list.  See
 also the documentation for <code>actypes::hyp-config</code>.
 </p>
+<a name="index-ibtypes-Info_002dnode"></a>
+<a name="index-Info-node"></a>
 </dd>
 <dt><code>Info-node</code></dt>
-<dd><a name="index-ibtypes-Info_002dnode"></a>
-<a name="index-Info-node"></a>
-<p>Makes &quot;(filename)nodename&quot; buttons display the associated Info 
node.
+<dd><p>Makes &quot;(filename)nodename&quot; buttons display the associated 
Info node.
 Also makes &quot;(filename)itemname&quot; buttons display the associated Info
 index item.
 </p>
-</dd>
-<dt><code>www-url</code></dt>
-<dd><a name="index-ibtypes-www_002durl"></a>
+<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>
-<p>When not in an Emacs web browser buffer, follows any non-ftp URL (link) at 
point.
+</dd>
+<dt><code>www-url</code></dt>
+<dd><p>When not in an Emacs web browser buffer, follows any non-ftp URL (link) 
at point.
 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>
-</dd>
-<dt><code>gnus-push-button</code></dt>
-<dd><a name="index-ibtypes-gnus_002dpush_002dbutton"></a>
+<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>
-<p>Activates GNUS-specific article push-buttons, e.g. for hiding
+</dd>
+<dt><code>gnus-push-button</code></dt>
+<dd><p>Activates GNUS-specific article push-buttons, e.g. for hiding
 signatures.  GNUS is a news and mail reader.&quot;
 </p>
-</dd>
-<dt><code>texinfo-ref</code></dt>
-<dd><a name="index-ibtypes-texinfo_002dref"></a>
+<a name="index-ibtypes-texinfo_002dref"></a>
 <a name="index-Texinfo-cross_002dreference"></a>
 <a name="index-cross_002dreference_002c-Texinfo"></a>
-<p>Displays Texinfo, Info node or help associated with Texinfo node, menu
+</dd>
+<dt><code>texinfo-ref</code></dt>
+<dd><p>Displays Texinfo, Info node or help associated with Texinfo node, menu
 item, @xref, @pxref, @ref, @code or @var at point.  If point is
 within the braces of a cross-reference, the associated Info node is
 shown.  If point is to the left of the braces but after the @ symbol and
@@ -1382,113 +1387,113 @@ Texinfo node is shown.
 <p>For @code and @var references, the associated documentation string
 is displayed.
 </p>
-</dd>
-<dt><code>mail-address</code></dt>
-<dd><a name="index-ibtypes-mail_002daddress"></a>
+<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>
-<p>If on an e-mail address in a specific buffer type, mail to that address
+</dd>
+<dt><code>mail-address</code></dt>
+<dd><p>If on an e-mail address in a specific buffer type, mail to that 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>
 </dd>
 <dt><code>patch-msg</code></dt>
-<dd><a name="index-ibtypes-patch_002dmsg"></a>
-<a name="index-patch-output"></a>
-<p>Jumps to the source code associated with output from the 
&lsquo;<samp>patch</samp>&rsquo;
+<dd><p>Jumps to the source code associated with output from the 
&lsquo;<samp>patch</samp>&rsquo;
 program.  Patch applies diffs to source code.
 </p>
-</dd>
-<dt><code>elisp-compiler-msg</code></dt>
-<dd><a name="index-ibtypes-elisp_002dcompiler_002dmsg"></a>
+<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>
-<p>Jumps to the source code for a definition associated with a
+</dd>
+<dt><code>elisp-compiler-msg</code></dt>
+<dd><p>Jumps to the source code for a definition associated with a
 byte-compiler error message.  Works when activated anywhere within an
 error line.
 </p>
-</dd>
-<dt><code>debugger-source</code></dt>
-<dd><a name="index-ibtypes-debugger_002dsource"></a>
+<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>
-<p>Jumps to the source line associated with a debugger stack frame or
+</dd>
+<dt><code>debugger-source</code></dt>
+<dd><p>Jumps 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>
-</dd>
-<dt><code>grep-msg</code></dt>
-<dd><a name="index-ibtypes-grep_002dmsg"></a>
+<a name="index-ibtypes-grep_002dmsg"></a>
 <a name="index-grep"></a>
 <a name="index-compiler-error-1"></a>
-<p>Jumps to a line associated with grep or compilation error messages.
+</dd>
+<dt><code>grep-msg</code></dt>
+<dd><p>Jumps to a line associated with grep or compilation error messages.
 Messages are recognized in any buffer.
 </p>
-</dd>
-<dt><code>klink</code></dt>
-<dd><a name="index-ibtypes-klink"></a>
+<a name="index-ibtypes-klink"></a>
 <a name="index-klink"></a>
 <a name="index-koutline-link"></a>
 <a name="index-kcell-link"></a>
-<p>Follows a link delimited by &lt;&gt; to a koutline cell.
+</dd>
+<dt><code>klink</code></dt>
+<dd><p>Follows 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>
-</dd>
-<dt><code>man-apropos</code></dt>
-<dd><a name="index-ibtypes-man_002dapropos"></a>
+<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>
-<p>Makes man apropos entries (from &lsquo;<samp>man -k</samp>&rsquo;) display 
associated man pages when
+</dd>
+<dt><code>man-apropos</code></dt>
+<dd><p>Makes man apropos entries (from &lsquo;<samp>man -k</samp>&rsquo;) 
display associated man pages when
 selected.
 </p>
-</dd>
-<dt><code>rfc</code></dt>
-<dd><a name="index-ibtypes-rfc"></a>
+<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>
-<p>Retrieves and displays an Internet rfc referenced at point.  Requires remote
+</dd>
+<dt><code>rfc</code></dt>
+<dd><p>Retrieves and displays an Internet rfc referenced at point.  Requires 
remote
 file access, e.g. via the Tramp library, for remote ftp retrievals.  The
 following formats are recognized: RFC822, rfc-822, and RFC 822.  The
 <code>hpath:rfc</code> variable specifies the location from which to retrieve
 RFCs.&quot;
 </p>
+<a name="index-ibtypes-kbd_002dkey"></a>
+<a name="index-key-sequence"></a>
 </dd>
 <dt><code>kbd-key</code></dt>
-<dd><a name="index-ibtypes-kbd_002dkey"></a>
-<a name="index-key-sequence"></a>
-<p>Executes the command binding or the Hyperbole minibuffer menu action
+<dd><p>Executes the command binding or the Hyperbole minibuffer menu action
 for a key sequence delimited by curly braces.  Key sequences should
 be in human readable form, e.g. <kbd>{C-x C-b}</kbd>.  Formats such
 as {^x^b} will not be recognized.
 </p>
-</dd>
-<dt><code>dir-summary</code></dt>
-<dd><a name="index-ibtypes-dir_002dsummary"></a>
+<a name="index-ibtypes-dir_002dsummary"></a>
 <a name="index-file_002c-MANIFEST"></a>
 <a name="index-file_002c-DIR"></a>
-<p>Detects filename buttons in files named &quot;MANIFEST&quot; or 
&quot;DIR&quot;.
+</dd>
+<dt><code>dir-summary</code></dt>
+<dd><p>Detects filename buttons in files named &quot;MANIFEST&quot; or 
&quot;DIR&quot;.
 Displays selected files.  Each file name 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>
-</dd>
-<dt><code>text-toc</code></dt>
-<dd><a name="index-ibtypes-text_002dtoc"></a>
+<a name="index-ibtypes-text_002dtoc"></a>
 <a name="index-table-of-contents"></a>
 <a name="index-toc-implicit-button-type"></a>
-<p>Jumps to the text file section referenced by a table of contents entry
+</dd>
+<dt><code>text-toc</code></dt>
+<dd><p>Jumps to the text file section referenced by a table of contents entry
 at point.  The file name of the current buffer must contain
 <samp>README</samp> and there must be a &lsquo;Table of Contents&rsquo; or 
&lsquo;Contents&rsquo;
 label on a line by itself (it may begin with an asterisk), preceding the
@@ -1497,82 +1502,89 @@ 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>
-</dd>
-<dt><code>cscope</code></dt>
-<dd><a name="index-ibtypes-cscope"></a>
+<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>
-<p>Jumps to a C/C++ source line associated with a Cscope C analyzer output 
line.
+</dd>
+<dt><code>cscope</code></dt>
+<dd><p>Jumps to a C/C++ source line associated with a Cscope C analyzer output 
line.
 Requires pre-loading of the cscope.el Lisp library available from the Emacs
 Lisp archives and the commercial cscope program available from AT&amp;T&rsquo;s
 software toolchest.  Otherwise, does nothing.
 </p>
-</dd>
-<dt><code>etags</code></dt>
-<dd><a name="index-ibtypes-etags"></a>
+<a name="index-ibtypes-etags"></a>
 <a name="index-etags-entry"></a>
 <a name="index-TAGS-file"></a>
 <a name="index-tag"></a>
-<p>Jumps to the source line associated with an etags file entry in a TAGS 
buffer.
+</dd>
+<dt><code>etags</code></dt>
+<dd><p>Jumps to the source line associated with an etags file entry in a TAGS 
buffer.
 If on a tag entry line, jumps to the source line for the tag.  If on a
 pathname line or line preceding it, jumps to the associated file.
 </p>
-</dd>
-<dt><code>ctags</code></dt>
-<dd><a name="index-ibtypes-ctags"></a>
+<a name="index-ibtypes-ctags"></a>
 <a name="index-ctags-entry"></a>
 <a name="index-tags-file"></a>
-<p>Jumps to the source line associated with a ctags file entry in any buffer.
+</dd>
+<dt><code>ctags</code></dt>
+<dd><p>Jumps 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.
 InfoDock and Emacs use the newer, more flexible Etags format.
 </p>
-</dd>
-<dt><code>id-cflow</code></dt>
-<dd><a name="index-ibtypes-id_002dcflow"></a>
+<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>
-<p>Expands or collapses C call trees and jumps to code definitions.
+</dd>
+<dt><code>id-cflow</code></dt>
+<dd><p>Expands or collapses C call trees and jumps to code definitions.
 Requires cross-reference tables built by the external <code>cxref</code>
 program.
 </p>
-</dd>
-<dt><code>rfc-toc</code></dt>
-<dd><a name="index-ibtypes-rfc_002dtoc"></a>
+<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>
-<p>Summarizes contents of an Internet rfc from anywhere within an rfc buffer.
+</dd>
+<dt><code>rfc-toc</code></dt>
+<dd><p>Summarizes 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-markdown_002dinternal_002dlink"></a>
+<a name="index-markdown-link"></a>
 </dd>
-<dt><code>annot-bib</code></dt>
-<dd><a name="index-ibtypes-annot_002dbib"></a>
+<dt><code>markdown-internal-link</code></dt>
+<dd><p>Displays any in-file Markdown link referent.  Pathnames and urls are
+handled elsewhere.
+</p>
+<a name="index-ibtypes-annot_002dbib"></a>
 <a name="index-bibliography"></a>
 <a name="index-reference"></a>
-<p>Displays annotated bibliography entries defined within the same buffer
+</dd>
+<dt><code>annot-bib</code></dt>
+<dd><p>Displays annotated bibliography entries defined within the same buffer
 as the reference.  References must be delimited by square brackets, must
 begin with a word constituent character, and must not be in buffers
 whose names begin with a &lsquo; &rsquo; or &lsquo;*&rsquo; character.
 </p>
-</dd>
-<dt><code>debbugs-gnu-mode</code></dt>
-<dd><a name="index-ibtypes-debbugs_002dgnu_002dmode"></a>
+<a name="index-ibtypes-debbugs_002dgnu_002dmode"></a>
 <a name="index-bug-tracking"></a>
 <a name="index-issue-tracking"></a>
-<p>Debbugs is a client-server issue tracker used by GNU free software
+</dd>
+<dt><code>debbugs-gnu-mode</code></dt>
+<dd><p>Debbugs is a client-server issue tracker used by GNU free software
 projects, including Hyperbole, to manage issues and maintain threads
 of discussion around them.  When on a GNU Debbugs listing entry in
 <code>debbugs-gnu-mode</code>, an Action Key press 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>
 </dd>
 <dt><code>debbugs-gnu-query</code></dt>
-<dd><a name="index-ibtypes-debbugs_002dgnu_002dquery"></a>
-<p>This implicit button type displays the results of a Gnu debbugs query
+<dd><p>This implicit button type displays the results of a Gnu debbugs query
 based on the string at point and works in most kinds of buffers.  If
 the query includes a single id number, it displays the original message
 submission for that id and allows browsing of the followup discussion.
@@ -1591,14 +1603,15 @@ bug#id-number?attr1=val1&amp;attr2=val2&amp;attr3=val3
 of <em>bug</em>.  See the documentation at the top of
 the <samp>hib-debbugs.el</samp> file for detailed query format information.
 </p>
-</dd>
-<dt><code>social-reference</code></dt>
-<dd><a name="index-ibtypes-social_002dreference"></a>
+<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>
-<p>Displays the web page associated with a social media hashtag or username
+</dd>
+<dt><code>social-reference</code></dt>
+<dd><p>Displays the web page associated with a social media hashtag or username
 reference at point.  Reference format is:
 </p>
 <div class="smallexample">
@@ -1615,29 +1628,27 @@ value of <code>hibtypes-social-default-service</code> 
(default value of
 twitter#hashtag.
 </p>
 
-</dd>
-<dt><code>function-in-buffer</code></dt>
-<dd><a name="index-ibtypes-function_002din_002dbuffer"></a>
+<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>
-<p>Returns the function name defined within this buffer that point is
+</dd>
+<dt><code>function-in-buffer</code></dt>
+<dd><p>Returns the function name defined within this buffer that point is
 within or after, else &lsquo;<samp>nil</samp>&rsquo;.  This triggers only when 
the
 func-menu library has been loaded and the current major mode is one
 handled by func-menu.
 </p>
-</dd>
-<dt><code>pathname-line-and-column</code></dt>
-<dd><a name="index-link_002c-pathname-line-and-column"></a>
+<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>
-<p>Makes a valid pathname:line-num[:column-num] pattern display the path
+</dd>
+<dt><code>pathname-line-and-column</code></dt>
+<dd><p>Makes a valid pathname:line-num[:column-num] pattern display the path
 at line-num and optional column-num.  Also works for remote pathnames.
 </p>
-</dd>
-<dt><code>pathname</code></dt>
-<dd><a name="index-ibtypes-pathname"></a>
+<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>
@@ -1649,10 +1660,14 @@ at line-num and optional column-num.  Also works for 
remote pathnames.
 <a name="index-remote-path"></a>
 <a name="index-filename"></a>
 <a name="index-link_002c-pathname"></a>
-<p>Makes a valid pathname display the path entry.  Also works for delimited and
-non-delimited remote pathnames and Texinfo <samp></samp> entries.  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.
+</dd>
+<dt><code>pathname</code></dt>
+<dd><p>Makes a valid pathname display the path entry.  Also works for
+delimited and non-delimited remote pathnames, Texinfo <samp></samp> entries,
+and hash-style link references to HTML, Markdown or Emacs outline
+headings.  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.
 </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
@@ -1660,34 +1675,35 @@ 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>
-</dd>
-<dt><code>org-mode</code></dt>
-<dd><a name="index-ibtypes-org_002dmode"></a>
+<a name="index-ibtypes-org_002dmode"></a>
 <a name="index-browse_002durl_002dbrowser_002dfunction-1"></a>
 <a name="index-org_002dmode"></a>
 <a name="index-Org-mode"></a>
-<p>Follows any Org mode link at point or cycles through views of the
-outline subtree at point.  The Assist Key on an Org mode heading,
-cycles through views of the whole buffer outline and on an Org mode
-link, displays standard Hyperbole help.
+</dd>
+<dt><code>org-mode</code></dt>
+<dd><p>The Action Key follows any Org mode link at point or cycles through
+views of the outline subtree at point.  In any other context besides
+the end of a line, the Action Key will invoke the Org mode standard
+binding of <kbd>{M-<span class="key">RET</span>}</kbd>, (org-meta-return).  
The Assist Key on
+an Org mode heading, cycles through views of the whole buffer outline
+and on an Org mode link, displays standard Hyperbole help.
 </p>
 <p>The variable, <code>browse-url-browser-function</code>, customizes the url
 browser that is used for urls.  Valid values of this variable
 include <code>browse-url-default-browser</code>
 and <code>browse-url-generic</code>.
 </p>
-</dd>
-<dt><code>doc-id</code></dt>
-<dd><a name="index-ibtypes-doc_002did"></a>
+<a name="index-ibtypes-doc_002did"></a>
 <a name="index-online-library"></a>
 <a name="index-document-identifier"></a>
-<p>Displays an index
-entry for a site-specific document given its id.  Ids must be
-delimited by <code>doc-id-start</code> and <code>doc-id-end</code> and must 
match
-the function given by <code>doc-id-p</code>.  This permits creation of
-catalogued online libraries.  [Note that this implicit button type is 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>.]
+</dd>
+<dt><code>doc-id</code></dt>
+<dd><p>Displays an index entry for a site-specific document given its id.
+Ids must be delimited by <code>doc-id-start</code> and <code>doc-id-end</code> 
and
+must match the function given by <code>doc-id-p</code>.  This permits
+creation of catalogued online libraries.  (Note that this implicit
+button type is 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>).
 </p></dd>
 </dl>
 
@@ -1773,145 +1789,146 @@ creating explicit or global buttons.
 are:
 </p>
 <dl compact="compact">
-<dt><code>annot-bib</code></dt>
 <dd><a name="index-actypes-annot_002dbib"></a>
-<p>Follows an internal reference KEY within an annotated bibliography,
+</dd>
+<dt><code>annot-bib</code></dt>
+<dd><p>Follows an internal reference KEY within an annotated bibliography,
 delimiters = [ ].
 </p>
+<a name="index-actypes-completion"></a>
 </dd>
 <dt><code>completion</code></dt>
-<dd><a name="index-actypes-completion"></a>
-<p>Inserts a completion at point into the minibuffer or a buffer.
+<dd><p>Inserts 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 the completions window is deleted.
 </p>
+<a name="index-actypes-eval_002delisp"></a>
 </dd>
 <dt><code>eval-elisp</code></dt>
-<dd><a name="index-actypes-eval_002delisp"></a>
-<p>Evaluates a Lisp expression LISP-EXPR.
+<dd><p>Evaluates a Lisp expression LISP-EXPR.
 </p>
+<a name="index-actypes-exec_002dkbd_002dmacro"></a>
 </dd>
 <dt><code>exec-kbd-macro</code></dt>
-<dd><a name="index-actypes-exec_002dkbd_002dmacro"></a>
-<p>Executes a KBD-MACRO REPEAT-COUNT times.  KBD-MACRO may be a string of
+<dd><p>Executes a KBD-MACRO REPEAT-COUNT times.  KBD-MACRO may be a string of
 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>
 </dd>
 <dt><code>exec-shell-cmd</code></dt>
-<dd><a name="index-actypes-exec_002dshell_002dcmd"></a>
-<p>Executes a SHELL-CMD string asynchronously.  Optional non-nil second
+<dd><p>Executes a SHELL-CMD string asynchronously.  Optional non-nil second
 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>
 </dd>
 <dt><code>exec-window-cmd</code></dt>
-<dd><a name="index-actypes-exec_002dwindow_002dcmd"></a>
-<p>Asynchronously executes an external window-based SHELL-CMD string.
+<dd><p>Asynchronously executes an external window-based SHELL-CMD string.
 </p>
+<a name="index-actypes-function_002din_002dbuffer"></a>
 </dd>
 <dt><code>function-in-buffer</code></dt>
-<dd><a name="index-actypes-function_002din_002dbuffer"></a>
-<p>Displays the definition of function NAME found at POS in the current buffer.
+<dd><p>Displays the definition of function NAME found at POS in the current 
buffer.
 </p>
+<a name="index-actypes-hyp_002dconfig"></a>
 </dd>
 <dt><code>hyp-config</code></dt>
-<dd><a name="index-actypes-hyp_002dconfig"></a>
-<p>Inserts Hyperbole configuration and debugging information at the end
+<dd><p>Inserts 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>
 </dd>
 <dt><code>hyp-request</code></dt>
-<dd><a name="index-actypes-hyp_002drequest"></a>
-<p>Inserts help for composing a Hyperbole support/discussion message into
+<dd><p>Inserts 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>
 </dd>
 <dt><code>hyp-source</code></dt>
-<dd><a name="index-actypes-hyp_002dsource"></a>
-<p>Displays a buffer or file from a line beginning with
+<dd><p>Displays a buffer or file from a line beginning with
 <code>hbut:source-prefix</code>.
 </p>
+<a name="index-actypes-kbd_002dkey"></a>
 </dd>
 <dt><code>kbd-key</code></dt>
-<dd><a name="index-actypes-kbd_002dkey"></a>
-<p>Executes the function binding for KEY-SEQUENCE, delimited by {}.
+<dd><p>Executes the function binding for KEY-SEQUENCE, delimited by {}.
 Returns &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>
 </dd>
 <dt><code>link-to-buffer-tmp</code></dt>
-<dd><a name="index-actypes-link_002dto_002dbuffer_002dtmp"></a>
-<p>Displays a BUFFER.  This type of link generally can
+<dd><p>Displays a BUFFER.  This type of link generally can
 only be used within a single editor session.  Use <code>link-to-file</code>
 instead for a permanent link.
 </p>
+<a name="index-actypes-link_002dto_002ddirectory"></a>
 </dd>
 <dt><code>link-to-directory</code></dt>
-<dd><a name="index-actypes-link_002dto_002ddirectory"></a>
-<p>Displays a DIRECTORY in Dired mode.
+<dd><p>Displays a DIRECTORY in Dired mode.
 </p>
+<a name="index-actypes-link_002dto_002ddoc"></a>
 </dd>
 <dt><code>link-to-doc</code></dt>
-<dd><a name="index-actypes-link_002dto_002ddoc"></a>
-<p>Displays an online version of a document given by DOC-ID.  If the online
+<dd><p>Displays 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>, an error is
 signalled.
 </p>
+<a name="index-actypes-link_002dto_002debut"></a>
 </dd>
 <dt><code>link-to-ebut</code></dt>
-<dd><a name="index-actypes-link_002dto_002debut"></a>
-<p>Performs an action given by another button, specified by KEY and KEY-FILE.
+<dd><p>Performs an action given by another button, specified by KEY and 
KEY-FILE.
 </p>
+<a name="index-actypes-link_002dto_002delisp_002ddoc"></a>
 </dd>
 <dt><code>link-to-elisp-doc</code></dt>
-<dd><a name="index-actypes-link_002dto_002delisp_002ddoc"></a>
-<p>Displays the documentation for FUNC-SYMBOL.
+<dd><p>Displays the documentation for FUNC-SYMBOL.
 </p>
+<a name="index-actypes-link_002dto_002dfile"></a>
 </dd>
 <dt><code>link-to-file</code></dt>
-<dd><a name="index-actypes-link_002dto_002dfile"></a>
-<p>Displays file given by PATH scrolled to optional POINT.  With POINT,
+<dd><p>Displays file given by PATH scrolled to optional POINT.  With POINT,
 buffer is displayed with POINT at window top.
 </p>
+<a name="index-actypes-link_002dto_002dfile_002dline"></a>
 </dd>
 <dt><code>link-to-file-line</code></dt>
-<dd><a name="index-actypes-link_002dto_002dfile_002dline"></a>
-<p>Displays a file given by PATH scrolled to LINE-NUM.
+<dd><p>Displays a file given by PATH scrolled to LINE-NUM.
 </p>
+<a name="index-actypes-link_002dto_002dInfo_002dindex_002ditem"></a>
 </dd>
 <dt><code>link-to-Info-index-item</code></dt>
-<dd><a name="index-actypes-link_002dto_002dInfo_002dindex_002ditem"></a>
-<p>Displays an Info index ITEM cross-reference.
+<dd><p>Displays an Info index ITEM cross-reference.
 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>
 </dd>
 <dt><code>link-to-Info-node</code></dt>
-<dd><a name="index-actypes-link_002dto_002dInfo_002dnode"></a>
-<p>Displays an Info NODE.  NODE must be a string of the form
+<dd><p>Displays an Info NODE.  NODE must be a string of the form
 (filename)nodename.  During button creation, completion for both
 filename and nodename is available.  Filename may be given without the
 .info suffix.
 </p>
+<a name="index-actypes-link_002dto_002dkcell"></a>
+<a name="index-kcell_003aref_002dto_002did"></a>
 </dd>
 <dt><code>link-to-kcell</code></dt>
-<dd><a name="index-actypes-link_002dto_002dkcell"></a>
-<a name="index-kcell_003aref_002dto_002did"></a>
-<p>Displays a Hyperbole outline cell, given by FILE and CELL-REF, at the
+<dd><p>Displays a Hyperbole outline cell, given by FILE and CELL-REF, at the
 top of a window.  See the documentation for <code>(kcell:ref-to-id)</code> for
 valid CELL-REF formats.
 </p>
 <p>If FILE is &lsquo;<samp>nil</samp>&rsquo;, the current buffer is used.  If 
CELL-REF is
 &lsquo;<samp>nil</samp>&rsquo;, the first cell in the view is shown.
 </p>
+<a name="index-actypes-link_002dto_002dkotl"></a>
 </dd>
 <dt><code>link-to-kotl</code></dt>
-<dd><a name="index-actypes-link_002dto_002dkotl"></a>
-<p>Displays at the top of a window the referent pointed to by LINK.
+<dd><p>Displays at the top of a window the referent pointed to by LINK.
 LINK may be of any of the following forms, with or without delimiters:
 </p><div class="example">
 <pre class="example">  &lt; pathname [, cell-ref] &gt;
@@ -1922,78 +1939,77 @@ 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>
 </dd>
 <dt><code>link-to-mail</code></dt>
-<dd><a name="index-actypes-link_002dto_002dmail"></a>
-<p>Displays a mail message with MAIL-MSG-ID from optional MAIL-FILE.  See
+<dd><p>Displays 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>
 </dd>
 <dt><code>link-to-regexp-match</code></dt>
-<dd><a name="index-actypes-link_002dto_002dregexp_002dmatch"></a>
-<p>Finds REGEXP&rsquo;s Nth occurrence in SOURCE and displays the location at 
the
+<dd><p>Finds REGEXP&rsquo;s Nth occurrence in SOURCE and displays the location 
at the
 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.
 Returns &lsquo;<samp>t</samp>&rsquo; if found, signals an error if not.
 </p>
+<a name="index-actypes-link_002dto_002drfc"></a>
 </dd>
 <dt><code>link-to-rfc</code></dt>
-<dd><a name="index-actypes-link_002dto_002drfc"></a>
-<p>Retrieves and displays an Internet rfc given by RFC-NUM.  RFC-NUM may be
+<dd><p>Retrieves and displays an Internet rfc given by RFC-NUM.  RFC-NUM may be
 a string or an integer.  Requires a remote file access library, such as
 Tramp, for ftp file retrievals.
 </p>
+<a name="index-actypes-link_002dto_002dstring_002dmatch"></a>
 </dd>
 <dt><code>link-to-string-match</code></dt>
-<dd><a name="index-actypes-link_002dto_002dstring_002dmatch"></a>
-<p>Finds STRING&rsquo;s Nth occurrence in SOURCE and displays the location at 
the
+<dd><p>Finds STRING&rsquo;s Nth occurrence in SOURCE and displays the location 
at the
 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.
 Returns &lsquo;<samp>t</samp>&rsquo; if found, &lsquo;<samp>nil</samp>&rsquo; 
if not.
 </p>
+<a name="index-actypes-link_002dto_002dtexinfo_002dnode"></a>
 </dd>
 <dt><code>link-to-texinfo-node</code></dt>
-<dd><a name="index-actypes-link_002dto_002dtexinfo_002dnode"></a>
-<p>Displays the Texinfo node with NODENAME (a string) from the current buffer.
+<dd><p>Displays the Texinfo node with NODENAME (a string) from the current 
buffer.
 </p>
+<a name="index-actypes-man_002dshow"></a>
+<a name="index-sm_002dnotify"></a>
 </dd>
 <dt><code>man-show</code></dt>
-<dd><a name="index-actypes-man_002dshow"></a>
-<a name="index-sm_002dnotify"></a>
-<p>Displays a man page on TOPIC, which may be of the form
+<dd><p>Displays a man page on TOPIC, which may be of the form
 &lsquo;<samp>&lt;command&gt;(&lt;section&gt;</samp>&rsquo;).  If using the 
Superman manual entry
 package, see the documentation for <code>sm-notify</code> to control where the
 man page is displayed.
 </p>
+<a name="index-actypes-rfc_002dtoc"></a>
 </dd>
 <dt><code>rfc-toc</code></dt>
-<dd><a name="index-actypes-rfc_002dtoc"></a>
-<p>Computes and displays a summary of an Internet rfc in BUF-NAME.  Assumes
+<dd><p>Computes and displays a summary of an Internet rfc in BUF-NAME.  Assumes
 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>
-</dd>
-<dt><code>text-toc</code></dt>
-<dd><a name="index-actypes-text_002dtoc"></a>
+<a name="index-actypes-text_002dtoc"></a>
 <a name="index-table-of-contents-2"></a>
 <a name="index-toc-action-type"></a>
-<p>Jumps to the text file SECTION referenced by a table of contents entry
+</dd>
+<dt><code>text-toc</code></dt>
+<dd><p>Jumps to the text file SECTION referenced by a table of contents entry
 at point.
 </p>
-</dd>
-<dt><code>www-url</code></dt>
-<dd><a name="index-actypes-www_002durl"></a>
+<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-2"></a>
-<p>Follows a link given by a URL.  The variable,
+</dd>
+<dt><code>www-url</code></dt>
+<dd><p>Follows a link given by a URL.  The variable,
 <code>browse-url-browser-function</code>, customizes the url browser
 that is used.  See its documentation string for details.
-</p>
-</dd>
+</p></dd>
 </dl>
 
 <a name="index-action-1"></a>
@@ -3208,12 +3224,13 @@ These are good places to begin experimenting with 
button creation.
 <a name="index-option-settings"></a>
 </dd>
 <dt><strong>Cust/</strong></dt>
-<dd><p>Hyperbole option customization.  This includes whether ftp and www URLs
-are recognized by the <code>find-file</code> commands, where Hyperbole link
-referents are displayed, where URLs are displayed, whether date stamps
-are added to rolo entries, and whether to use proportional or windowful
-scrolling when a Smart Key is pressed at the end of a line.
-See <a href="#Configuration">Configuration</a>.
+<dd><p>Hyperbole option customization.  This includes whether ftp and www
+URLs are recognized by the <code>find-file</code> commands, where Hyperbole
+link referents are displayed, where URLs are displayed, where web
+search results are displayed, whether date stamps are added to rolo
+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>
@@ -3250,12 +3267,13 @@ documentation on Hyperbole implicit button and action 
types.
 <a name="index-search"></a>
 </dd>
 <dt><strong>Find/</strong></dt>
-<dd><p>Buffer and file line finding commands.  This menu brings together many
-existing line finding commands that are difficult to recall quickly
-when needed, simplifying finding and then jumping to matching lines by
-using the Action Key.  It includes commands for filtering a buffer to
-just those lines that either match or do not match a regular
-expression.
+<dd><p>Buffer and file line finding commands and web searching.  This menu
+brings together many existing line finding commands that are difficult
+to recall quickly when needed, simplifying finding and then jumping to
+matching lines by using the Action Key.  It includes commands for
+filtering a buffer to just those lines that either match or do not
+match a regular expression.  It also includes a submenu for quick
+access to popular web search engines.
 </p>
 <p>Below are each of the commands on the Find menu.
 </p>
@@ -3263,6 +3281,7 @@ expression.
 <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>
@@ -3289,6 +3308,26 @@ expression.
 </li><li> OccurHere -        Show numbered line matches for regexp from this 
buffer.
 </li><li> RemoveLines -      Following point, remove all lines that match 
regexp.
 </li><li> SaveLines -        Following point, keep only lines that match 
regexp.
+</li><li> <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>
+Web/ -             Select a search engine and term and search with them.
+                   Hyperbole binds the key <kbd>{C-c /}</kbd> for quick
+                   access to this menu, if it is not already bound
+                   prior to Hyperbole&rsquo;s initialization.  The 
Cust/Web-Search
+                   menu sets the option, 
<code>hyperbole-web-search-browser-function</code>,
+                   which determines whether web search results are displayed
+                   within Emacs or with an external web browser.  A short
+                   video introduction to the Find/Web menu may be
+                   found at <a 
href="https://youtu.be/8lMlJed0-OM";>https://youtu.be/8lMlJed0-OM</a>. The
+                   Find/Web menu looks like this:
+<div class="smallexample">
+<pre class="smallexample">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>
@@ -3374,18 +3413,26 @@ 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>
-<p>Hyperbole typically binds the key <kbd>{C-c \}</kbd> to invoke HyControl
-window control; otherwise, the Screen/WindowsControl minibuffer menu
-item, <kbd>{C-h h s w}</kbd>, will do the same thing.
+<a name="index-menu-item_002c-FramesControl"></a>
+<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
+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>
 <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> to quit from 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.
+your windows until you press <kbd>{q}</kbd> or <kbd>{<span 
class="key">ESC</span>}</kbd> to quit from
+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>
@@ -3652,9 +3699,10 @@ sizes by which to zoom.
 <dd><p>Toggle between WINDOW and FRAME submodes.
 </p>
 <a name="index-screen_002c-q"></a>
-<a name="index-q-1"></a>
+<a name="index-screen_002c-ESC"></a>
+<a name="index-q-or-ESC"></a>
 </dd>
-<dt><kbd>{q}</kbd></dt>
+<dt><kbd>{q or <span class="key">ESC</span>}</kbd></dt>
 <dd><p>Quit from HyControl mode and restore normal key bindings.
 </p></dd>
 </dl>
@@ -3662,7 +3710,7 @@ sizes by which to zoom.
 <br>
 <p>The rest of this section goes into some technicalities about HyControl
 settings.  You may ignore it if you are not familiar with Emacs
-variables and functions.
+variables and functions or with customized Emacs.
 </p>
 <a name="index-hycontrol_002dscreen_002doffset_002dalist"></a>
 <a name="index-hycontrol_002dset_002dscreen_002doffsets"></a>
@@ -3739,6 +3787,7 @@ outliner is available for use.)
 </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>
 <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
@@ -6179,7 +6228,7 @@ considered the present Hyperbole API:
 <p><samp>hact.el</samp>, <samp>hargs.el</samp>, <samp>hbmap.el</samp>, 
<samp>hbut.el</samp>,
 <samp>hhist.el</samp>, <samp>hmail.el</samp>, <samp>hmoccur.el</samp>, 
<samp>hpath.el</samp>,
 <samp>htz.el</samp>, <samp>hypb.el</samp>, <samp>hyrolo.el</samp>, 
<samp>hyrolo-logic.el</samp>,
-<samp>hywconfig.el</samp> andn <samp>set.el</samp>.
+<samp>hywconfig.el</samp> and <samp>set.el</samp>.
 </p>
 
 <p>Note when looking at these files, that they are divided into sections
@@ -6187,7 +6236,7 @@ that separate one data abstraction (class) from another.  
A line of
 dashes within a class separates public parts of the class from the
 private parts that follow the line.
 </p>
-<p>This API does not include the Hyperbole outliner, as it has been
+<p>This API does not include the Hyperbole Koutliner, as it has been
 designed for interactive use, rather than programmatic extensibility.
 You are welcome, however, to study its code, below the
 <samp>hyperbole-${hyperb:version}/kotl/</samp> directory.
@@ -6412,10 +6461,10 @@ 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>
 </dd>
 <dt><b>Global Button</b></dt>
-<dd><a name="index-gbut_003afile"></a>
-<p>A form of explicit button which is accessed by name rather than direct
+<dd><p>A form of explicit button which is accessed by name rather than direct
 selection.  Global buttons are useful when one wants quick access to
 actions such as jumping to common file locations or for performing
 sequences of operations.  One need not locate them since they are always
@@ -6718,7 +6767,7 @@ invocation instructions in this appendix.
 </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">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Configuration" 
accesskey="3">Configuration</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>
 
@@ -6772,7 +6821,7 @@ can be safely ignored.
 <a name="Invocation"></a>
 <div class="header">
 <p>
-Next: <a href="#Configuration" accesskey="n" rel="next">Configuration</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>
+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>
@@ -6804,7 +6853,11 @@ Hyperbole&rsquo;s multi-level autonumbered hypertextual 
outliner.
 <p>To try out HyControl, Hyperbole&rsquo;s interactive frame and window control
 system, use <kbd>{C-h h s w}</kbd> for window control or <kbd>{C-h h s f}</kbd>
 for frame control.  Pressing <kbd>{t}</kbd> switches between window and
-frame control once in HyControl.
+frame control once in HyControl.  Hyperbole also binds <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.  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>
@@ -6827,6 +6880,7 @@ directory in four forms:
 <samp>man/hyperbole.texi</samp>   - source form
 </pre></div>
 
+<a name="index-C_002dh-h-d-i"></a>
 <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
@@ -6840,16 +6894,17 @@ is: 
<samp>~/.emacs.d/elpa/hyperbole-${hyperb:version}/</samp>.
 configuring Hyperbole&rsquo;s behavior.
 </p>
 <hr>
-<a name="Configuration"></a>
+<a name="Customization"></a>
 <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="Configuration-1"></a>
-<h3 class="section">B.3 Configuration</h3>
+<a name="Customization-1"></a>
+<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>
 <p>Major Hyperbole user options may be set from the Customize submenu
 below the Hyperbole menubar menu, as seen here.
 </p>
@@ -6860,12 +6915,12 @@ below the Hyperbole menubar menu, as seen here.
 
 <p>Alternatively, the minibuffer-based menu, Cust/ may be used.
 </p>
-<a name="index-customization"></a>
+<a name="index-customization-1"></a>
 <a name="index-option-setting"></a>
 <a name="index-variable-setting"></a>
 <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 configuration options that may be 
+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
 Emacs Manual</cite>.
@@ -6874,6 +6929,8 @@ 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>
 <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,
@@ -6882,32 +6939,78 @@ 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>
-<p>The following sections discuss the configuration options most likely to
+<a name="index-customize_002dvariable"></a>
+<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
+and press <tt class="key">RET</tt> to edit it.
+</p>
+<p>The following sections discuss the customization options most likely to
 be of interest to users.
 </p>
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a 
href="#Using-URLs-with-Find_002dFile" accesskey="1">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="#Web-Search-Engines" 
accesskey="1">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="#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="#Using-URLs-with-Find_002dFile" accesskey="2">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="#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="#Internal-Viewers" 
accesskey="3">Internal Viewers</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="4">Invisible Text Searches</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#External-Viewers" 
accesskey="4">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="5">Link Variable Substitution</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Invisible-Text-Searches" 
accesskey="5">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="6">Button Colors</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Link-Variable-Substitution" 
accesskey="6">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="#Button-Colors" 
accesskey="7">Button Colors</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
 </td></tr>
 </table>
 
 <hr>
+<a name="Web-Search-Engines"></a>
+<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="#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="Web-Search-Engines-1"></a>
+<h4 class="subsection">B.3.1 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>
+<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
+the search results.  You can change which browser is used
+with <kbd>{C-h h c w}</kbd>, the Cust/Web-Search menu. Advanced users can
+change the search engines listed in the Find/Web menu with <kbd>{M-x
+customize-variable <span class="key">RET</span> hyperbole-web-search-alist 
<span class="key">RET</span>}</kbd>.
+Changes are automatically reflected in the Hyperbole menus once applied.
+Remember each search engine name must begin with a unique letter and
+each URL must have a %s format field indicating where to place the web
+search term when a search is performed.
+</p>
+<p>Advanced users can
+change the search engines listed by editing the option,
+<code>hyperbole-web-search-alist</code>, with <kbd>{M-x customize-variable
+<span class="key">RET</span> hyperbole-web-search-alist <span 
class="key">RET</span>}</kbd>.  Remember each search engine name
+must begin with a unique letter and each URL must have a %s format
+field indicating where to place the web search term when a search is
+performed.
+</p>
+<hr>
 <a name="Using-URLs-with-Find_002dFile"></a>
 <div class="header">
 <p>
-Next: <a href="#Internal-Viewers" accesskey="n" rel="next">Internal 
Viewers</a>, Previous: <a href="#Configuration" accesskey="p" 
rel="prev">Configuration</a>, Up: <a href="#Configuration" accesskey="u" 
rel="up">Configuration</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>
+Next: <a href="#Internal-Viewers" accesskey="n" rel="next">Internal 
Viewers</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.1 Using URLs with Find-File</h4>
+<h4 class="subsection">B.3.2 Using URLs with Find-File</h4>
 
 <a name="index-find_002dfile"></a>
 <a name="index-find_002dfile_002c-browsing-URLs"></a>
@@ -6950,10 +7053,10 @@ find-file URLs.
 <a name="Internal-Viewers"></a>
 <div class="header">
 <p>
-Next: <a href="#External-Viewers" accesskey="n" rel="next">External 
Viewers</a>, Previous: <a href="#Using-URLs-with-Find_002dFile" accesskey="p" 
rel="prev">Using URLs with Find-File</a>, Up: <a href="#Configuration" 
accesskey="u" rel="up">Configuration</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>
+Next: <a href="#External-Viewers" accesskey="n" rel="next">External 
Viewers</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="Internal-Viewers-1"></a>
-<h4 class="subsection">B.3.2 Internal Viewers</h4>
+<h4 class="subsection">B.3.3 Internal Viewers</h4>
 <a name="index-hpath_003ainternal_002ddisplay_002dalist"></a>
 <a name="index-file-display-function"></a>
 <a name="index-display-function"></a>
@@ -6994,10 +7097,10 @@ external, window-system specific viewers.
 <a name="External-Viewers"></a>
 <div class="header">
 <p>
-Next: <a href="#Invisible-Text-Searches" accesskey="n" rel="next">Invisible 
Text Searches</a>, Previous: <a href="#Internal-Viewers" accesskey="p" 
rel="prev">Internal Viewers</a>, Up: <a href="#Configuration" accesskey="u" 
rel="up">Configuration</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>
+Next: <a href="#Invisible-Text-Searches" accesskey="n" rel="next">Invisible 
Text Searches</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>
+<h4 class="subsection">B.3.4 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>
@@ -7042,10 +7145,10 @@ within <code>hpath:get-external-display-alist</code>.
 <a name="Invisible-Text-Searches"></a>
 <div class="header">
 <p>
-Next: <a href="#Link-Variable-Substitution" accesskey="n" rel="next">Link 
Variable Substitution</a>, Previous: <a href="#External-Viewers" accesskey="p" 
rel="prev">External Viewers</a>, Up: <a href="#Configuration" accesskey="u" 
rel="up">Configuration</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>
+Next: <a href="#Link-Variable-Substitution" accesskey="n" rel="next">Link 
Variable Substitution</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="Invisible-Text-Searches-1"></a>
-<h4 class="subsection">B.3.4 Invisible Text Searches</h4>
+<h4 class="subsection">B.3.5 Invisible Text Searches</h4>
 
 <a name="index-menu-item_002c-Isearch_002dInvisible"></a>
 <a name="index-menu-item_002c-Toggle_002dIsearch_002dInvisible"></a>
@@ -7065,10 +7168,10 @@ only visible text.
 <a name="Link-Variable-Substitution"></a>
 <div class="header">
 <p>
-Next: <a href="#Button-Colors" accesskey="n" rel="next">Button Colors</a>, 
Previous: <a href="#Invisible-Text-Searches" accesskey="p" rel="prev">Invisible 
Text Searches</a>, Up: <a href="#Configuration" accesskey="u" 
rel="up">Configuration</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>
+Next: <a href="#Button-Colors" accesskey="n" rel="next">Button Colors</a>, 
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="Link-Variable-Substitution-1"></a>
-<h4 class="subsection">B.3.5 Link Variable Substitution</h4>
+<h4 class="subsection">B.3.6 Link Variable Substitution</h4>
 <a name="index-hpath_003avariables"></a>
 <a name="index-environment-variables"></a>
 <a name="index-Emacs-Lisp-variables"></a>
@@ -7096,10 +7199,10 @@ you in deciding whether or not to modify the value of
 <a name="Button-Colors"></a>
 <div class="header">
 <p>
-Previous: <a href="#Link-Variable-Substitution" accesskey="p" rel="prev">Link 
Variable Substitution</a>, Up: <a href="#Configuration" accesskey="u" 
rel="up">Configuration</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>
+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="Configuring-Button-Colors"></a>
-<h4 class="subsection">B.3.6 Configuring Button Colors</h4>
+<h4 class="subsection">B.3.7 Configuring Button Colors</h4>
 <a name="index-XEmacs-support"></a>
 <a name="index-Emacs-support"></a>
 <a name="index-button-highlighting-1"></a>
@@ -7167,6 +7270,21 @@ global Hyperbole keys.
 <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>
+</dd>
+<dt><kbd>{C-c /}</kbd></dt>
+<dd><p>Search the Web: Display a minibuffer menu of web search engines.  Once
+an engine is selected, prompt for a search term and perform the
+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-key-binding_002c-C_002dc-C_002dr"></a>
 <a name="index-C_002dc-C_002dr-1"></a>
 </dd>
@@ -7195,17 +7313,17 @@ access to many Hyperbole commands.
 <a name="index-C_002dh-A-1"></a>
 </dd>
 <dt><kbd>{C-h A}</kbd></dt>
-<dd><p>Action Key Help: Shows what the Action Key will do in the current 
context.
+<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>
 </p></dd>
 <dt><kbd>{C-u C-h A}</kbd></dt>
-<dd><p>Assist Key Help: Shows what the Assist Key will do in the same context.
+<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>
 </dd>
 <dt><kbd>{C-c <span class="key">RET</span>}</kbd></dt>
-<dd><p>Mark Things: Marks larger and larger synctactical units in a buffer
+<dd><p>Mark Things: Mark larger and larger synctactical units in a buffer
 when invoked repeatedly, showing in the minibuffer the type of unit
 marked each time.  For example, if on an opening brace at the start of
 a C, Java or Javascript function, this marks the whole function.  This
@@ -7216,7 +7334,7 @@ Hyperbole.
 <a name="index-C_002dc-_002e-2"></a>
 </dd>
 <dt><kbd>{C-c .}</kbd></dt>
-<dd><p>Delimited Thing Jump: Jumps between the start and end of a delimited
+<dd><p>Delimited Thing Jump: Jump between the start and end of a delimited
 thing, which may be an HTML tag pair.  This binding is made only if
 the key is not bound prior to loading Hyperbole.  See <a 
href="#Smart-Key-Thing-Selection">Smart Key Thing Selection</a>, for more 
information.
 </p></dd>
@@ -7395,10 +7513,10 @@ If &lt; 1, print all visible cells in current view
 <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>
 </dd>
 <dt><code>kotl-mode:center-line  <kbd>{M-s}</kbd></code></dt>
-<dd><a name="index-fill_002dcolumn"></a>
-<p>Center the line point is on, within the width specified by 
<code>fill-column</code>.
+<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>
@@ -8448,20 +8566,26 @@ Next: <a href="#Smart-Key-_002d-Smart-Menus" 
accesskey="n" rel="next">Smart Key
 <a name="index-scrolling-1"></a>
 <a name="index-click_002c-end-of-line"></a>
 <a name="index-end-of-line-click"></a>
+<a name="index-action_002dkey_002deol_002dfunction"></a>
+<a name="index-assist_002dkey_002deol_002dfunction"></a>
 <div class="format">
 <pre class="format">When pressed at the end of a line but not the end of a 
buffer:
   ACTION KEY
-     Scrolls up according to the value of 
&lsquo;smart-scroll-proportional&rsquo;.
-     If &lsquo;smart-scroll-proportional&rsquo; is nil or if point is on the 
top
-     window line, scrolls up (forward) a windowful.  Otherwise, tries to
-     bring the current line to the top of the window.  Leaves point at
-     the end of the line and returns t if scrolled, nil if not.
+     Calls the function given by <code>action-key-eol-function</code> whose
+     default value is <code>smart-scroll-up</code>.  This scrolls up according
+     to the value of <code>smart-scroll-proportional</code>.  If
+     <code>smart-scroll-proportional</code> is nil or if point is on the top
+     window line, it scrolls up (forward) a windowful.  Otherwise, it tries
+     to bring the current line to the top of the window, leaving point at
+     the end of the line and returning t if scrolled, nil if not.
   ASSIST KEY
-     Scrolls down according to the value of 
&lsquo;smart-scroll-proportional&rsquo;.
-     If &lsquo;smart-scroll-proportional&rsquo; is nil or if point is on the 
bottom
-     window line, scrolls down (backward) a windowful.  Otherwise, tries
-     to bring the current line to the bottom of the window.  Leaves
-     point at the end of the line and returns t if scrolled, nil if not.
+     Calls the function given by <code>assist-key-eol-function</code> whose
+     default value is <code>smart-scroll-down</code>.  This scrolls down 
according
+     to the value of <code>smart-scroll-proportional</code>.  If
+     <code>smart-scroll-proportional</code> is nil or if point is on the bottom
+     window line, it scrolls down (backward) a windowful.  Otherwise, it tries
+     to bring the current line to the bottom of the window, leaving point at
+     the end of the line and returning t if scrolled, nil if not.
 </pre></div>
 
 <hr>
@@ -10083,6 +10207,9 @@ Next: <a href="#Function" accesskey="n" 
rel="next">Function</a>, Previous: <a hr
 <tr><td></td><td valign="top"><a href="#index-C_002dc-_002e"><code>C-c 
.</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-Thing-Selection">Smart Key Thing Selection</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dc-_002e-1"><code>C-c 
.</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Moving-Around">Moving Around</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dc-_002e-2"><code>C-c 
.</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dc-_002f"><code>C-c 
/</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dc-_002f-1"><code>C-c 
/</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dc-_002f-2"><code>C-c 
/</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dc-_003c"><code>C-c 
&lt;</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Moving-Around">Moving Around</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dc-_003e"><code>C-c 
&gt;</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Moving-Around">Moving Around</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dc-_0040"><code>C-c 
@</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Relocating-and-Copying">Relocating and Copying</a></td></tr>
@@ -10134,12 +10261,20 @@ Next: <a href="#Function" accesskey="n" 
rel="next">Function</a>, Previous: <a hr
 <tr><td></td><td valign="top"><a href="#index-C_002dh-A-1"><code>C-h 
A</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dh-h"><code>C-h 
h</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dh-h-1"><code>C-h 
h</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dh-h-c-a"><code>C-h h c 
a</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Customization">Customization</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dh-h-c-d"><code>C-h h c 
d</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-Debugging">Smart Key Debugging</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dh-h-c-w"><code>C-h h c 
w</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Web-Search-Engines">Web Search Engines</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dh-h-d-d"><code>C-h h d 
d</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Hyperbole-Overview">Hyperbole Overview</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dh-h-d-i"><code>C-h h d 
i</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Invocation">Invocation</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dh-h-f-w"><code>C-h h f 
w</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Web-Search-Engines">Web Search Engines</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dh-h-f-w-1"><code>C-h h f 
w</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dh-h-g"><code>C-h h 
g</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-Buttons">Global Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dh-h-i-a"><code>C-h h i 
a</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dh-h-k-e"><code>C-h h k 
e</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Koutliner">Koutliner</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dh-h-m-c"><code>C-h h m 
c</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-Debugging">Smart Key Debugging</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dh-h-m-r"><code>C-h h m 
r</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-Debugging">Smart Key Debugging</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dh-h-s-f"><code>C-h h s 
f</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dh-h-s-w"><code>C-h h s 
w</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-C_002dh-t"><code>C-h 
t</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Hyperbole-Overview">Hyperbole Overview</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-C_002dj"><code>C-j</code></a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Adding-and-Killing">Adding and Killing</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-C_002dM_002dh"><code>C-M-h</code></a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Hiding-and-Showing">Hiding and Showing</a></td></tr>
@@ -10228,7 +10363,7 @@ Next: <a href="#Function" accesskey="n" 
rel="next">Function</a>, Previous: <a hr
 <tr><td colspan="4"> <hr></td></tr>
 <tr><th><a name="Key-Index_ky_letter-Q">Q</a></th><td></td><td></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-q"><code>q</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#index-q-1"><code>q</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-q-or-ESC"><code>q or <span 
class="key">ESC</span></code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
 <tr><td colspan="4"> <hr></td></tr>
 <tr><th><a name="Key-Index_ky_letter-R">R</a></th><td></td><td></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-right"><code>right</code></a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#HyControl">HyControl</a></td></tr>
@@ -10272,9 +10407,12 @@ Next: <a href="#Function" accesskey="n" 
rel="next">Function</a>, Previous: <a hr
 <tr><td></td><td valign="top"><a href="#index-screen_002c-b"><code>screen, 
b</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-screen_002c-c"><code>screen, 
c</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-screen_002c-C_002dc-_005c"><code>screen, C-c 
\</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-screen_002c-C_002dh-h-s-f"><code>screen, C-h h s 
f</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-screen_002c-C_002dh-h-s-w"><code>screen, C-h h s 
w</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-screen_002c-d"><code>screen, 
d</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-screen_002c-D"><code>screen, 
D</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-screen_002c-down"><code>screen, 
down</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-screen_002c-ESC"><code>screen, 
<span class="key">ESC</span></code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-screen_002c-f"><code>screen, 
f</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-screen_002c-h"><code>screen, 
h</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-screen_002c-H"><code>screen, 
H</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
@@ -10446,6 +10584,7 @@ Next: <a href="#Concept-Index" accesskey="n" 
rel="next">Concept Index</a>, Previ
 <tr><td></td><td valign="top"><a 
href="#index-action_002dkey"><code>action-key</code></a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-Bindings">Smart Key Bindings</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-action_002dkey_002ddefault_002dfunction">action-key-default-function</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-Operations">Smart Key Operations</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-action_002dkey_002ddefault_002dfunction-1">action-key-default-function</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-_002d-Default-Context">Smart Key - Default 
Context</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-action_002dkey_002deol_002dfunction">action-key-eol-function</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-_002d-Smart-Scrolling">Smart Key - Smart 
Scrolling</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-action_002dkey_002dminibuffer_002dfunction">action-key-minibuffer-function</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Minibuffer-Menu-Activation">Minibuffer Menu 
Activation</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-action_002dkey_002dmodeline"><code>action-key-modeline</code></a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-Modeline">Smart Key Modeline</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-action_002dkey_002dmodeline_002dfunction">action-key-modeline-function</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-Modeline">Smart Key Modeline</a></td></tr>
@@ -10489,6 +10628,7 @@ Next: <a href="#Concept-Index" accesskey="n" 
rel="next">Concept Index</a>, Previ
 <tr><td></td><td valign="top"><a 
href="#index-assist_002dkey"><code>assist-key</code></a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-Bindings">Smart Key Bindings</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-assist_002dkey_002ddefault_002dfunction">assist-key-default-function</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-Operations">Smart Key Operations</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-assist_002dkey_002ddefault_002dfunction-1">assist-key-default-function</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-_002d-Default-Context">Smart Key - Default 
Context</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-assist_002dkey_002deol_002dfunction">assist-key-eol-function</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-_002d-Smart-Scrolling">Smart Key - Smart 
Scrolling</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-assist_002dkey_002dminibuffer_002dfunction">assist-key-minibuffer-function</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Minibuffer-Menu-Activation">Minibuffer Menu 
Activation</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-assist_002dkey_002dmodeline"><code>assist-key-modeline</code></a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-Modeline">Smart Key Modeline</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-assist_002dkey_002dmodeline_002dfunction">assist-key-modeline-function</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-Modeline">Smart Key Modeline</a></td></tr>
@@ -10511,7 +10651,8 @@ Next: <a href="#Concept-Index" accesskey="n" 
rel="next">Concept Index</a>, Previ
 <tr><td></td><td valign="top"><a href="#index-class_002c-hbut">class, 
hbut</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-class_002c-hbut-1">class, 
hbut</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Operational-and-Storage-Formats">Operational and Storage 
Formats</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-class_002c-htype">class, 
htype</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Creating-Types">Creating Types</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#index-customize_002dbrowse"><code>customize-browse</code></a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Configuration">Configuration</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-customize_002dbrowse"><code>customize-browse</code></a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Customization">Customization</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-customize_002dvariable"><code>customize-variable</code></a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Customization">Customization</a></td></tr>
 <tr><td colspan="4"> <hr></td></tr>
 <tr><th><a name="Function_fn_letter-D">D</a></th><td></td><td></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-defact"><code>defact</code></a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Action-Type-Creation">Action Type Creation</a></td></tr>
@@ -10643,6 +10784,8 @@ Next: <a href="#Concept-Index" accesskey="n" 
rel="next">Concept Index</a>, Previ
 <tr><td></td><td valign="top"><a 
href="#index-hyperbole-1"><code>hyperbole</code></a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Smart-Key-_002d-Default-Context">Smart Key - Default 
Context</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-hyperbole_002dinit_002dhook">hyperbole-init-hook</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Hook-Variables">Hook Variables</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-hyperbole_002dpopup_002dmenu"><code>hyperbole-popup-menu</code></a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-_002d-Default-Context">Smart Key - Default 
Context</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-hyperbole_002dweb_002dsearch_002dalist">hyperbole-web-search-alist</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Web-Search-Engines">Web Search Engines</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-hyperbole_002dweb_002dsearch_002dbrowser_002dfunction">hyperbole-web-search-browser-function</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-hyrolo_002dadd"><code>hyrolo-add</code></a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Rolo-Menu">Rolo Menu</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-hyrolo_002dadd_002dhook">hyrolo-add-hook</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Rolo-Keys">Rolo Keys</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-hyrolo_002dadd_002dhook-1">hyrolo-add-hook</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Hook-Variables">Hook Variables</a></td></tr>
@@ -10704,6 +10847,7 @@ Next: <a href="#Concept-Index" accesskey="n" 
rel="next">Concept Index</a>, Previ
 <tr><td></td><td valign="top"><a href="#index-ibtypes-klink"><code>ibtypes 
klink</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-ibtypes-mail_002daddress"><code>ibtypes 
mail-address</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-ibtypes-man_002dapropos"><code>ibtypes 
man-apropos</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-ibtypes-markdown_002dinternal_002dlink"><code>ibtypes 
markdown-internal-link</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-ibtypes-org_002dmode"><code>ibtypes 
org-mode</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-ibtypes-patch_002dmsg"><code>ibtypes 
patch-msg</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-ibtypes-pathname"><code>ibtypes 
pathname</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
@@ -11173,7 +11317,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a 
href="#index-completion">completion</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-completion-1">completion</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Smart-Key-Argument-Selection">Smart Key Argument 
Selection</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-completion-2">completion</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Smart-Key-_002d-Argument-Completion">Smart Key - 
Argument Completion</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#index-configuration">configuration</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Configuration">Configuration</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-configuration">configuration</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Customization">Customization</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-context">context</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-context_002dsensitive-help">context-sensitive 
help</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-Operations">Smart Key Operations</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-control-key-modifier">control 
key modifier</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-Modifiers">Smart Key Modifiers</a></td></tr>
@@ -11191,11 +11335,13 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a 
href="#index-cross_002dreference_002c-Texinfo">cross-reference, 
Texinfo</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-Cscope">Cscope</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-ctags-entry">ctags 
entry</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#index-customization">customization</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Configuration">Configuration</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-customization">customization</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Customization">Customization</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-customization-1">customization</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Customization">Customization</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-customize">customize</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-customize_002c-rolo-additions">customize, rolo 
additions</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Rolo-Keys">Rolo 
Keys</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-customize_002c-rolo-datestamps">customize, rolo 
datestamps</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Rolo-Keys">Rolo 
Keys</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-customize_002c-rolo-edits">customize, rolo 
edits</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Rolo-Keys">Rolo 
Keys</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-customizing-web-search-menu">customizing web search 
menu</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Web-Search-Engines">Web 
Search Engines</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-cut-region">cut 
region</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-Thing-Selection">Smart Key Thing Selection</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-cutoff-lines">cutoff 
lines</a>:</td><td>&nbsp;</td><td valign="top"><a href="#View-Specs">View 
Specs</a></td></tr>
 <tr><td colspan="4"> <hr></td></tr>
@@ -11310,6 +11456,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a 
href="#index-gomoku">gomoku</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-_002d-Gomoku-Game">Smart Key - Gomoku Game</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-grep">grep</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-Grep">Grep</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-grep-files">grep 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-groupware">groupware</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Glossary">Glossary</a></td></tr>
 <tr><td colspan="4"> <hr></td></tr>
 <tr><th><a name="Concept-Index_cp_letter-H">H</a></th><td></td><td></td></tr>
@@ -11498,6 +11645,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a href="#index-man-page-references">man page 
references</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-_002d-Man-Pages">Smart Key - Man Pages</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-man-pages">man 
pages</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-margin">margin</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Filling">Filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-markdown-link">markdown 
link</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-markup-pair">markup 
pair</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Thing-Selection">Thing 
Selection</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-markup-pair-1">markup 
pair</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited 
Things</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-match-lines">match 
lines</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
@@ -11506,12 +11654,14 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a href="#index-menu-item_002c-Act">menu item, 
Act</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-menu-item_002c-Activate_002dButton_002dat_002dPoint">menu item, 
Activate-Button-at-Point</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-menu-item_002c-Back_002dto_002dPrior_002dLocation">menu item, 
Back-to-Prior-Location</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-menu-item_002c-Cust_002fAll_002dOptions">menu item, 
Cust/All-Options</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Customization">Customization</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-menu-item_002c-Cust_002fDebug_002dToggle">menu item, 
Cust/Debug-Toggle</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-Debugging">Smart Key Debugging</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts">menu item, 
Cust/Msg-Toggle-Ebuts</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Buttons-in-Mail">Buttons in Mail</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts-1">menu item, 
Cust/Msg-Toggle-Ebuts</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Buttons-in-News">Buttons in News</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-menu-item_002c-Doc_002fSmartKeys">menu item, 
Doc/SmartKeys</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-Operations">Smart Key Operations</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-menu-item_002c-Find_002dFile_002dAccepts_002dURLs">menu item, 
Find-File-Accepts-URLs</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Using-URLs-with-Find_002dFile">Using URLs with Find-File</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-menu-item_002c-Find_002dFile_002dURLs">menu item, 
Find-File-URLs</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Using-URLs-with-Find_002dFile">Using URLs with Find-File</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-menu-item_002c-FramesControl">menu item, 
FramesControl</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyControl">HyControl</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu-item_002c-GrepFile">menu 
item, GrepFile</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu-item_002c-Hist">menu item, 
Hist</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-menu-item_002c-Ibut_002fAct">menu item, 
Ibut/Act</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
@@ -11532,13 +11682,17 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a href="#index-menu_002c-Butfile">menu, 
Butfile</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu_002c-Button_002dFile">menu, 
Button-File</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu_002c-Cust">menu, 
Cust</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-menu_002c-Cust-1">menu, 
Cust</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Configuration">Configuration</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-menu_002c-Cust-1">menu, 
Cust</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Customization">Customization</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-menu_002c-Cust_002fWeb_002dSearch">menu, 
Cust/Web-Search</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Web-Search-Engines">Web Search Engines</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu_002c-Customize">menu, 
Customize</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu_002c-Doc">menu, 
Doc</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu_002c-Documentation">menu, 
Documentation</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu_002c-EBut">menu, 
EBut</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-menu_002c-Explicit_002dButton">menu, 
Explicit-Button</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu_002c-Find">menu, 
Find</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-menu_002c-Find_002fWeb">menu, 
Find/Web</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-menu_002c-Find_002fWeb-1">menu, 
Find/Web</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Web-Search-Engines">Web Search Engines</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-menu_002c-Find_002fWeb-2">menu, 
Find/Web</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu_002c-Gbut">menu, 
Gbut</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Global-Buttons">Global 
Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu_002c-Gbut-1">menu, 
Gbut</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-menu_002c-Global_002dButton">menu, 
Global-Button</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-Buttons">Global Buttons</a></td></tr>
@@ -11560,6 +11714,9 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a href="#index-menu_002c-top_002dlevel">menu, 
top-level</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu_002c-top_002dlevel-1">menu, 
top-level</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Minibuffer-Menu-Activation">Minibuffer Menu Activation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu_002c-Types">menu, 
Types</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-menu_002c-Web">menu, 
Web</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-menu_002c-Web-1">menu, 
Web</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Web-Search-Engines">Web 
Search Engines</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-menu_002c-Web-2">menu, 
Web</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-menu_002c-WinConfig">menu, 
WinConfig</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-menu_002c-Window_002dConfigurations">menu, 
Window-Configurations</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-menubar_002c-Hyperbole-menu">menubar, Hyperbole 
menu</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
@@ -11609,7 +11766,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a href="#index-obtaining-Hyperbole">obtaining 
Hyperbole</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Installation">Installation</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-online-library">online 
library</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-OO_002dBrowser">OO-Browser</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Smart-Key-_002d-The-OO_002dBrowser">Smart Key - The 
OO-Browser</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-option-setting">option 
setting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Configuration">Configuration</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-option-setting">option 
setting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Customization">Customization</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-option-settings">option 
settings</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-Org-mode">Org 
mode</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-Org-mode-1">Org 
mode</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Questions-and-Answers">Questions and Answers</a></td></tr>
@@ -11721,6 +11878,9 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a 
href="#index-scrolling-1">scrolling</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-_002d-Smart-Scrolling">Smart Key - Smart 
Scrolling</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-search">search</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-search-1">search</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Invisible-Text-Searches">Invisible Text Searches</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-search-engines-menu">search 
engines menu</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Web-Search-Engines">Web Search Engines</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-searching-the-web">searching the 
web</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-searching-the-web-1">searching 
the web</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-searching_002c-rolo">searching, 
rolo</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Rolo-Searching">Rolo 
Searching</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-selection">selection</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-Thing-Selection">Smart Key Thing Selection</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-selection_002c-menu-items">selection, menu 
items</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
@@ -11756,6 +11916,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a href="#index-Smart-Mouse-Keys">Smart Mouse 
Keys</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Smart-Mouse-Keys">Smart 
Mouse Keys</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-smart-selection">smart 
selection</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-Thing-Selection">Smart Key Thing Selection</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-social-media">social 
media</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-social-reference">social 
reference</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-source-line">source 
line</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-splitting-a-cell">splitting a 
cell</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Splitting-and-Appending">Splitting and Appending</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-stack-frame">stack 
frame</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
@@ -11828,7 +11989,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a 
href="#index-username">username</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td colspan="4"> <hr></td></tr>
 <tr><th><a name="Concept-Index_cp_letter-V">V</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#index-variable-setting">variable 
setting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Configuration">Configuration</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-variable-setting">variable 
setting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Customization">Customization</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-variables">variables</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Hook-Variables">Hook Variables</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-vector">vector</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Thing-Selection">Thing Selection</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-vector-1">vector</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited 
Things</a></td></tr>
@@ -11854,6 +12015,9 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a 
href="#index-W3">W3</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-_002d-WWW-URLs">Smart Key - WWW URLs</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-wconfig-commands">wconfig 
commands</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Window-Configurations">Window Configurations</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-web-pages_002c-displaying">web 
pages, displaying</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Using-URLs-with-Find_002dFile">Using URLs with Find-File</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-web-search">web 
search</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-web-search-menu">web search 
menu</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Web-Search-Engines">Web 
Search Engines</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-web-search-menu-1">web search 
menu</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-window-configuration-commands">window configuration 
commands</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Window-Configurations">Window Configurations</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-window-configuration-ring">window configuration 
ring</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Window-Configurations">Window Configurations</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-window-configurations">window 
configurations</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Window-Configurations">Window Configurations</a></td></tr>
diff --git a/man/hyperbole.info b/man/hyperbole.info
index f2ca177..80f16e5 100644
Binary files a/man/hyperbole.info and b/man/hyperbole.info differ
diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf
index 76f70a3..1a7fda6 100644
Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index 0e62a95..c615436 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -151,8 +151,8 @@ WITHOUT ANY WARRANTY, without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
 
 <PRE>
-Edition 6.0.1
-Printed July 27, 2016.
+Edition 6.0.2
+Printed August 9, 2016.
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -176,7 +176,7 @@ Printed July 27, 2016.
 
 @center The Everyday Hypertextual Information Manager
 
address@hidden Edition 6.0.1, July 27, 2016.
address@hidden Edition 6.0.2, August 9, 2016.
 
 @sp 2
 @noindent
@@ -200,7 +200,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 @end example
 
 @float Image,image:Sample
address@hidden Hyperbole screenshot of the Koutliner, the DEMO file and the 
Rolo}
address@hidden Hyperbole screenshot of the Koutliner, DEMO file and HyRolo}
 @center @image{im/hyperbole-cv,6in,,Sample Hyperbole Screenshot}
 @end float
 @sp 1
@@ -369,10 +369,11 @@ Setup
 
 * Installation::
 * Invocation::
-* Configuration::
+* Customization::
 
-Configuration
+Customization
 
+* Web Search Engines::
 * Using URLs with Find-File::
 * Internal Viewers::
 * External Viewers::
@@ -442,7 +443,7 @@ Smart Keyboard Keys
 @chapter Introduction
 
 This edition of the GNU Hyperbole Manual is for use with any version
-6.01 or greater of GNU Hyperbole.  Hyperbole runs atop GNU Emacs 24.3
+6.0.2 or greater of GNU Hyperbole.  Hyperbole runs atop GNU Emacs 24.3
 or higher.  It will trigger an error if your Emacs is older.
 
 This chapter summarizes the structure of the rest of the manual,
@@ -969,33 +970,32 @@ implicit button types.
 
 @table @code
 
address@hidden completion
 @findex ibtypes completion
 @cindex completion
address@hidden completion
 Inserts the completion at point into the minibuffer or the other window.
 
address@hidden hyp-source
 @findex ibtypes hyp-source
 @cindex Hyperbole report
address@hidden hyp-source
 Turns source location entries in Hyperbole reports into buttons that
 jump to the associated location.
 
address@hidden hyp-address
 @findex ibtypes hyp-address
 @cindex Hyperbole mail list
address@hidden hyp-address
 Turns a Hyperbole support/discussion e-mail address into an implicit
 button which inserts Hyperbole environment information.  This is
 useful when sending mail to a Hyperbole discussion mail list.  See
 also the documentation for @code{actypes::hyp-config}.
 
address@hidden Info-node
 @findex ibtypes Info-node
 @cindex Info node
address@hidden Info-node
 Makes "(filename)nodename" buttons display the associated Info node.
 Also makes "(filename)itemname" buttons display the associated Info
 index item.
 
address@hidden www-url
 @findex ibtypes www-url
 @cindex URL
 @cindex World-wide Web
@@ -1003,23 +1003,24 @@ index item.
 @cindex Action Key, web browsing
 @kindex Action Key, web browsing
 @vindex browse-url-browser-function
address@hidden www-url
 When not in an Emacs web browser buffer, follows any non-ftp URL (link) at 
point.
 The variable, @code{browse-url-browser-function}, may be used to customize
 which URL browser is called.  Terse URLs which lack a protocol prefix,
 like www.gnu.org, are also recognized.
 
address@hidden gnus-push-button
 @findex ibtypes gnus-push-button
 @cindex GNUS push-buttons
 @cindex hiding signatures
 @cindex signatures, hiding
address@hidden gnus-push-button
 Activates GNUS-specific article push-buttons, e.g. for hiding
 signatures.  GNUS is a news and mail reader."
 
address@hidden texinfo-ref
 @findex ibtypes texinfo-ref
 @cindex Texinfo cross-reference
 @cindex cross-reference, Texinfo
address@hidden texinfo-ref
 Displays Texinfo, Info node or help associated with Texinfo node, menu
 item, @@xref, @@pxref, @@ref, @@code or @@var at point.  If point is
 within the braces of a cross-reference, the associated Info node is
@@ -1030,32 +1031,31 @@ Texinfo node is shown.
 For @@code and @@var references, the associated documentation string
 is displayed.
 
address@hidden mail-address
 @findex ibtypes mail-address
 @cindex e-mail address
 @cindex rolo address
 @cindex address
address@hidden mail-address
 If on an e-mail address in a specific buffer type, mail to that address
 in another window. Applies to the rolo match buffer, any buffer
 attached to a file in @code{hyrolo-file-list}, or any buffer with @file{mail}
 or @file{rolo} (case-insensitive) within its name.
 
address@hidden patch-msg
 @findex ibtypes patch-msg
 @cindex patch output
address@hidden patch-msg
 Jumps to the source code associated with output from the @samp{patch}
 program.  Patch applies diffs to source code.
 
address@hidden elisp-compiler-msg
 @findex ibtypes elisp-compiler-msg
 @cindex byte compiler error
 @cindex Emacs Lisp compiler error
 @cindex compiler error
address@hidden elisp-compiler-msg
 Jumps to the source code for a definition associated with a
 byte-compiler error message.  Works when activated anywhere within an
 error line.
 
address@hidden debugger-source
 @findex ibtypes debugger-source
 @cindex gdb
 @cindex dbx
@@ -1063,68 +1063,69 @@ error line.
 @cindex stack frame
 @cindex breakpoint
 @cindex source line
address@hidden debugger-source
 Jumps 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.
 
address@hidden grep-msg
 @findex ibtypes grep-msg
 @cindex grep
 @cindex compiler error
address@hidden grep-msg
 Jumps to a line associated with grep or compilation error messages.
 Messages are recognized in any buffer.
 
address@hidden klink
 @findex ibtypes klink
 @cindex klink
 @cindex koutline link
 @cindex kcell link
address@hidden klink
 Follows a link delimited by <> to a koutline cell.
 See the documentation for @code{actypes::link-to-kotl} for valid link
 specifiers.
 
address@hidden man-apropos
 @findex ibtypes man-apropos
 @cindex UNIX manual
 @cindex man pages
 @cindex man apropos
address@hidden man-apropos
 Makes man apropos entries (from @samp{man -k}) display associated man pages 
when
 selected.
 
address@hidden rfc
 @findex ibtypes rfc
 @cindex Internet RFC
 @cindex Request For Comment
 @cindex RFC
 @cindex remote file
 @cindex ftp
address@hidden rfc
 Retrieves and displays an Internet rfc referenced at point.  Requires remote
 file access, e.g. via the Tramp library, for remote ftp retrievals.  The
 following formats are recognized: RFC822, rfc-822, and RFC 822.  The
 @code{hpath:rfc} variable specifies the location from which to retrieve
 RFCs."
 
address@hidden kbd-key
 @findex ibtypes kbd-key
 @cindex key sequence
address@hidden kbd-key
 Executes the command binding or the Hyperbole minibuffer menu action
 for a key sequence delimited by curly braces.  Key sequences should
 be in human readable form, e.g.@: @bkbd{C-x C-b}.  Formats such
 as @address@hidden will not be recognized.
 
address@hidden dir-summary
 @findex ibtypes dir-summary
 @vindex file, MANIFEST
 @vindex file, DIR
address@hidden dir-summary
 Detects filename buttons in files named "MANIFEST" or "DIR".
 Displays selected files.  Each file name 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.
 
address@hidden text-toc
 @findex ibtypes text-toc
 @cindex table of contents
 @cindex toc implicit button type
address@hidden text-toc
 Jumps to the text file section referenced by a table of contents entry
 at point.  The file name of the current buffer must contain
 @file{README} and there must be a `Table of Contents' or `Contents'
@@ -1134,64 +1135,70 @@ 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.
 
address@hidden cscope
 @findex ibtypes cscope
 @cindex C/C++ call trees
 @cindex C/C++ cross-reference
 @cindex Cscope
address@hidden cscope
 Jumps to a C/C++ source line associated with a Cscope C analyzer output line.
 Requires pre-loading of the cscope.el Lisp library available from the Emacs
 Lisp archives and the commercial cscope program available from AT&T's
 software toolchest.  Otherwise, does nothing.
 
address@hidden etags
 @findex ibtypes etags
 @cindex etags entry
 @cindex TAGS file
 @cindex tag
address@hidden etags
 Jumps to the source line associated with an etags file entry in a TAGS buffer.
 If on a tag entry line, jumps to the source line for the tag.  If on a
 pathname line or line preceding it, jumps to the associated file.
 
address@hidden ctags
 @findex ibtypes ctags
 @cindex ctags entry
 @cindex tags file
address@hidden ctags
 Jumps 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.
 InfoDock and Emacs use the newer, more flexible Etags format.
 
address@hidden id-cflow
 @findex ibtypes id-cflow
 @cindex C call tree
 @cindex call tree, C
 @cindex C flow graph
address@hidden id-cflow
 Expands or collapses C call trees and jumps to code definitions.
 Requires cross-reference tables built by the external @code{cxref}
 program.
 
address@hidden rfc-toc
 @findex ibtypes rfc-toc
 @cindex Internet RFC
 @cindex Request For Comment
 @cindex RFC
 @cindex table of contents
address@hidden rfc-toc
 Summarizes 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.
 
address@hidden annot-bib
address@hidden ibtypes markdown-internal-link
address@hidden markdown link
address@hidden markdown-internal-link
+Displays any in-file Markdown link referent.  Pathnames and urls are
+handled elsewhere.
+
 @findex ibtypes annot-bib
 @cindex bibliography
 @cindex reference
address@hidden annot-bib
 Displays annotated bibliography entries defined within the same buffer
 as the reference.  References must be delimited by square brackets, must
 begin with a word constituent character, and must not be in buffers
 whose names begin with a ` ' or `*' character.
 
address@hidden debbugs-gnu-mode
 @findex ibtypes debbugs-gnu-mode
 @cindex bug tracking
 @cindex issue tracking
address@hidden debbugs-gnu-mode
 Debbugs is a client-server issue tracker used by GNU free software
 projects, including Hyperbole, to manage issues and maintain threads
 of discussion around them.  When on a GNU Debbugs listing entry in
@@ -1199,8 +1206,8 @@ of discussion around them.  When on a GNU Debbugs listing 
entry in
 of the selected issue; an Assist Key press pretty prints the status of
 the issue to a window below the listing window.
 
address@hidden debbugs-gnu-query
 @findex ibtypes debbugs-gnu-query
address@hidden debbugs-gnu-query
 This implicit button type displays the results of a Gnu debbugs query
 based on the string at point and works in most kinds of buffers.  If
 the query includes a single id number, it displays the original message
@@ -1221,12 +1228,13 @@ Note that @emph{issue} or @emph{debbugs} may be used as 
well in place
 of @emph{bug}.  See the documentation at the top of
 the @file{hib-debbugs.el} file for detailed query format information.
 
address@hidden social-reference
 @findex ibtypes social-reference
 @cindex hashtag
 @cindex username
 @cindex social media
address@hidden social reference
 @vindex hibtypes-social-default-service
address@hidden social-reference
 Displays the web page associated with a social media hashtag or username
 reference at point.  Reference format is:
 
@@ -1245,33 +1253,32 @@ value of @code{hibtypes-social-default-service} 
(default value of
 twitter#hashtag.
 
 @c Handled instead by @xref{Smart Key - Identifier Menu Mode}.
address@hidden @item imenu-item
 @c @findex ibtypes imenu-item
 @c @vindex file, imenu.el
 @c @cindex identifier menu
 @c @cindex imenu
address@hidden @item imenu-item
 @c Displays the in-buffer definition of an identifier that point is within or 
after, else nil.
 @c This triggers only when imenu has already been used to generate an 
in-buffer item index.
 
address@hidden function-in-buffer
 @findex ibtypes function-in-buffer
 @vindex file, func-menu.el
 @cindex function menu
 @cindex func-menu
address@hidden function-in-buffer
 Returns the function name defined within this buffer that point is
 within or after, else @samp{nil}.  This triggers only when the
 func-menu library has been loaded and the current major mode is one
 handled by func-menu.
 
address@hidden pathname-line-and-column
 @cindex link, pathname line and column
 @cindex line and column
 @cindex pathname, line and column
 @findex ibtypes pathname-line-and-column
address@hidden pathname-line-and-column
 Makes a valid pathname:line-num[:column-num] pattern display the path
 at line-num and optional column-num.  Also works for remote pathnames.
 
address@hidden pathname
 @findex ibtypes pathname
 @findex hpath:at-p
 @findex hpath:find
@@ -1284,10 +1291,13 @@ at line-num and optional column-num.  Also works for 
remote pathnames.
 @cindex remote path
 @cindex filename
 @cindex link, pathname
-Makes a valid pathname display the path entry.  Also works for delimited and
-non-delimited remote pathnames and Texinfo @file{} entries.  Emacs Lisp
-library files (filenames without any directory component that end in .el and
-.elc) are looked up using the @code{load-path} directory list.
address@hidden pathname
+Makes 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.  Emacs Lisp library files (filenames without any directory
+component that end in .el and .elc) are looked up using
+the @code{load-path} directory list.
 
 @noindent
 See the function documentation for @code{hpath:at-p} for possible
@@ -1296,32 +1306,33 @@ suffixes that are added to or removed from the pathname 
when searching
 for a valid match.  See the function documentation for @code{hpath:find}
 for special file display options.
 
address@hidden org-mode
 @findex ibtypes org-mode
 @vindex browse-url-browser-function
 @cindex org-mode
 @cindex Org mode
-Follows any Org mode link at point or cycles through views of the
-outline subtree at point.  The Assist Key on an Org mode heading,
-cycles through views of the whole buffer outline and on an Org mode
-link, displays standard Hyperbole help.
address@hidden org-mode
+The Action Key follows any Org mode link at point or cycles through
+views of the outline subtree at point.  In any other context besides
+the end of a line, the Action Key will invoke the Org mode standard
+binding of @address@hidden, (org-meta-return).  The Assist Key on
+an Org mode heading, cycles through views of the whole buffer outline
+and on an Org mode link, displays standard Hyperbole help.
 
 The variable, @code{browse-url-browser-function}, customizes the url
 browser that is used for urls.  Valid values of this variable
 include @code{browse-url-default-browser}
 and @code{browse-url-generic}.
 
address@hidden doc-id
 @findex ibtypes doc-id
 @cindex online library
 @cindex document identifier
-Displays an index
-entry for a site-specific document given its id.  Ids must be
-delimited by @code{doc-id-start} and @code{doc-id-end} and must match
-the function given by @code{doc-id-p}.  This permits creation of
-catalogued online libraries.  [Note that this implicit button type is not 
installed by default.  You
-must manually configure it and load it from the
-file, @address@hidden@{hyperb:address@hidden/hib-doc-id.el}.]
address@hidden doc-id
+Displays an index entry for a site-specific document given its id.
+Ids must be delimited by @code{doc-id-start} and @code{doc-id-end} and
+must match the function given by @code{doc-id-p}.  This permits
+creation of catalogued online libraries.  (Note that this implicit
+button type is not installed by default.  You must manually configure
+it and load it from the file, 
@address@hidden@{hyperb:address@hidden/hib-doc-id.el}).
 @end table
 
 @node Button Files, Action Types, Implicit Buttons, Buttons
@@ -1395,114 +1406,114 @@ The standard action types included with Hyperbole in 
alphabetical order
 are:
 
 @table @code
address@hidden annot-bib
 @findex actypes annot-bib
address@hidden annot-bib
 Follows an internal reference KEY within an annotated bibliography,
 delimiters = [ ].
 
address@hidden completion
 @findex actypes completion
address@hidden completion
 Inserts 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 the completions window is deleted.
 
address@hidden eval-elisp
 @findex actypes eval-elisp
address@hidden eval-elisp
 Evaluates a Lisp expression LISP-EXPR.
 
address@hidden exec-kbd-macro
 @findex actypes exec-kbd-macro
address@hidden exec-kbd-macro
 Executes a KBD-MACRO REPEAT-COUNT times.  KBD-MACRO may be a string of
 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.
 
address@hidden exec-shell-cmd
 @findex actypes exec-shell-cmd
address@hidden exec-shell-cmd
 Executes a SHELL-CMD string asynchronously.  Optional non-nil second
 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.
 
address@hidden exec-window-cmd
 @findex actypes exec-window-cmd
address@hidden exec-window-cmd
 Asynchronously executes an external window-based SHELL-CMD string.
 
address@hidden function-in-buffer
 @findex actypes function-in-buffer
address@hidden function-in-buffer
 Displays the definition of function NAME found at POS in the current buffer.
 
address@hidden hyp-config
 @findex actypes hyp-config
address@hidden hyp-config
 Inserts Hyperbole configuration and debugging information at the end
 of the current buffer or within optional OUT-BUF.
 
address@hidden hyp-request
 @findex actypes hyp-request
address@hidden hyp-request
 Inserts help for composing a Hyperbole support/discussion message into
 the current buffer or the optional OUT-BUF.
 
address@hidden hyp-source
 @findex actypes hyp-source
address@hidden hyp-source
 Displays a buffer or file from a line beginning with
 @code{hbut:source-prefix}.
 
address@hidden kbd-key
 @findex actypes kbd-key
address@hidden kbd-key
 Executes the function binding for KEY-SEQUENCE, delimited by @address@hidden
 Returns @samp{t} if a KEY-SEQUENCE has a binding, else @samp{nil}.
 
 @cindex link action types
address@hidden link-to-buffer-tmp
 @findex actypes link-to-buffer-tmp
address@hidden link-to-buffer-tmp
 Displays a BUFFER.  This type of link generally can
 only be used within a single editor session.  Use @code{link-to-file}
 instead for a permanent link.
 
address@hidden link-to-directory
 @findex actypes link-to-directory
address@hidden link-to-directory
 Displays a DIRECTORY in Dired mode.
 
address@hidden link-to-doc
 @findex actypes link-to-doc
address@hidden link-to-doc
 Displays 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}, an error is
 signalled.
 
address@hidden link-to-ebut
 @findex actypes link-to-ebut
address@hidden link-to-ebut
 Performs an action given by another button, specified by KEY and KEY-FILE.
 
address@hidden link-to-elisp-doc
 @findex actypes link-to-elisp-doc
address@hidden link-to-elisp-doc
 Displays the documentation for FUNC-SYMBOL.
 
address@hidden link-to-file
 @findex actypes link-to-file
address@hidden link-to-file
 Displays file given by PATH scrolled to optional POINT.  With POINT,
 buffer is displayed with POINT at window top.
 
address@hidden link-to-file-line
 @findex actypes link-to-file-line
address@hidden link-to-file-line
 Displays a file given by PATH scrolled to LINE-NUM.
 
address@hidden link-to-Info-index-item
 @findex actypes link-to-Info-index-item
address@hidden link-to-Info-index-item
 Displays an Info index ITEM cross-reference.
 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."
 
address@hidden link-to-Info-node
 @findex actypes link-to-Info-node
address@hidden link-to-Info-node
 Displays an Info NODE.  NODE must be a string of the form
 (filename)nodename.  During button creation, completion for both
 filename and nodename is available.  Filename may be given without the
 .info suffix.
 
address@hidden link-to-kcell
 @findex actypes link-to-kcell
 @findex kcell:ref-to-id
address@hidden link-to-kcell
 Displays a Hyperbole outline cell, given by FILE and CELL-REF, at the
 top of a window.  See the documentation for @code{(kcell:ref-to-id)} for
 valid CELL-REF formats.
@@ -1511,8 +1522,8 @@ valid CELL-REF formats.
 If FILE is @samp{nil}, the current buffer is used.  If CELL-REF is
 @samp{nil}, the first cell in the view is shown.
 
address@hidden link-to-kotl
 @findex actypes link-to-kotl
address@hidden link-to-kotl
 Displays at the top of a window the referent pointed to by LINK.
 LINK may be of any of the following forms, with or without delimiters:
 @example
@@ -1525,68 +1536,75 @@ LINK may be of any of the following forms, with or 
without delimiters:
 See the documentation for @code{(kcell:ref-to-id)} for valid cell-ref
 formats.
 
address@hidden link-to-mail
 @findex actypes link-to-mail
address@hidden link-to-mail
 Displays a mail message with MAIL-MSG-ID from optional MAIL-FILE.  See
 the documentation for the variable @code{hmail:init-function} for
 information on how to specify the mail reader to use.
 
address@hidden link-to-regexp-match
 @findex actypes link-to-regexp-match
address@hidden link-to-regexp-match
 Finds REGEXP's Nth occurrence in SOURCE and displays the location at the
 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.
 Returns @samp{t} if found, signals an error if not.
 
address@hidden link-to-rfc
 @findex actypes link-to-rfc
address@hidden link-to-rfc
 Retrieves and displays an Internet rfc given by RFC-NUM.  RFC-NUM may be
 a string or an integer.  Requires a remote file access library, such as
 Tramp, for ftp file retrievals.
 
address@hidden link-to-string-match
 @findex actypes link-to-string-match
address@hidden link-to-string-match
 Finds STRING's Nth occurrence in SOURCE and displays the location at the
 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.
 Returns @samp{t} if found, @samp{nil} if not.
 
address@hidden link-to-texinfo-node
 @findex actypes link-to-texinfo-node
address@hidden link-to-texinfo-node
 Displays the Texinfo node with NODENAME (a string) from the current buffer.
 
address@hidden man-show
address@hidden actypes link-to-web-search
address@hidden link, web search
address@hidden web search link
address@hidden link-to-web-search
+Searches web SERVICE-NAME for SEARCH-TERM.  Uses 
@code{hyperbole-web-search-alist}
+to match each service to its search url.  Uses 
@code{hyperbole-web-search-browser-function}
+and the @code{browse-url} package to display search results.
+
 @findex actypes man-show
 @vindex sm-notify
address@hidden man-show
 Displays a man page on TOPIC, which may be of the form
 @samp{<command>(<section>}).  If using the Superman manual entry
 package, see the documentation for @code{sm-notify} to control where the
 man page is displayed.
 
address@hidden rfc-toc
 @findex actypes rfc-toc
address@hidden rfc-toc
 Computes and displays a summary of an Internet rfc in BUF-NAME.  Assumes
 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.
 
address@hidden text-toc
 @findex actypes text-toc
 @cindex table of contents
 @cindex toc action type
address@hidden text-toc
 Jumps to the text file SECTION referenced by a table of contents entry
 at point.
 
address@hidden www-url
 @findex actypes www-url
 @cindex URL
 @cindex World-wide Web
 @cindex WWW
 @vindex browse-url-browser-function
address@hidden www-url
 Follows a link given by a URL.  The variable,
 @code{browse-url-browser-function}, customizes the url browser
 that is used.  See its documentation string for details.
-
 @end table
 
 @cindex action
@@ -2588,12 +2606,13 @@ These are good places to begin experimenting with 
button creation.
 @cindex customize
 @cindex option settings
 @item Cust/
-Hyperbole option customization.  This includes whether ftp and www URLs
-are recognized by the @code{find-file} commands, where Hyperbole link
-referents are displayed, where URLs are displayed, whether date stamps
-are added to rolo entries, and whether to use proportional or windowful
-scrolling when a Smart Key is pressed at the end of a line.
address@hidden
+Hyperbole option customization.  This includes whether ftp and www
+URLs are recognized by the @code{find-file} commands, where Hyperbole
+link referents are displayed, where URLs are displayed, where web
+search results are displayed, whether date stamps are added to rolo
+entries, and whether to use proportional or windowful scrolling when a
+Smart Key is pressed at the end of a line.
address@hidden
 
 @cindex menu, KeyBindings
 @cindex key binding, menu
@@ -2627,12 +2646,13 @@ documentation on Hyperbole implicit button and action 
types.
 @cindex menu, Find
 @cindex search
 @item Find/
-Buffer and file line finding commands.  This menu brings together many
-existing line finding commands that are difficult to recall quickly
-when needed, simplifying finding and then jumping to matching lines by
-using the Action Key.  It includes commands for filtering a buffer to
-just those lines that either match or do not match a regular
-expression.
+Buffer and file line finding commands and web searching.  This menu
+brings together many existing line finding commands that are difficult
+to recall quickly when needed, simplifying finding and then jumping to
+matching lines by using the Action Key.  It includes commands for
+filtering a buffer to just those lines that either match or do not
+match a regular expression.  It also includes a submenu for quick
+access to popular web search engines.
 
 Below are each of the commands on the Find menu.
 
@@ -2640,6 +2660,7 @@ Below are each of the commands on the Find menu.
 @cindex remove lines
 @cindex save lines
 @cindex locate files
address@hidden grep files
 @cindex menu item, GrepFile
 @cindex menu item, LocateFiles
 @cindex menu item, MatchFileBuffers
@@ -2672,6 +2693,28 @@ OccurHere -        Show numbered line matches for regexp 
from this buffer.
 RemoveLines -      Following point, remove all lines that match regexp.
 @item
 SaveLines -        Following point, keep only lines that match regexp.
address@hidden menu, Find/Web
address@hidden menu, Web
address@hidden searching the web
address@hidden web search
address@hidden C-c /
address@hidden hyperbole-web-search-browser-function
address@hidden
+Web/ -             Select a search engine and term and search with them.
+                   Hyperbole binds the key @bkbd{C-c /} for quick
+                   access to this menu, if it is not already bound
+                   prior to Hyperbole's initialization.  The Cust/Web-Search
+                   menu sets the option, 
@code{hyperbole-web-search-browser-function},
+                   which determines whether web search results are displayed
+                   within Emacs or with an external web browser.  A short
+                   video introduction to the Find/Web menu may be
+                   found at @url{https://youtu.be/8lMlJed0-OM}. The
+                   Find/Web menu looks like this:
address@hidden
address@hidden
+Web>  Amazon Bing Dictionary Elisp Facebook Google Hub(git) Images
+      Maps RFCs StackOverflow Twitter Wikipedia Youtube
address@hidden smallexample
 @end itemize
 
 @cindex menu, Global-Button
@@ -2742,18 +2785,26 @@ and then simply quit HyControl and go back to work.
 
 @kindex C-c \
 @kindex screen, C-c \
address@hidden C-h h s w
address@hidden screen, C-h h s w
address@hidden C-h h s f
address@hidden screen, C-h h s f
 @cindex menu item, WindowsControl
-Hyperbole typically binds the key @bkbd{C-c \\} to invoke HyControl
-window control; otherwise, the Screen/WindowsControl minibuffer menu
-item, @bkbd{C-h h s w}, will do the same thing.
address@hidden menu item, FramesControl
+Hyperbole binds the key @bkbd{C-c \\} for quick access to HyControl's
+window control menu, if it was not already bound prior to Hyperbole's
+initialization; otherwise, the Screen/WindowsControl minibuffer menu
+item, @bkbd{C-h h s w}, will do the same thing.  To start HyControl
+with the frames menu instead, use Screen/FramesControl, @bkbd{C-h h s
+f}.
 
 @cindex submodes
 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 @bkbd{q} to quit from HyControl.  The
-key, @bkbd{t}, will always toggle between controlling frames and
-windows, the @dfn{submodes} of HyControl, with the upper left of the
-minibuffer prompt showing which type of control is active.
+your windows until you press @bkbd{q} or @address@hidden to quit from
+HyControl.  The key, @bkbd{t}, will always toggle between controlling
+frames and windows, the @dfn{submodes} of HyControl, with the upper
+left of the minibuffer prompt showing which type of control is active.
 
 @cindex numeric argument
 @cindex multiplier
@@ -2947,14 +2998,15 @@ FRAME mode zooming requires the separately available
 Toggle between WINDOW and FRAME submodes.
 
 @kindex screen, q
address@hidden q
address@hidden screen, @key{ESC}
address@hidden q or @key{ESC}
 Quit from HyControl mode and restore normal key bindings.
 @end table
 
 @sp 1
 The rest of this section goes into some technicalities about HyControl
 settings.  You may ignore it if you are not familiar with Emacs
-variables and functions.
+variables and functions or with customized Emacs.
 
 @vindex hycontrol-screen-offset-alist
 @findex hycontrol-set-screen-offsets
@@ -3026,6 +3078,7 @@ outliner is available for use.)
 
 @vindex file, EXAMPLE.kotl
 @cindex menu, Outline/Example
address@hidden C-h h k e
 This chapter expands on the information given in the @file{EXAMPLE.kotl}
 file included with Hyperbole.  Use @bkbd{C-h h k e} to display that
 file, as pictured on the following page.  It is an actual outline file
@@ -5067,7 +5120,7 @@ considered the present Hyperbole API:
 @file{hact.el}, @file{hargs.el}, @file{hbmap.el}, @file{hbut.el},
 @file{hhist.el}, @file{hmail.el}, @file{hmoccur.el}, @file{hpath.el},
 @file{htz.el}, @file{hypb.el}, @file{hyrolo.el}, @file{hyrolo-logic.el},
address@hidden andn @file{set.el}.
address@hidden and @file{set.el}.
 
 
 @noindent
@@ -5076,7 +5129,7 @@ that separate one data abstraction (class) from another.  
A line of
 dashes within a class separates public parts of the class from the
 private parts that follow the line.
 
-This API does not include the Hyperbole outliner, as it has been
+This API does not include the Hyperbole Koutliner, as it has been
 designed for interactive use, rather than programmatic extensibility.
 You are welcome, however, to study its code, below the
 @address@hidden:address@hidden/kotl/} directory.
@@ -5266,8 +5319,8 @@ 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.
 
address@hidden Global Button
 @vindex gbut:file
address@hidden Global Button
 A form of explicit button which is accessed by name rather than direct
 selection.  Global buttons are useful when one wants quick access to
 actions such as jumping to common file locations or for performing
@@ -5519,7 +5572,7 @@ invocation instructions in this appendix.
 @menu
 * Installation::
 * Invocation::
-* Configuration::
+* Customization::
 @end menu
 
 @node Installation, Invocation, Setup, Setup
@@ -5565,7 +5618,7 @@ can be safely ignored.
 @noindent
 Now read the next section on Invocation.
 
address@hidden Invocation, Configuration, Installation, Setup
address@hidden Invocation, Customization, Installation, Setup
 @section   Invocation
 
 Once Hyperbole has been installed for use at your site and loaded into
@@ -5596,7 +5649,11 @@ Hyperbole's multi-level autonumbered hypertextual 
outliner.
 To try out HyControl, Hyperbole's interactive frame and window control
 system, use @bkbd{C-h h s w} for window control or @bkbd{C-h h s f}
 for frame control.  Pressing @bkbd{t} switches between window and
-frame control once in HyControl.
+frame control once in HyControl.  Hyperbole also binds @bkbd{C-c \\}
+for quick access to HyControl's window control menu if it was not
+already bound prior to Hyperbole's initialization.  A long video
+demonstrating most of HyControl's features is available at
address@hidden://youtu.be/M3-aMh1ccJk}.
 
 @vindex Info-directory-list
 @vindex hyperb:dir
@@ -5620,6 +5677,7 @@ directory in four forms:
 @file{man/hyperbole.texi}   - source form
 @end example
 
address@hidden C-h h d i
 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.  @bkbd{C-h h d i} will let you
@@ -5634,11 +5692,12 @@ Advanced users may want to continue on to the next 
section about
 configuring Hyperbole's behavior.
 
 @page
address@hidden Configuration,  , Invocation, Setup
address@hidden   Configuration
address@hidden Customization,  , Invocation, Setup
address@hidden   Customization
 
 @cindex menu, Cust
 @cindex configuration
address@hidden customization
 Major Hyperbole user options may be set from the Customize submenu
 below the Hyperbole menubar menu, as seen here.
 
@@ -5656,7 +5715,7 @@ Alternatively, the minibuffer-based menu, Cust/ may be 
used.
 @cindex variable setting
 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 configuration options that may be 
+are many additional Hyperbole customization options that may be 
 changed with the Emacs customization interface,
 @pxref{Easy Customization,,Easy Customization Interface,emacs, the GNU
 Emacs Manual}.
@@ -5665,6 +5724,8 @@ permanently to your personal Emacs initialization file 
and are available
 in future Emacs sessions.
 
 @findex customize-browse
address@hidden menu item, Cust/All-Options
address@hidden C-h h c a
 Use Cust/All-Options @bkbd{C-h h c a} to display an expandable tree of
 customizable Hyperbole options.  Hyperbole's customizations are
 further grouped into several sub-categories, one for the Koutliner,
@@ -5673,10 +5734,17 @@ specfic option and they will appear in another window 
for editing.
 Simply follow the instructions on screen and then press the ``Apply
 and Save'' button to make any changes permanent.
 
-The following sections discuss the configuration options most likely to
address@hidden customize-variable
+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 @bkbd{M-x
+customize-variable @key{RET}} and then type the name of the variable
+and press @key{RET} to edit it.
+
+The following sections discuss the customization options most likely to
 be of interest to users.
 
 @menu
+* Web Search Engines::
 * Using URLs with Find-File::
 * Internal Viewers::
 * External Viewers::
@@ -5685,7 +5753,39 @@ be of interest to users.
 * Button Colors::
 @end menu
 
address@hidden Using URLs with Find-File, Internal Viewers, Configuration, 
Configuration
address@hidden Web Search Engines, Using URLs with Find-File, Customization, 
Customization
address@hidden Web Search Engines
+
address@hidden menu, Find/Web
address@hidden menu, Web
address@hidden menu, Cust/Web-Search
address@hidden C-h h c w
address@hidden C-h h f w
address@hidden hyperbole-web-search-alist
address@hidden search engines menu
address@hidden web search menu
address@hidden customizing web search menu
+The Find/Web menu offers quick access to major web search engines.  It
+is typically bound to @bkbd{C-c /} or if not, then @bkbd{C-h h f w} is
+always available.  Your standard web browser will be used to return
+the search results.  You can change which browser is used
+with @bkbd{C-h h c w}, the Cust/Web-Search menu. Advanced users can
+change the search engines listed in the Find/Web menu with @bkbd{M-x
+customize-variable @key{RET} hyperbole-web-search-alist @key{RET}}.
+Changes are automatically reflected in the Hyperbole menus once applied.
+Remember each search engine name must begin with a unique letter and
+each URL must have a %s format field indicating where to place the web
+search term when a search is performed.
+
+Advanced users can
+change the search engines listed by editing the option,
address@hidden, with @bkbd{M-x customize-variable
address@hidden hyperbole-web-search-alist @key{RET}}.  Remember each search 
engine name
+must begin with a unique letter and each URL must have a %s format
+field indicating where to place the web search term when a search is
+performed.
+
address@hidden Using URLs with Find-File, Internal Viewers, Web Search Engines, 
Customization
 @subsection Using URLs with Find-File
 
 @findex find-file
@@ -5725,7 +5825,7 @@ if you have the Tramp Emacs Lisp package installed; if 
you don't have
 Tramp, an error message will be displayed when you try to enable
 find-file URLs.
 
address@hidden Internal Viewers, External Viewers, Using URLs with Find-File, 
Configuration
address@hidden Internal Viewers, External Viewers, Using URLs with Find-File, 
Customization
 @subsection  Internal Viewers
 @vindex hpath:internal-display-alist
 @cindex file display function
@@ -5760,7 +5860,7 @@ available with InfoDock.
 @xref{External Viewers}, for instructions on associating file names with
 external, window-system specific viewers.
 
address@hidden External Viewers, Invisible Text Searches, Internal Viewers, 
Configuration
address@hidden External Viewers, Invisible Text Searches, Internal Viewers, 
Customization
 @subsection  External Viewers
 @findex hpath:get-external-display-alist
 @vindex hpath:external-display-alist-macos
@@ -5802,7 +5902,7 @@ On systems that have a MIME mailcap file (see
 set of external viewer associations when none are found
 within @code{hpath:get-external-display-alist}.
 
address@hidden Invisible Text Searches, Link Variable Substitution, External 
Viewers, Configuration
address@hidden Invisible Text Searches, Link Variable Substitution, External 
Viewers, Customization
 @subsection Invisible Text Searches
 
 @cindex menu item, Isearch-Invisible
@@ -5819,7 +5919,7 @@ This command toggles that setting (turns it off if a 
prefix
 argument less than or equal to 0 is given) and makes searches look at
 only visible text.
 
address@hidden Link Variable Substitution, Button Colors, Invisible Text 
Searches, Configuration
address@hidden Link Variable Substitution, Button Colors, Invisible Text 
Searches, Customization
 @subsection  Link Variable Substitution
 @vindex hpath:variables
 @cindex environment variables
@@ -5844,7 +5944,7 @@ 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}.
 
address@hidden Button Colors,  , Link Variable Substitution, Configuration
address@hidden Button Colors,  , Link Variable Substitution, Customization
 @subsection  Configuring Button Colors
 @cindex XEmacs support
 @cindex Emacs support
@@ -5902,6 +6002,19 @@ Assist Key: Invoke the Assist Key in the present context.
 HyControl: Control windows, frames and buffer display.  This binding
 is made only if the key is not bound prior to loading Hyperbole.
 
address@hidden C-c /
address@hidden C-h h f w
address@hidden menu, Find/Web
address@hidden menu, Web
address@hidden searching the web
address@hidden web search menu
address@hidden C-c /
+Search the Web: Display a minibuffer menu of web search engines.  Once
+an engine is selected, prompt for a search term and perform the
+associated search.  This binding is made only if the key is not bound
+prior to loading Hyperbole; otherwise, the Find/Web minibuffer menu
+item, @bkbd{C-h h f w}, will do the same thing.
+
 @cindex key binding, C-c C-r
 @kitem C-c C-r
 Button Rename: Rename an explicit button. This binding is made only if
@@ -5922,13 +6035,13 @@ access to many Hyperbole commands.
 @cindex key binding, C-h A
 @cindex key binding, C-u C-h A
 @kitem C-h A
-Action Key Help: Shows what the Action Key will do in the current context.
+Action Key Help: Show what the Action Key will do in the current context.
 @kitem C-u C-h A
-Assist Key Help: Shows what the Assist Key will do in the same context.
+Assist Key Help: Show what the Assist Key will do in the same context.
 
 @cindex key binding, C-c @key{RET}
 @kitem C-c @key{RET}
-Mark Things: Marks larger and larger synctactical units in a buffer
+Mark Things: Mark larger and larger synctactical units in a buffer
 when invoked repeatedly, showing in the minibuffer the type of unit
 marked each time.  For example, if on an opening brace at the start of
 a C, Java or Javascript function, this marks the whole function.  This
@@ -5937,7 +6050,7 @@ Hyperbole.
 
 @cindex key binding, C-c .
 @kitem C-c .
-Delimited Thing Jump: Jumps between the start and end of a delimited
+Delimited Thing Jump: Jump between the start and end of a delimited
 thing, which may be an HTML tag pair.  This binding is made only if
 the key is not bound prior to loading Hyperbole.  @xref{Smart Key
 Thing Selection}, for more information.
@@ -6094,8 +6207,8 @@ If < 1, print all visible cells in current view
 See also the documentation for @code{kotl-mode:cell-attributes}.
 
 @findex kotl-mode:center-line
address@hidden kotl-mode:center-line  @bkbd{M-s}
 @vindex fill-column
address@hidden kotl-mode:center-line  @bkbd{M-s}
 Center the line point is on, within the width specified by @code{fill-column}.
 This means adjusting the indentation so that it equals the distance between
 the end of the text and @code{fill-column}.
@@ -6968,21 +7081,27 @@ When over an Emacs cross-reference:
 @cindex scrolling
 @cindex click, end of line
 @cindex end of line click
address@hidden action-key-eol-function
address@hidden assist-key-eol-function
 @format
 @group
 When pressed at the end of a line but not the end of a buffer:
   ACTION KEY
-     Scrolls up according to the value of `smart-scroll-proportional'.
-     If `smart-scroll-proportional' is nil or if point is on the top
-     window line, scrolls up (forward) a windowful.  Otherwise, tries to
-     bring the current line to the top of the window.  Leaves point at
-     the end of the line and returns t if scrolled, nil if not.
+     Calls the function given by @code{action-key-eol-function} whose
+     default value is @code{smart-scroll-up}.  This scrolls up according
+     to the value of @code{smart-scroll-proportional}.  If
+     @code{smart-scroll-proportional} is nil or if point is on the top
+     window line, it scrolls up (forward) a windowful.  Otherwise, it tries
+     to bring the current line to the top of the window, leaving point at
+     the end of the line and returning t if scrolled, nil if not.
   ASSIST KEY
-     Scrolls down according to the value of `smart-scroll-proportional'.
-     If `smart-scroll-proportional' is nil or if point is on the bottom
-     window line, scrolls down (backward) a windowful.  Otherwise, tries
-     to bring the current line to the bottom of the window.  Leaves
-     point at the end of the line and returns t if scrolled, nil if not.
+     Calls the function given by @code{assist-key-eol-function} whose
+     default value is @code{smart-scroll-down}.  This scrolls down according
+     to the value of @code{smart-scroll-proportional}.  If
+     @code{smart-scroll-proportional} is nil or if point is on the bottom
+     window line, it scrolls down (backward) a windowful.  Otherwise, it tries
+     to bring the current line to the bottom of the window, leaving point at
+     the end of the line and returning t if scrolled, nil if not.
 @end group
 @end format
 
diff --git a/man/im/menu-hyperbole2.pdf b/man/im/menu-hyperbole2.pdf
deleted file mode 100644
index d926c13..0000000
Binary files a/man/im/menu-hyperbole2.pdf and /dev/null differ
diff --git a/man/version.texi b/man/version.texi
index 3295267..c78c2a1 100644
--- a/man/version.texi
+++ b/man/version.texi
@@ -1,4 +1,4 @@
address@hidden UPDATED July 27, 2016
address@hidden UPDATED-MONTH Jul 2016
address@hidden EDITION 6.0.1
address@hidden VERSION 6.0.1
address@hidden UPDATED August 9, 2016
address@hidden UPDATED-MONTH AUG 2016
address@hidden EDITION 6.0.2
address@hidden VERSION 6.0.2



reply via email to

[Prev in Thread] Current Thread [Next in Thread]