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

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

[elpa] externals/hyperbole cc77f02 13/13: Merge remote-tracking branch '


From: Stefan Monnier
Subject: [elpa] externals/hyperbole cc77f02 13/13: Merge remote-tracking branch 'hyperbole/master' into externals/hyperbole
Date: Sun, 12 May 2019 11:11:48 -0400 (EDT)

branch: externals/hyperbole
commit cc77f023334034940f787df194422b80c7d079b9
Merge: a6eb9f8 997803d
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>

    Merge remote-tracking branch 'hyperbole/master' into externals/hyperbole
---
 Changes                | 113 ++++++++++++-
 DEMO                   | 131 +++++++++++----
 HY-ABOUT               |   5 +-
 HY-NEWS                |  80 ++++++---
 HY-WHY.kotl            |  53 +++---
 Makefile               |   2 +-
 README.md              |  14 +-
 README.md.html         |  12 +-
 _hypb                  | Bin 2234 -> 4188 bytes
 hact.el                |   5 +-
 hargs.el               |  36 ++--
 hibtypes.el            |  54 +++---
 hmh.el                 |   2 +-
 hmouse-drv.el          | 111 +++++++++----
 hmouse-mod.el          |   2 +-
 hmouse-tag.el          |  37 ++++-
 hpath.el               |  81 +++++----
 hsys-org.el            |   5 +-
 hsys-www.el            |   2 +-
 htz.el                 |   2 +-
 hui-jmenu.el           |   2 +-
 hui-mouse.el           |  27 +--
 hui-select.el          |   2 +-
 hui-treemacs.el        |  49 +++---
 hui-window.el          |   9 +-
 hui-xe-but.el          |   2 +-
 hui.el                 |   2 +-
 hversion.el            |   8 +-
 hvm.el                 |   2 +-
 hypb.el                |   8 +
 hyperbole-pkg.el       |   8 -
 hyperbole.el           |  10 ++
 hyrolo-logic.el        |   2 +-
 kotl/kotl-autoloads.el |  45 ++++-
 man/hkey-help.txt      |   7 +-
 man/hyperbole.html     | 435 ++++++++++++++++++++++++++++++-------------------
 man/hyperbole.info     | Bin 490392 -> 494112 bytes
 man/hyperbole.pdf      | Bin 1264179 -> 1265402 bytes
 man/hyperbole.texi     | 220 +++++++++++++++++--------
 man/im/wgrid4x3.png    | Bin 0 -> 3854568 bytes
 man/version.texi       |   8 +-
 set.el                 |   2 +-
 smart-clib-sym         |   0
 topwin.py              |   2 +-
 44 files changed, 1086 insertions(+), 511 deletions(-)

diff --git a/Changes b/Changes
index 8b13892..7d4d658 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,112 @@
+2019-05-11  Bob Weiner  <address@hidden>
+
+* man/hyperbole.texi (External Viewers): Commented out reference to mailcap use
+    since it is presently not used (commented out in the code).
+
+* hpath.el (hpath:find): Fixed filename and path ordering error when
+    path contains a variable and a hash anchor.
+
+* DEMO (POSIX and MSWindows Paths): Added this section.
+* HY-WHY.kotl: Added a reference to that section.
+
+2019-05-09  Bob Weiner  <address@hidden>
+
+* hmouse-drv.el (hkey-drag-item):
+                (hmouse-click-to-drag-item): Added and thereby changed
+    {M-o i} to trigger an error if not on an item to drag.  This also prevent
+    Hyperbole explicit button creation from being invoked which can be
+    confusing to users.
+* DEMO (Displaying File and Buffer Items and Moving Buffers): Updated with
+    {M-o i} change.
+
+2019-05-07  Bob Weiner  <address@hidden>
+
+* hpath.el (hpath:directory-expand-alist: Added to store the reverse of
+    each WSL mount-point for when converting from mswindows-to-posix.  Set
+    in hpath:cache-mswindows-mount-points.
+           (hpath:cache-mswindows-mount-points): Downcase all mounted Windows 
paths.
+           (hpath:mswindows-path-posix-mount-alist): Added.
+
+2019-05-05  Bob Weiner  <address@hidden>
+
+* hmouse-tag.el (smart-jedi-find-file): Added.
+               (smart-python-jedi-to-definition-p): Improved to use
+    hpath:display-where to display target when possible, i.e. when the
+    emacs-jedi project accepts our pull-request that adds this feature.
+
+2019-04-22  Bob Weiner  <address@hidden>
+
+* hversion.el: Pushed BW changes for 7.0.2c test update.
+
+* hargs.el (hargs:delimited): Added exclude-regexp argument.
+* hpath.el (hpath:delimited-possible-path): Used above new argument
+   to prevent matching to strings that include string quotes.
+
+2019-04-21  Bob Weiner  <address@hidden>
+
+* man/hkey-help.txt: Added Company-mode and Treemacs entries.
+
+* hui-window.el (hmouse-alist-add-window-handlers): Renamed from 
hui-window--register.
+
+* man/hyperbole.texi (Smart Key - Company Mode): Added.
+
+2019-03-11  Bob Weiner  <address@hidden>
+
+* man/hyperbole.texi (Implicit Buttons, gitlab-reference):
+  DEMO (Gitlab (Remote) References): Added these sections.
+
+2019-02-16  Bob Weiner  <address@hidden>
+
+* hui-window.el (smart-window-of-coords): Handled null coords parameter.
+
+2019-02-10  Bob Weiner  <address@hidden>
+
+* hmouse-drv.el (hkey-drag-to): Fixed to match documentation that says will
+    create an explicit file link button if called anywhere other than on
+    a listing item.
+
+* hui-treemacs.el (smart-treemacs-modeline): Replaced old call of
+    treemacs-buffer-exists? with new calls to treemacs-current-visibility
+    and treemacs-get-local-buffer for Treemacs V2.
+
+2019-02-06  Bob Weiner  <address@hidden>
+
+* hibtypes.el (ripgrep-msg): Tightened match to ignore empty potential 
filenames
+    that matched when they were expanded to the current directory.
+
+2019-02-05  Bob Weiner  <address@hidden>
+
+* hmouse-tag.el (smart-lisp-mode-p): Removed change-log-mode.
+    (smart-lisp-at-change-log-tag-p): Added so can match
+      only to bound Elisp entities in change-log-mode with '-' in
+      the middle of their names to prevent false positives.
+  hui-mouse.el (hkey-alist): Added tightened change-log-mode handling.
+   man/hyperbole.texi (Smart Key - Lisp Source Code): Documented change.
+
+* hargs.el (hargs:delimited): Fixed that strings on lines with an odd number
+    of delimiters might fail to match.  Since strings can span lines but this
+    function matches only strings that start on the current line, when
+    start-delim and end-delim are the same and there are an odd number of
+    delimiters in the search range, assume point is within a
+    string and not between two other strings.
+    For example, with the following text and point within "DEMO", its path
+    previously was not found:
+      For each site, the links are properly maintained.  See "DEMO#Path
+      suffixes and Variables" and "DEMO#Path Prefixes".  "DEMO"
+
+* hui-treemacs.el: Deleted treemacs-mode from aw-ignored-buffers so can select
+    a Treemacs window via ace-window.
+
+2019-02-04  Bob Weiner  <address@hidden>
+
+* hui-mouse.el (smart-dired-assist): Prevented any region selection from
+    causing multiple files to be marked for deletion; we want to mark
+    only one.
+
+* hibtypes.el (annot-bib): Stopped this from activating when in org-mode to 
avert false positives.
+              (markdown-follow-inline-link-p, markdown-internal-link): Added 
ibut:label-set
+    to show a decent approximation of the button label when displaying help.
+
 2019-02-03  Bob Weiner  <address@hidden>
 
 * hversion.el: Pushed BW changes for 7.0.2b test update.
@@ -8,7 +117,7 @@
 
 * hui-treemacs.el (treemacs-version): Require v2 or higher.
 
-* hsettings.el (hyperbole-default-web-search-term-max-lines): 
+* hsettings.el (hyperbole-default-web-search-term-max-lines):
                (hyperbole-default-web-search-term): Added.
 
 * hpath.el (hpath:tramp-file-name-regexp): Added and used in hpath:remote-at-p.
@@ -47,7 +156,7 @@
     Added and called when Hyperbole is initialized, mainly to allow access to
     MSWindows network shares which would otherwise not be accessible as links
     under POSIX systems.
-           (hpath:map-plist): Added to map over property lists.
+           (hypb:map-plist): Added to map over property lists.
     Called in hpath:cache-mswindows-mount-points.
 
 2019-01-26  Bob Weiner  <address@hidden>
diff --git a/DEMO b/DEMO
index c8c8315..1d3b4a1 100644
--- a/DEMO
+++ b/DEMO
@@ -1,5 +1,7 @@
 * GNU Hyperbole Demonstration by Bob Weiner
 
+  Say thanks if you like Hyperbole: https://saythanks.io/to/rswgnu
+
     Table of Contents
     -----------------
     * Introduction
@@ -65,7 +67,7 @@ and returns here.
 
 See also the later section, <(Smart Mouse Keys)>.
 
-Now let's look at many of the things you can do with the Smart Keys.
+Now let's look at some of the things you can do with the Smart Keys.
 
 ** Table of Contents Browsing
 
@@ -139,7 +141,6 @@ 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
@@ -175,17 +176,17 @@ A unique feature of Hyperbole is the Koutliner; it is for 
outlining thoughts,
 developing requirements or listing tasks and hyperlinking them to other
 documents.
 
-The Hyperbole Koutliner produces structured, autonumbered documents composed
-of hierarchies of cells.  Each cell has two identifiers, a relative
-autonumber indicating its present position within the outline and a permanent
-identifier suitable for use within hyperlink references to the cell.
+The Hyperbole Koutliner produces multi-level, autonumbered hierarchies of
+cells.  Each cell has two identifiers, a relative autonumber indicating its
+present position within the outline and a permanent identifier suitable for
+use within hyperlink references to the cell.
 
 A demonstration of the Koutliner is found on the Hyperbole Kotl/Example menu
 entry.  {C-h h k e}, gives you an editable copy of Hyperbole's example
 Koutliner file.  This explains the Koutliner commands and lets you try them
 out as you learn.  Additional documentation can be found in
-"(hyperbole)Koutliner".  "(hyperbole)Koutliner Keys" summarizes in
-alphabetical order the Koutliner commands which are bound to keys.
+"(hyperbole)Koutliner".  "(hyperbole)Koutliner Keys" summarizes, in
+alphabetical order, the Koutliner commands which are bound to keys.
 
 
 * HyControl
@@ -258,10 +259,11 @@ action key here: {.1 % .23 @}.
 
 You can even write something like this to do the whole thing in one sequence.
 First, let's quit out of HyControl Frames mode with {q}.  Then go back to one
-window with {C-x 1}.  Now we can execute a single sequence from any buffer that
-creates our 2x3 window grid:  {C-h h s f  .1 %  .23 @  q}.  Pretty amazing,
-right?  You can separate each command by any number of spaces or even jam them
-all together: address@hidden
+window with {C-x 1}.  Now we can execute a single sequence from any buffer
+that creates our 2x3 window grid: {C-h h s f .1 % .23 @ q}.  Pretty amazing,
+right?  You can separate each command by any number of spaces or even jam
+them all together: address@hidden  Use SPC (separated by spaces) to
+include a space as part of the key sequence.
 
 A zero argument to the address@hidden command is special.  It means you want 
to display
 buffers with a particular major mode first, e.g. c-mode.  You will be
@@ -417,12 +419,13 @@ them.
 
 ** Key Sequence Buttons
 
-Any Emacs key sequence delimited with curly braces is an implicit button.
-Press the Action Key with {C-u C-p} for example and the point should move
-four lines upward.  An Assist Key press on the key sequence displays the
-documentation for its command binding, i.e. what it does.  Key sequences
-together with the arguments their commands prompt for also may be given,
-e.g. {M-x apropos RET hyperbole RET}.  Click in the braces to try it out.
+Any Emacs key sequence (or multiple sequences) delimited by curly braces is
+an implicit button.  Press the Action Key with {C-u C-p} for example and the
+point should move four lines upward.  An Assist Key press on the key sequence
+displays the documentation for its command binding, i.e. what it does.  Key
+sequences together with the arguments their commands prompt for also may be
+given, e.g. {M-x apropos RET hyperbole RET}.  Click in the braces to try it
+out.
 
 Hyperbole minibuffer menu items may also be activated as key sequences.  For
 example, {C-h h d i} displays the online browsable Info version of the
@@ -585,6 +588,37 @@ you can also use paths of the form:
 
        ftp://ftp.gnu.org/pub/
 
+*** POSIX and MSWindows Paths
+
+Hyperbole recognizes standard POSIX paths as well as typical MSWindows
+paths (both local and network shares) and can convert an in-buffer
+path between POSIX and MSWindows formats multiple times, even paths
+involving mount points.  Hyperbole even recognizes the different ways
+paths are accessed when using Windows for GNU/Linux (WSL) atop
+MSWindows, where all of these reference the same directory:
+"c:/Users", "c:\Users", "/C/Users", "/c/Users", and "/mnt/c/Users".
+
+MSWindows paths may be used within links and implicit path buttons
+just like POSIX paths, whether running Emacs under a POSIX system or
+MSWindows.  If under POSIX, a remote MSWindows path must be accessed
+through a mount point to the network share.  Hyperbole caches such
+mount points when it is first loaded.  Use {M-x
+hpath:cache-mswindows-mount-points RET} to update them if more mounts
+are made later.
+
+{M-x hpath:substitute-posix-or-mswindows-at-point RET} toggles any
+path at point between POSIX and MSWindows styles.  Bind it to a key
+for rapid path transformations.
+
+The function, `hpath:substitute-posix-or-mswindows', does the same thing
+for properly quoted path strings, for example:
+  (hpath:substitute-posix-or-mswindows "C:\\Users") yields "/mnt/c/Users"
+and
+  (hpath:substitute-posix-or-mswindows "/c/Users") yields "c:\\Users".
+
+To convert pathnames in one direction only, use the
+`hpath:mswindows-to-posix' or `hpath:posix-to-mswindows' functions.
+
 ** Internet Request For Comments (RFC) Document Browsing
 
 With Tramp, you can also retrieve and browse RFC documents used in Internet
@@ -684,6 +718,46 @@ user, project and commit hash code are all included.  The 
second and
 third versions require the setup of default values, as explained in
 the commentary near the top of "hib-social.el".
 
+Similarly, the same file above explains how to link to pull requests,
+issues, branches and tags.
+
+** Gitlab (Remote) References
+
+For software developers who use Gitlab for publishing and version control,
+Gitlab links are similar to social media links but reference specific Gitlab
+web pages.  See "#Github (Remote) References" for the basic syntax of such
+links but substitute 'gl' instead of 'gh'.
+
+Gitlab offers many more types of reference links than Github, here they are:
+
+  gl#gitlab-org/gitlab-ce/activity          Summarize user's project activity
+  gl#gitlab-org/gitlab-ce/analytics         Display user project's 
cycle_analytics
+  gl#gitlab-org/gitlab-ce/boards            Display user project's kanban-type 
issue boards
+
+  Once you set the default user and project variables, you can leave
+  them off any reference links:
+
+    (setq hibtypes-gitlab-default-user "gitlab-org")
+    (setq hibtypes-gitlab-default-project "gitlab-ce")
+
+  gl#jobs                                   Display default project's 
computing jobs
+  gl#labels                                 Display default project's issue 
categories
+  gl#members                                Display default project's staff 
list
+  gl#contributors                           Show contributor push frequency 
charts
+  gl#merge_requests or gl#pulls             Display default project's pull 
requests
+  gl#milestones                             Display default project's 
milestones status
+  gl#pages                                  Display default project's web pages
+  gl#pipelines                              List build and test sequences
+  gl#pipeline_charts                        Graphical view of pipeline run 
results across time
+  gl#schedules                              Display schedules for project 
pipelines
+  gl#snippets                               Project snippets, diffs and text 
with discussion
+
+  gl#groups                                 List all available groups of 
projects
+  gl#projects                               List all available projects
+
+  gl#milestone=38                           Show a specific project milestone
+  gl#snippet/1689487                        Show a specific project snippet
+
 ** Git (Local) References
 
 Similarly, again for software developers, git references work on local
@@ -727,7 +801,7 @@ e.g. filter a file to just lines that don't match a pattern 
(RemoveLines).
 
 ** Annotated Bibliography Buttons
 
-Annotated Bibliography references such as [FSF 16] may be embedded in any file
+Annotated Bibliography references such as [FSF 19] may be embedded in any file
 and activated with the Action Key to find the reference at the end of the file.
 Try that one by pressing between the square brackets.
 
@@ -743,7 +817,7 @@ displayed.  Test this technique with a {C-x C-f} 
(find-file) and then a {?}.
 ** Hyperbole Source Buttons
 
 If you ask for help with the Assist Key or {C-u C-h A} from within the
-[FSF 16] button, the first line of the help buffer will look like this:
+[FSF 19] button, the first line of the help buffer will look like this:
 
 @loc> "DEMO"
 
@@ -1159,13 +1233,12 @@ configured and the suggested M-o key binding is made, 
the leftmost character or
 two of each window's modeline will show the <window-id> to type to use that
 window as the drag destination. Then whenever point is on an item you want
 displayed in another window, use M-o i <window-id> and watch the magic happen.
-You can also use this to create explicit button links to other window buffers
-when in an editable buffer.  If you want to display multiple items in different
-windows, instead use the M-o t <window-id> key sequence to @emph{throw} each
-item to a different window, while leaving the same selected window.  To replace
-the selected window's buffer with that of another window, use M-o r 
<window-id>.
-To instead swap the selected window's buffer with that of another window,
-use M-o m <window-id>.  Try these commands out and they will speed your work.
+If you want to display multiple items in different windows, instead use the
+M-o t <window-id> key sequence to @emph{throw} each item to a different window,
+while leaving the same selected window.  To replace the selected window's
+buffer with that of another window, use M-o r <window-id>.  To instead swap the
+selected window's buffer with that of another window, use M-o m <window-id>.
+Try these commands out and they will speed your work.
 
 *** Cloning Windows
 
@@ -1277,7 +1350,7 @@ to dive deeper.  Read it online with the GNU Info reader 
at "(hyperbole)Top".
 
 * References
 
-[FSF 16] Free Software Foundation, Inc.  GNU Emacs Manual.  Free Software
-Foundation, Cambridge: MA, 2016.  "(emacs)Top"
+[FSF 19] Free Software Foundation, Inc.  GNU Emacs Manual.  Free Software
+Foundation, Cambridge: MA, 2019.  "(emacs)Top"
 
 * THE END
diff --git a/HY-ABOUT b/HY-ABOUT
index 72ada9c..11e2285 100644
--- a/HY-ABOUT
+++ b/HY-ABOUT
@@ -3,7 +3,10 @@
                   Designed and Written by Bob Weiner
                Maintained by Mats Lidell and Bob Weiner
                 https://www.gnu.org/software/hyperbole/
-                            Version 7.0.2b
+                            Version 7.0.3
+
+                   Say thanks if you like Hyperbole:
+                    https://saythanks.io/to/rswgnu
 
 GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is
 an efficient and programmable hypertextual information management
diff --git a/HY-NEWS b/HY-NEWS
index c1f8fbb..61e138c 100644
--- a/HY-NEWS
+++ b/HY-NEWS
@@ -25,27 +25,37 @@
       hmouse-click-to-drag-stay, hmouse-click-to-drag-to,
       hmouse-click-to-replace, hmouse-click-to-swap, hmouse-click-to-throw.
 
+    - {M-o i <window-id>} is now for use only when on a listing item such as
+      in Dired or Buffer Menu.  It no longer creates Hyperbole buttons in
+      non-item areas to avoid confusion.  Now it will just trigger an error
+      if not on a listing item.
+
   SMART (ACTION AND ASSIST) KEYS
 
     - MSWindows Paths: Hyperbole now recognizes typical MSWindows paths (both
-      local and remote).  They may be used within links and implicit path 
buttons
-      just like POSIX paths, whether running Emacs under a POSIX system or
-      MSWindows.  If under POSIX, a remote MSWindows path must be accessed 
through
-      a mount point to the network share.  Hyperbole caches such mount points 
when
-      it is loaded.  Use {M-x hpath:cache-mswindows-mount-points RET} to 
update them
-      if more mounts are made later.  See also the NEW COMMANDS section herein 
for
-      how to convert a path between POSIX and MSWINDOWS/DOS formats.
+      local and remote shares) and can convert an in-buffer path between POSIX
+      and MSWindows formats multiple times, even paths involving mount points.
+      See "DEMO#POSIX and MSWindows Paths".
+
+      MSWindows paths may be used within links and implicit path
+      buttons just like POSIX paths, whether running Emacs under a POSIX
+      system or MSWindows.  If under POSIX, a remote MSWindows path must be
+      accessed through a mount point to the network share.  Hyperbole caches
+      such mount points when it is loaded.  Use {M-x
+      hpath:cache-mswindows-mount-points RET} to update them if more mounts
+      are made later.  See also the NEW COMMANDS section herein for how to
+      convert a path between POSIX and MSWindows formats.
 
     - GitLab and Github Links: Added Gitlab implicit links with equivalent
-      functionality to those of Github.  Added "people" reference support
-      to list people who are part of a formal organization as well as a
-      "staff" alias.  Added "contributors" reference support to list project
+      functionality to those of Github.  Added "people" reference support to
+      list people who are part of a formal organization as well as a "staff"
+      alias.  Added "contributors" reference support to list project
       contributors as well.  Improved Github implicit issue links: gh#gh-34
       and gh#issue/34 now properly reference an issue in the current project.
 
-    - Ripgrep: Added new ripgrep-msg implicit button type which jumps to
-      the source referenced by ripgrep (rg) output.  Ripgrep by
-      default outputs pathnames only once beforeall matching lines
+    - Ripgrep: Added new ripgrep-msg implicit button type which jumps
+      to the source referenced by ripgrep (rg) output.  By default,
+      ripgrep outputs pathnames only once before all matching lines
       within that path.  Ripgrep may also be used with the Hyperbole
       `hypb:rgrep' command by setting 'hypb:rgrep-command'.  See
       "https://github.com/BurntSushi/ripgrep";.
@@ -55,28 +65,43 @@
 
     - Org Mode: When in an *Org Help* buffer, the Smart Keys now defer to
       org-mode to handle jumps to its own locations for compatibility.
+      Similarly, in org-mode buffers when not on an org link or heading,
+      and the {M-RET} Action Key is pressed, Hyperbole defers to Org's
+      org-meta-return command.
 
-    - Drag-based Kill, Copy and Yank: Added support for dragging across frames.
+    - Drag-based Kill, Copy and Yank: Added support for dragging across
+      frames.
 
     - Python Identifiers: If a Jedi server is running and the Action Key is
       pressed on a Python identifier, Hyperbole will use Jedi to find the
-      definition even within nested module references, e.g. a.b.c.  Also 
improved
-      basic identifier definition finding.
+      definition even within nested module references, e.g. a.b.c.  Also
+      improved basic identifier definition finding.
 
     - Company Mode Completion: Support for the Emacs company-mode completion
-      package.  After a user loads company-mode, the Action Key when pressed on
-      a source code identifier will run 'smart-company-to-definition' and the
-      Assist Key will run 'smart-company-help'.
+      package.  An Action Key press on a company-mode completion item will
+      display the definition of that item and an Assist Key press will
+      display its documentation, if any.
 
     - Treemacs Mode: Now supports standard Hyperbole end-of-line proportional
       scrolling.
 
-    - ChangeLog Mode: Smart Keys now work on Emacs Lisp references in 
changelogs.
+    - ChangeLog Mode: Smart Keys now work on Emacs Lisp references in
+      changelogs.
+
+    - Improved String Matching: For lines that begin with part of a string
+      that started on another line, Hyperbole now presumes that point is
+      within a string rather than between two strings, even though the
+      delimiters on the line make this ambiguous.  This provides more
+      accurate string recognition.
+
+    - Improved Path Matching: For quote delimited paths, other quote marks
+      are excluded from matches, so if checking for a doubly quoted path,
+      single quotes are not allowed in the string.
 
   HYCONTROL
 
     - Help Buffer Quitting: If HyControl is active, normally {q} quits
-      it but now if point is in an Emacs help buffer, {q} will quit
+      it, but now if point is in an Emacs help buffer, {q} will quit
       from the help buffer instead.  Use {Q} to quit from HyControl
       unconditionally.
 
@@ -92,12 +117,12 @@
     - MSWindows and POSIX Path Toggling: In "hpath.el", added
       (hpath:substitute-posix-or-mswindows-at-point) and
       (hpath:substitute-posix-or-mswindows) commands to toggle the
-      format of a path at point or in a string between POSIX and MSWindows
-      styles.
+      format of a path at point or in a string between POSIX and
+      MSWindows styles.
 
   PROGRAMMING
 
-    - Added hpath:map-plist, equivalent to mapcar but maps over
+    - Added hypb:map-plist, equivalent to mapcar but maps over
       key-value pairs in property lists (where the key and value are
       individual elements in the list).
 
@@ -120,6 +145,13 @@
     - Popup Menus: Documented how to invoke the Koutliner and
       HyRolo popup menus in Emacs.  See "(hyperbole)Menu Commands".
 
+    - DEMO: Added sections:
+        "DEMO#Gitlab (Remote) References"
+        "DEMO#POSIX and MSWindows Paths"
+
+    - Updated Hyperbole Manual with new features.
+
+
 ===========================================================================
 *                                   V7.0.2
 ===========================================================================
diff --git a/HY-WHY.kotl b/HY-WHY.kotl
index bda6d2e..c7e0769 100644
--- a/HY-WHY.kotl
+++ b/HY-WHY.kotl
@@ -23,22 +23,27 @@
       each site, the links are properly maintained.  See "DEMO#Path
       Suffixes and Variables" and "DEMO#Path Prefixes".
 
-   5. Quickly search the web for targeted types of information such as
+   5. Automatically translate POSIX and MSWindows paths within buffers
+      or links to the right format for the current operating system,
+      eliminating the drudgery of converting backslashes to forward
+      slashes.  See "DEMO#POSIX and MSWindows Paths".
+
+   6. Quickly search the web for targeted types of information such as
       programming questions, code libraries, images, videos,
       locations, word definitions, wikipedia entries or even tweets.
       See "DEMO#Hyperbole Menus".
 
-   6. Embed social media hashtags and user names in any text files.
+   7. Embed social media hashtags and user names in any text files.
       Then jump to the associated web page in your favorite web
       browser with an Action Key press.  See "DEMO#Social Media
       Hashtags and Usernames".
 
-   7. Similarly, you can embed github and git object links in any
+   8. Similarly, you can embed github and git object links in any
       files with a simple syntax and Hyperbole will display the
       associated objects with an Action Key press.  See "DEMO#Github
       (Remote) References" and "DEMO#Git (Local) References".
 
-   8. Full-text search for any contact-related information across
+   9. 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
@@ -46,33 +51,33 @@
       while still seeing name, phone number and email information.
       Edit entries with a single key press.  See "DEMO#HyRolo".
 
-   9. Select regions of structured text or source code and to copy or
+  10. Select regions of structured text or source code 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.
-      See "DEMO#Thing Selection".    
+      See "DEMO#Thing Selection".
 
-  10. Use the fantastic, auto-numbered Koutliner with per-item links
+  11. Use the fantastic, auto-numbered Koutliner with per-item links
       and rapidly changeable views.  See "DEMO#Koutliner".
 
-  11. Rapid control over what is displayed where in multiple windows
-      and frames with mouse drags and the Hyperbole HyControl system.
-      See "DEMO#HyControl".
+  12. Rapid control over what is displayed in each window and frame
+      with mouse drags and the Hyperbole HyControl system.  See
+      "DEMO#HyControl".
 
-    11a. Drag Buffer Menu, Dired or Treemacs items to other windows to
+    12a. Drag Buffer Menu, Dired or Treemacs items to other windows to
          display them wherever you want.  Integrate with the Ace
          Window package to `throw' items to specific windows with
          quick key sequences.  See "DEMO#Displaying File and Buffer
-         Items".
+         Items and Moving Buffers".
 
-    11b. Drag-and-drop text regions across Emacs frames.  See
-         "DEMO#Things".
+    12b. Drag-and-drop text regions across Emacs frames.  See
+         "DEMO#Thing Selection".
 
-    11c. Swap buffers in windows across frames with a mouse drag.
+    12c. Swap buffers in windows across frames with a mouse drag.
          See "DEMO#Swapping Buffers".
 
-    11d. With one command, rapidly create a grid of tiled windows
+    12d. With one command, rapidly create a grid of tiled windows
          displaying either selected buffers, buffers with a specific
          major mode or the most recently used buffer list, e.g.
          {63 C-c @} creates 6 rows, each with 3 columns of windows (18
@@ -82,22 +87,22 @@
          same above command to display them in a grid of windows.  See
          "DEMO#Windows Grid".
 
-    11e. Use a quick mouse key press to scroll any window line to the
+    12e. 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.  See "DEMO#Smart Scrolling".
 
-    11f. Clone or tear off a window into its own frame with a quick
+    12f. Clone or tear off a window into its own frame with a quick
          mouse drag.  See "DEMO#Cloning Windows".
 
-    11g. Each frame can store a series of window configurations
+    12g. Each frame can store a series of window configurations
          (layouts) which support working with sets of buffers and
          rapidly moving among them.  See "DEMO#Window Configuration
          Drags".
 
-    11h. Easily adjust the height and width of windows and frames as
+    12h. Easily adjust the height and width of windows and frames as
          needed.  See "DEMO#Frame Commands".
 
-    11i. Quick clicks on different areas of a buffer's modeline will
+    12i. 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
@@ -107,7 +112,7 @@
 
 
 "ben" ;; kvspec:current
-37 ;; id-counter
+38 ;; id-counter
 alpha ;; label-type
 4 ;; label-min-width
 ". " ;; label-separator
@@ -115,7 +120,7 @@ alpha ;; label-type
 
 ;; depth-first kcell attributes
 [[0
-  (creator "address@hidden" create-time "20190203:156:52:59" id-counter 37 
file "/c/Users/bob.weiner/Dropbox/emacs/hyperbole/HY-WHY.kotl")]
+  (creator "address@hidden" create-time "20190512:130:33:52" id-counter 38 
file "/home/bob.weiner/Dropbox/emacs/hyperbole/HY-WHY.kotl")]
  [1
   (creator "address@hidden" create-time "20160524:15:04:17" no-fill t)]
  [17
@@ -124,6 +129,8 @@ alpha ;; label-type
   (creator "address@hidden" create-time "20171114:23:37:20" no-fill t)]
  [2
   (creator "address@hidden" create-time "20160524:15:04:24" no-fill t)]
+ [38
+  (creator "address@hidden" create-time "20190512:131:21:14" no-fill t)]
  [31
   (creator "address@hidden" create-time "20171114:23:18:01" no-fill t)]
  [33
diff --git a/Makefile b/Makefile
index 6fd8ad1..656eb2b 100644
--- a/Makefile
+++ b/Makefile
@@ -54,7 +54,7 @@
 
 # This ver setup won't work under any make except GNU make, so set it manually.
 #HYPB_VERSION = "`head -3 hversion.el | tail -1 | sed -e 's/.*|\(.*\)|.*/\1/'`"
-HYPB_VERSION = 7.0.2b
+HYPB_VERSION = 7.0.3
 
 # Emacs executable used to byte-compile .el files into .elc's.
 # Possibilities include: emacs, infodock, xemacs, etc.
diff --git a/README.md b/README.md
index 19d283c..37ea631 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,6 @@
-# GNU Hyperbole 7.0.2b - The Everyday Hypertextual Information Manager
+# GNU Hyperbole 7.0.3 - The Everyday Hypertextual Information Manager
+
+[Say thanks if you like Hyperbole.(https://saythanks.io/to/rswgnu)]
 
 <!-- START doctoc generated TOC -->
 **Table of Contents**
@@ -497,8 +499,16 @@ Keys).
   products I have ever come across.  It is certainly the one which has made
   the biggest improvement in my personal productivity.
 
+  My Hyperbole button file is my start page in Emacs.  It's a quickly
+  searchable index with links to countless resources.  We also have a
+  library of implicit buttons that enable rapid navigation from references
+  in our code to our issue tracking system, so clicking a reference like
+  Client6502 opens the relevant conversation.  Hyperbole provides a really
+  useful set of power tools.  If Emacs is your preferred productivity
+  environment, it's definitely worth getting familiar with it.
+
                         -- Chris Nuzum  
-                           Co-founder, Traction Software, Inc.
+                           Co-founder, Traction Softwarea, Inc.
 
 -------
 
diff --git a/README.md.html b/README.md.html
index 4a45809..0ed4301 100644
--- a/README.md.html
+++ b/README.md.html
@@ -1,5 +1,6 @@
 <h1>
-<a 
id="user-content-gnu-hyperbole-702b---the-everyday-hypertextual-information-manager"
 class="anchor" 
href="#gnu-hyperbole-702b---the-everyday-hypertextual-information-manager" 
aria-hidden="true"><span aria-hidden="true" class="octicon 
octicon-link"></span></a>GNU Hyperbole 7.0.2b - The Everyday Hypertextual 
Information Manager</h1>
+<a 
id="user-content-gnu-hyperbole-703---the-everyday-hypertextual-information-manager"
 class="anchor" 
href="#gnu-hyperbole-703---the-everyday-hypertextual-information-manager" 
aria-hidden="true"><span aria-hidden="true" class="octicon 
octicon-link"></span></a>GNU Hyperbole 7.0.3 - The Everyday Hypertextual 
Information Manager</h1>
+<p>[Say thanks if you like Hyperbole.(<a href="https://saythanks.io/to/rswgnu"; 
rel="nofollow">https://saythanks.io/to/rswgnu</a>)]</p>
 
 <p><strong>Table of Contents</strong></p>
 <ul>
@@ -466,8 +467,15 @@ 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>
+<p>My Hyperbole button file is my start page in Emacs.  It's a quickly
+searchable index with links to countless resources.  We also have a
+library of implicit buttons that enable rapid navigation from references
+in our code to our issue tracking system, so clicking a reference like
+Client6502 opens the relevant conversation.  Hyperbole provides a really
+useful set of power tools.  If Emacs is your preferred productivity
+environment, it's definitely worth getting familiar with it.</p>
 <pre><code>                    -- Chris Nuzum  
-                       Co-founder, Traction Software, Inc.
+                       Co-founder, Traction Softwarea, Inc.
 </code></pre>
 <hr>
 <p>I've found Hyperbole (in conjunction with XEmacs) to be very useful
diff --git a/_hypb b/_hypb
index a3c7217..65fd41d 100644
Binary files a/_hypb and b/_hypb differ
diff --git a/hact.el b/hact.el
index 67e79da..e765732 100644
--- a/hact.el
+++ b/hact.el
@@ -259,9 +259,10 @@ Other paths are simply expanded.  Non-path arguments are 
returned unchanged."
 ;;; ========================================================================
 
 (defmacro hact (&rest args)
-  "Performs action formed from rest of ARGS.
+  "Performs action formed from rest of ARGS and returns the result or acts as 
a no-op when testing implicit button type contexts.
 First arg may be a symbol or symbol name for either an action type or a
-function.  Runs `action-act-hook' before performing action."
+function.  Runs `action-act-hook' before performing action.
+The value of `hrule:action' determines what effect this has."
   (eval `(cons 'funcall (cons 'hrule:action ',args))))
 
 (defun    actype:act (actype &rest args)
diff --git a/hargs.el b/hargs.el
index 822f967..57b78a6 100644
--- a/hargs.el
+++ b/hargs.el
@@ -99,12 +99,14 @@ interactive form or takes no arguments."
     (subst-char-in-string ?\^@ ?: string t)))
 
 (defun hargs:delimited (start-delim end-delim
-                       &optional start-regexp-flag end-regexp-flag 
list-positions-flag)
-  "Returns a normalized, single line, delimited string that point is within, 
or nil.
+                       &optional start-regexp-flag end-regexp-flag
+                       list-positions-flag exclude-regexp)
+  "Returns a normalized, single line, delimited string that point is within 
the first line of, 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.
-With optional LIST-POSITIONS-FLAG, return list of (string-matched start-pos 
end-pos)."
+With optional LIST-POSITIONS-FLAG, return list of (string-matched start-pos 
end-pos).
+With optional EXCLUDE-REGEXP, any matched string is ignored if it this regexp."
   (let* ((opoint (point))
         (limit (if start-regexp-flag opoint
                  (+ opoint (1- (length start-delim)))))
@@ -112,17 +114,29 @@ With optional LIST-POSITIONS-FLAG, return list of 
(string-matched start-pos end-
                              'search-forward))
         (end-search-func (if end-regexp-flag 're-search-forward
                            'search-forward))
+        (count 0)
         start end)
     (save-excursion
       (beginning-of-line)
       (while (and (setq start (funcall start-search-func start-delim limit t))
+                 (setq count (1+ count))
                  (< (point) opoint)
                  ;; This is not to find the real end delimiter but to find
                  ;; end delimiters that precede the current argument and are
                  ;; therefore false matches, hence the search is limited to
                  ;; prior to the original point.
-                 (funcall end-search-func end-delim opoint t))
+                 (funcall end-search-func end-delim opoint t)
+                 (setq count (1+ count)))
        (setq start nil))
+      (when (and (not start) (> count 0) (evenp count) (string-equal 
start-delim end-delim))
+       ;; Since strings can span lines but this function matches only
+       ;; strings that start on the current line, when start-delim and
+       ;; end-delim are the same and there are an even number of
+       ;; delimiters in the search range, causing the end-delim
+       ;; search to match to what should probably be the start-delim,
+       ;; assume point is within a string and not between two other strings.
+       ;; RSW - 02/05/2019
+       (setq start (point)))
       (when start
        (forward-line 2)
        (setq limit (point))
@@ -142,13 +156,15 @@ With optional LIST-POSITIONS-FLAG, return list of 
(string-matched start-pos end-
                 (setq end (1- end))
               t)
             (< start end)
+            (>= end opoint)
             (let ((string (hargs:buffer-substring start end)))
-              (setq string (hypb:replace-match-string "[\n\r\f]\\s-*" string " 
" t))
-              (unless hyperb:microsoft-os-p
-                (setq string (hpath:mswindows-to-posix string)))
-              (if list-positions-flag
-                  (list string start end)
-                string)))))))
+              (unless (and (stringp exclude-regexp) (string-match 
exclude-regexp string) )
+                (setq string (hypb:replace-match-string "[\n\r\f]\\s-*" string 
" " t))
+                (unless hyperb:microsoft-os-p
+                  (setq string (hpath:mswindows-to-posix string)))
+                (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.
diff --git a/hibtypes.el b/hibtypes.el
index 7e8282c..8aaae63 100644
--- a/hibtypes.el
+++ b/hibtypes.el
@@ -128,9 +128,11 @@ any buffer attached to a file in `hyrolo-file-list', or 
any buffer with
   "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 `load-path' directory list.
+Markdown or Emacs outline headings, and MSWindows paths (see
+\"${hyperb:dir}/DEMO#POSIX and MSWindows Paths\" for details).
+Emacs Lisp library files (filenames without any directory
+component that end in .el and .elc) are looked up using the
+`load-path' directory list.
 
 See `hpath:at-p' function documentation for possible delimiters.
 See `hpath:suffixes' variable documentation for suffixes that are
@@ -250,29 +252,6 @@ current major mode is one handled by func-menu."
                (hact 'function-in-buffer function-name function-pos)))))))
 
 ;;; ========================================================================
-;;; Use the Emacs imenu library to jump to definition of an identifier
-;;; defined in the same file in which it is referenced.  Identifier
-;;; references across files are handled separately by clauses within
-;;; the `hkey-alist' variable.
-;;; ========================================================================
-
-;;; This implicit button type is not needed because hkey-alist handles imenu 
items.
-;; (defib imenu-item ()
-;;   "Displays the in-buffer definition of an identifier that point is within 
or after, else nil.
-;; This triggers only when imenu has already been used to generate an 
in-buffer item index."
-;;   (when (and (featurep 'imenu) imenu--index-alist)
-;;     (save-excursion
-;;       (skip-syntax-backward "w_")
-;;       (if (looking-at "\\(\\sw\\|\\s_\\)+")
-;;       (let* ((item-name (buffer-substring-no-properties (point) (match-end 
0)))
-;;              (start (point))
-;;              (end (match-end 0))
-;;              (item-pos (imenu-item-p item-name)))
-;;         (when item-pos
-;;           (ibut:label-set item-name start end)
-;;           (hact 'imenu-display-item-where item-name item-pos)))))))
-
-;;; ========================================================================
 ;;; Handles internal references within an annotated bibliography, delimiters=[]
 ;;; ========================================================================
 
@@ -287,7 +266,7 @@ must have an attached file."
        (let ((chr (aref (buffer-name) 0)))
         (not (or (eq chr ?\ ) (eq chr ?*))))
        (not (or (derived-mode-p 'prog-mode)
-               (memq major-mode '(c-mode objc-mode c++-mode java-mode 
markdown-mode))))
+               (apply #'derived-mode-p '(c-mode objc-mode c++-mode java-mode 
markdown-mode org-mode))))
        (let* ((ref-and-pos (hbut:label-p t "[" "]" t))
              (ref (car ref-and-pos)))
         (and ref (eq ?w (char-syntax (aref ref 0)))
@@ -342,10 +321,11 @@ Returns t if jumps and nil otherwise."
             ;; 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))))
-                ;; In-file referents will be handled later by the
-                ;; pathname implicit type, not here.
-                (progn (hpath:display-buffer (current-buffer))
+                     (save-match-data (not (or (hpath:www-at-p) 
(hpath:at-p)))))
+                ;; In-file referents are handled by the 
'markdown-internal-link'
+                ;; implicit button type, not here.
+                (progn (ibut:label-set (match-string-no-properties 0) 
(match-beginning 0) (match-end 0))
+                       (hpath:display-buffer (current-buffer))
                        (hact 'markdown-follow-link-at-point))))
     (goto-char opoint)
     nil))
@@ -361,6 +341,7 @@ Returns t if jumps and nil otherwise."
                 ;; Follows a reference link or footnote to its referent.
                 (if (markdown-follow-link-p)
                     (when (/= opoint (point))
+                      (ibut:label-set (match-string-no-properties 0) 
(match-beginning 0) (match-end 0))
                       (setq npoint (point))
                       (goto-char opoint)
                       (hact 'link-to-file buffer-file-name npoint))
@@ -370,6 +351,7 @@ Returns t if jumps and nil otherwise."
               ;; link itself and follow that.
               (error (markdown-follow-inline-link-p opoint))))
            ((markdown-wiki-link-p)
+            (ibut:label-set (match-string-no-properties 0) (match-beginning 0) 
(match-end 0))
             (hpath:display-buffer (current-buffer))
             (hact 'markdown-follow-wiki-link-at-point))))))
             
@@ -677,12 +659,14 @@ buffer)."
       (beginning-of-line)
       (when (looking-at "\\([1-9][0-9]*\\)[-:]")
        ;; Ripgrep matches and context lines (-A<num> option)
-       (let ((line-num (match-string-no-properties 1)))
+       (let ((line-num (match-string-no-properties 1))
+             file)
          (while (and (= (forward-line -1) 0)
                      (looking-at "[1-9][0-9]*[-:]\\|--$")))
-         (unless (looking-at "[1-9][0-9]*[-:]\\|--$")
-           (let* ((file (buffer-substring-no-properties (point-at-bol) 
(point-at-eol)))
-                  (but-label (concat file ":" line-num))
+         (unless (or (looking-at "[1-9][0-9]*[-:]\\|--$")
+                     (and (setq file (buffer-substring-no-properties 
(point-at-bol) (point-at-eol)))
+                          (string-empty-p (string-trim file))))
+           (let* ((but-label (concat file ":" line-num))
                   (source-loc (if (file-name-absolute-p file) nil
                                 (hbut:key-src t))))
              (if (stringp source-loc)
diff --git a/hmh.el b/hmh.el
index 38ac5c9..919903b 100644
--- a/hmh.el
+++ b/hmh.el
@@ -1,4 +1,4 @@
-;;; hmh.el ---  GNU Hyperbole buttons in mail reader: Mh
+;;; hmh.el --- GNU Hyperbole buttons in mail reader: Mh
 ;;
 ;; Author:       Bob Weiner
 ;;
diff --git a/hmouse-drv.el b/hmouse-drv.el
index 4ab75b7..e5361cb 100644
--- a/hmouse-drv.el
+++ b/hmouse-drv.el
@@ -238,13 +238,8 @@ Any ARGS will be passed to `hmouse-function'."
            hkey-value nil))))
 
 ;;; Smart Key Commands
-(defun action-key ()
-  "Use one key to perform functions that vary by context.
-If no matching context is found, the default function set with
-the `action-key-default-function' variable is run.  Return t
-unless the `action-key-default-function' variable is not bound to
-a valid function."
-  (interactive)
+(defun action-key-clear-variables ()
+  "Clear all Action Key variables."
   ;; Clear all these variables so there can be no confusion between
   ;; mouse presses and keyboard presses.
   (setq action-key-depress-prev-point nil
@@ -254,7 +249,29 @@ a valid function."
        action-key-release-position nil
        action-key-release-args nil
        action-key-release-window nil
-       action-key-release-prev-point nil)
+       action-key-release-prev-point nil))
+
+(defun assist-key-clear-variables ()
+  "Clear all Assist Key variables."
+  ;; Clear all these variables so there can be no confusion between
+  ;; mouse presses and keyboard presses.
+  (setq assist-key-depress-prev-point nil
+       assist-key-depress-position nil
+       assist-key-depress-args nil
+       assist-key-depress-window nil
+       assist-key-release-position nil
+       assist-key-release-args nil
+       assist-key-release-window nil
+       assist-key-release-prev-point nil))
+
+(defun action-key ()
+  "Use one key to perform functions that vary by context.
+If no matching context is found, the default function set with
+the `action-key-default-function' variable is run.  Return t
+unless the `action-key-default-function' variable is not bound to
+a valid function."
+  (interactive)
+  (action-key-clear-variables)
   (prog1 (action-key-internal)
     (run-hooks 'action-key-depress-hook 'action-key-release-hook)))
 
@@ -275,16 +292,7 @@ the `assist-key-default-function' variable is run.  Return
 non-nil unless `assist-key-default-function' variable is not
 bound to a valid function."
   (interactive)
-  ;; Clear all these variables so there can be no confusion between
-  ;; mouse presses and keyboard presses.
-  (setq assist-key-depress-prev-point nil
-       assist-key-depress-position nil
-       assist-key-depress-args nil
-       assist-key-depress-window nil
-       assist-key-release-position nil
-       assist-key-release-args nil
-       assist-key-release-window nil
-       assist-key-release-prev-point nil)
+  (assist-key-clear-variables)
   (prog1 (assist-key-internal)
     (run-hooks 'assist-key-depress-hook 'assist-key-release-hook)))
 
@@ -325,7 +333,7 @@ bound to a valid function."
 
 The ace-window package, (see 
\"https://elpa.gnu.org/packages/ace-window.html\";),
 assigns short ids to each Emacs window and lets you jump to or
-operate upon a specific window by giving its letter.  Hyperbole
+operate upqon a specific window by giving its letter.  Hyperbole
 can insert an operation into ace-window that allows you to
 display items such as dired or buffer menu items in a specific
 window.
@@ -355,7 +363,7 @@ magic happen."
        aw-dispatch-alist (delq (assq ?t aw-dispatch-alist)
                                (delq (assq ?r aw-dispatch-alist)
                                      (delq (assq ?i aw-dispatch-alist) 
aw-dispatch-alist))))
-  (push '(?i hkey-drag-to "Hyperbole: Drag To") aw-dispatch-alist)
+  (push '(?i hkey-drag-item "Hyperbole: Drag Item") aw-dispatch-alist)
   ;; Ace-window includes ?m as the swap windows key, so it is not added here.
   (push '(?r hkey-replace "Hyperbole: Replace Here") aw-dispatch-alist)
   (push '(?t hkey-throw   "Hyperbole: Throw To") aw-dispatch-alist)
@@ -409,6 +417,38 @@ Works only when running under a window system, not from a 
dumb terminal."
        (hypb:select-window-frame start-window)))))
 
 ;;;###autoload
+(defun hkey-drag-item (release-window)
+  "Emulate Smart Mouse Key drag from an item in a selected window to 
RELEASE-WINDOW, interactively chosen via ace-window.
+RELEASE-WINDOW is left selected unless point is not on an item, in
+which case, an error is signalled.
+
+Optional prefix arg non-nil means emulate Assist Key rather than the
+Action Key.
+
+Works only when running under a window system, not from a dumb terminal."
+  (interactive
+   (list (let ((mode-line-text (concat " Ace - " (nth 2 (assq ?i 
aw-dispatch-alist)))))
+          (aw-select mode-line-text))))
+  (let ((start-window (if (and (boundp 'start-window) (window-live-p 
start-window))
+                         start-window
+                       (if current-prefix-arg
+                           assist-key-depress-window
+                         action-key-depress-window)))
+       at-item-flag)
+    (unless (window-live-p start-window)
+      (setq start-window (selected-window)))
+    (cond ((and (setq at-item-flag (hmouse-at-item-p))
+               (window-live-p release-window))
+          (hkey-drag release-window)
+          ;; Leave release-window selected
+          (when (window-live-p release-window)
+            (hypb:select-window-frame release-window)))
+         (at-item-flag
+          (error "(hkey-drag-item): No listing item at point"))
+         (t ;; No item at point or selected release is invalid
+          (error "(hkey-drag-item): Invalid final window, %s" 
release-window)))))
+
+;;;###autoload
 (defun hkey-drag-to (release-window)
   "Emulate Smart Mouse Key drag from a selected window to RELEASE-WINDOW, 
interactively chosen via ace-window.
 If an item is dragged to RELEASE-WINDOW, then RELEASE-WINDOW is selected;
@@ -435,14 +475,17 @@ Works only when running under a window system, not from a 
dumb terminal."
               ;; Leave release-window selected
               (when (window-live-p release-window)
                 (hypb:select-window-frame release-window)))
-      (if (eq start-window release-window)
-         ;; Leave hkey-drag to choose final selected window
-         (hkey-drag release-window)
-       ;; Replace release window's buffer with selected
-       ;; window's buffer.
-       (hkey-buffer-to start-window release-window)
-       (when (window-live-p release-window)
-         (hypb:select-window-frame release-window))))))
+      ;; Leave hkey-drag to choose final selected window
+      (hkey-drag release-window)
+      ;; (if (eq start-window release-window)
+      ;;         ;; Leave hkey-drag to choose final selected window
+      ;;         (hkey-drag release-window)
+      ;;       ;; Replace release window's buffer with selected
+      ;;       ;; window's buffer.
+      ;;       (hkey-buffer-to start-window release-window)
+      ;;       (when (window-live-p release-window)
+      ;;         (hypb:select-window-frame release-window)))
+      )))
 
 ;;;###autoload
 (defun hkey-replace (release-window)
@@ -564,6 +607,14 @@ The selected window does not change."
   (hmouse-choose-windows #'hkey-drag-stay))
 
 ;;;###autoload
+(defun hmouse-click-to-drag-item ()
+  "Mouse click on start and end windows for use with `hkey-drag-item'.
+Emulate {M-o i} from start window to end window.
+After the drag, the end window is the selected window."
+  (interactive)
+  (hmouse-choose-windows #'hkey-drag-item))
+
+;;;###autoload
 (defun hmouse-click-to-drag-to ()
   "Mouse click on start and end windows for use with `hkey-drag-to'.
 Emulate Smart Mouse Key drag from start window to end window.
@@ -716,6 +767,10 @@ Return non-nil iff a non-nil predicate is found."
 With optional ASSIST-FLAG non-nil, display help for the Assist Key command.
 Return non-nil iff associated help documentation is found."
   (interactive "P")
+  (unless (or action-key-depressed-flag action-key-help-flag)
+    (action-key-clear-variables))
+  (unless (or assist-key-depressed-flag assist-key-help-flag)
+    (assist-key-clear-variables))
   (let ((hkey-forms hmouse-alist)
        hkey-form pred-value call calls cmd-sym doc)
     (while (and (null pred-value) (setq hkey-form (car hkey-forms)))
diff --git a/hmouse-mod.el b/hmouse-mod.el
index 0c3df2b..4417e2f 100644
--- a/hmouse-mod.el
+++ b/hmouse-mod.el
@@ -1,4 +1,4 @@
-;;; hmouse-mod.el ---  Action Key acts as CONTROL modifier and Assist Key as 
META modifier.
+;;; hmouse-mod.el --- Action Key acts as CONTROL modifier and Assist Key as 
META modifier.
 ;;
 ;; Author:       Bob Weiner
 ;;
diff --git a/hmouse-tag.el b/hmouse-tag.el
index 4a69c28..1ced3a5 100644
--- a/hmouse-tag.el
+++ b/hmouse-tag.el
@@ -635,6 +635,15 @@ buffer."
       (beginning-of-line)
       (looking-at "\\(;*[ \t]*\\)?(\\(autoload\\|load\\|require\\)")))
 
+(defun smart-lisp-at-change-log-tag-p ()
+  "When in a change-log mode, match to only bound Elisp identifiers and those 
with a '-' somewhere in the middle.
+These tight tests help eliminate undesired matches.
+Returns matching ELisp tag name that point is within, else nil."
+  (when (derived-mode-p 'change-log-mode)
+    (let ((identifier (smart-lisp-at-tag-p)))
+      (and identifier (intern-soft identifier)
+          (string-match "[^-]-[^-]" identifier)))))
+
 (defun smart-lisp-at-tag-p (&optional no-flash)
   "Returns Lisp tag name that point is within, else nil.
 Returns nil when point is on the first line of a non-alias Lisp definition."
@@ -644,7 +653,7 @@ Returns nil when point is on the first line of a non-alias 
Lisp definition."
       (save-excursion
        (skip-chars-backward identifier-chars)
        (if (and (looking-at identifier)
-                ;; Ignore any all punctuation matches.
+                ;; Ignore any punctuation matches.
                 (not (string-match "\\`[-<>*]+\\'" (match-string 0)))
                 ;; Needed to set match string.
                 (looking-at identifier))
@@ -664,7 +673,7 @@ Returns nil when point is on the first line of a non-alias 
Lisp definition."
 (defun smart-lisp-mode-p ()
   "Return t if in a mode which uses Lisp symbols."
   (or (smart-emacs-lisp-mode-p)
-      (memq major-mode '(lisp-mode scheme-mode change-log-mode))))
+      (memq major-mode '(lisp-mode scheme-mode))))
 
 ;;;###autoload
 (defun smart-objc (&optional identifier next)
@@ -761,23 +770,35 @@ If key is pressed:
             (buffer-substring-no-properties (match-beginning 2) (match-end 2))
             (match-beginning 2) (match-end 2)))))))
 
+(defun smart-jedi-find-file (file line column other-window)
+  "Function that reads a source file for jedi navigation.
+It takes these arguments: (file-to-read other-window-flag line_number 
column_number)."
+  (hpath:display-buffer (find-file file) other-window)
+  (jedi:goto--line-column line column))
 
 (defun smart-python-jedi-to-definition-p ()
   "If the Jedi Python identifier server is running, test and use it to jump to 
the definition.
 See https://tkf.github.io/emacs-jedi/latest/.";
   ;; Use functions from jedi-core.el only, not from jedi.el, since
   ;; company-jedi.el users will have loaded only jedi-core.el.
-  (when (featurep 'jedi-core)
+  (when (and (featurep 'jedi-core) jedi-mode)
     (let* ((servers (jedi:-get-servers-in-use))
           (proc (epc:manager-server-process (car servers))))
       (and servers (processp proc)
           (eq 'run (process-status (process-buffer proc)))
           ;; The goto is performed asynchronously.
           ;; It reports in the minibuffer when a definition is not found.
-          (progn (jedi:goto-definition t)
-                 ;; For use as a predicate, always return t if the Jedi server
-                 ;; is running  so other lookup techniques are not tried.
-                 t)))))
+          ;; !! Only works on tag at point, not the tagname passed in as jedi
+          ;; does not accept a tag parameter.
+          ;;
+          ;; jedi:find-file-function is an RSW custom
+          ;; modification that allows display-where to work;
+          ;; otherwise, will just display in another window.
+          (let ((jedi:find-file-function #'smart-jedi-find-file))
+            (jedi:goto-definition hpath:display-where)
+            ;; For use as a predicate, always return t if the Jedi server
+            ;; is running  so other lookup techniques are not tried.
+            t)))))
 
 ;;;###autoload
 (defun smart-python (&optional identifier next)
@@ -1279,7 +1300,7 @@ See the \"${hyperb:dir}/smart-clib-sym\" script for more 
information."
               (with-no-warnings (find-tag tag))))
       ;; Signals an error if tag is not found which is caught by
       ;; many callers of this function.
-      (with-no-warnings        (find-tag tag)))))
+      (with-no-warnings (find-tag tag)))))
 
 ;;;###autoload
 (defun smart-tags-file-path (file)
diff --git a/hpath.el b/hpath.el
index eafc2e1..51e1d14 100644
--- a/hpath.el
+++ b/hpath.el
@@ -80,6 +80,13 @@ If the value of 'hpath:mswindows-mount-prefix' changes, then 
re-initialize this
 (defconst hpath:mswindows-path-regexp "\\`.*\\.*[a-zA-Z0-9_.]"
   "Regular expression matching the start of an MSWindows path that does not 
start with a drive letter but contains directory separators.")
 
+(defvar hpath:mswindows-path-posix-mount-alist nil
+  "Automatically set alist of (window-path-prefix . posix-mount-point) 
elements.")
+
+(defvar hpath:directory-expand-alist nil
+  "Automatically set alist of (posix-mount-point . window-path-prefix) 
elements.
+   Used to expand windows prefixes to posix mount points during 
mswindows-to-posix.")
+
 ;;;###autoload
 (defun hpath:mswindows-to-posix (path)
   "Convert a recognizable MSWindows PATH to a Posix-style path or return the 
path unchanged.
@@ -102,10 +109,10 @@ If path begins with an MSWindows drive letter, prefix the 
converted path with th
   path)
 
 (defun hpath:mswindows-to-posix-separators (path)
-  "Replace all backslashes with forward slashes in PATH and abbreviate the 
path if possible.
-Path must be a string or an error will be triggered.  See
-'abbreviate-file-name' for how path abbreviation is handled."
-  (abbreviate-file-name (replace-regexp-in-string "\\\\" "/" path)))
+  "Replace all backslashes with forward slashes in PATH and expand the path 
against `directory-abbrev-alist', if possible.
+Path must be a string or an error will be triggered."
+  (let ((directory-abbrev-alist hpath:directory-expand-alist))
+    (replace-regexp-in-string "\\\\" "/" (abbreviate-file-name path))))
 
 ;;;###autoload
 (defun hpath:posix-to-mswindows (path)
@@ -131,7 +138,6 @@ If path begins with an optional mount prefix, 
'hpath:mswindows-mount-prefix', fo
                             rest-of-path))))))
   path)
 
-
 (defun hpath:posix-to-mswindows-separators (path)
   "Replace all forward slashes with backslashes in PATH and abbreviate the 
path if possible.
 Path must be a string or an error will be triggered.  See
@@ -169,37 +175,40 @@ Path must be a string or an error will be triggered.  See
       (hpath:mswindows-to-posix path))))
 
 ;;;###autoload
-(defun hpath:map-plist (func plist)
-  "Returns result of applying FUNC of two args, key and value, to key-value 
pairs in PLIST, a property list."
-  (cl-loop for (k v) on plist by #'cddr
-          collect (funcall func k v) into result
-          return result))
-
-;;;###autoload
 (defun hpath:cache-mswindows-mount-points ()
   "Cache valid MSWindows mount points in 'directory-abbrev-alist' when under a 
non-MSWindows operating system, e.g. WSL.
 Call this function manually if mount points change after Hyperbole is loaded."
   (interactive)
   (when (not hyperb:microsoft-os-p)
-    (let (path mount-point)
+    (let ((mount-points-to-add
+          ;; Sort alist of (path-mounted . mount-point) elements from shortest
+          ;; to longest path so that the longest path is selected first within
+          ;; 'directory-abbrev-alist' (elements are added in reverse order).
+          (sort
+           ;; Convert plist to alist for sorting.
+           (hypb:map-plist (lambda (path mount-point)
+                              (if (string-match "\\`\\([a-zA-Z]\\):\\'" path)
+                                  ;; Drive letter must be downcased
+                                  ;; in order to work when converted back to 
Posix.
+                                  (setq path (concat "/" (downcase 
(match-string 1 path)))))
+                              ;; Assume all mounted Windows paths are
+                              ;; lowercase for now.
+                              (cons (downcase path) mount-point))
+                            ;; Return a plist of MSWindows path-mounted 
mount-point pairs.
+                            (split-string (shell-command-to-string (format "df 
-a -t drvfs 2> /dev/null | sort | uniq | grep -v '%s' | sed -e 's+ .*[-%%] /+ 
/+g'" hpath:posix-mount-points-regexp))))
+           (lambda (cons1 cons2) (<= (length (car cons1)) (length (car 
cons2))))))
+         path mount-point)
       (mapcar (lambda (path-and-mount-point)
                (setq path (car path-and-mount-point)
                      mount-point (cdr path-and-mount-point))
                (add-to-list 'directory-abbrev-alist (cons (format "\\`%s" 
(regexp-quote path))
                                                           mount-point)))
-             ;; Sort alist of (path-mounted . mount-point) elements from 
shortest
-             ;; to longest path so that the longest path is selected first 
within
-             ;; 'directory-abbrev-alist' (elements are added in reverse order).
-             (sort
-              ;; Convert plist to alist for sorting.
-              (hpath:map-plist (lambda (path mount-point)
-                                (if (string-match "\\`\\([a-zA-Z]\\):\\'" path)
-                                    (setq path (concat "/" (downcase 
(match-string 1 path)))))
-                                (cons path mount-point))
-                              ;; Return a plist of MSWindows path-mounted 
mount-point pairs.
-                              (split-string (shell-command-to-string
-                                             (format "df 2> /dev/null | grep 
-v '%s' | sed -e 's/ .*%%//g'" hpath:posix-mount-points-regexp))))
-              (lambda (cons1 cons2) (<= (length (car cons1)) (length (car 
cons2)))))))))
+             mount-points-to-add)
+      (setq hpath:directory-expand-alist
+           ;; Save the reverse of each mount-points-to-add so
+           ;; can expand paths when going from posix-to-mswindows.
+           (mapcar (lambda (elt) (cons (cdr elt) (car elt))) 
mount-points-to-add))
+      mount-points-to-add)))
 
 
 ;;; ************************************************************************
@@ -705,9 +714,9 @@ With optional INCLUDE-POSITIONS, returns a triplet list of 
(path start-pos
 end-pos) or nil."
   ;; Prevents MSWindows to Posix path substitution
   (let ((hyperb:microsoft-os-p t))
-    (or (hargs:delimited "\"" "\"" nil nil include-positions)
+    (or (hargs:delimited "\"" "\"" nil nil include-positions "[`'’]")
        ;; Filenames in Info docs or Python files
-       (hargs:delimited "[`'‘]" "[`'’]" t t include-positions)
+       (hargs:delimited "[`'‘]" "[`'’]" t t include-positions "\"")
        ;; Filenames in TexInfo docs
        (hargs:delimited "@file{" "}" nil nil include-positions)
        ;; Any existing whitespace delimited filename at point.
@@ -794,17 +803,17 @@ program)."
     (if (string-match hpath:prefix-regexp filename)
        (setq modifier (aref filename 0)
              filename (substring filename (match-end 0))))
-    (setq filename (hpath:substitute-value filename)
+    (setq path (hpath:substitute-value
+               (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))
          loc (hattr:get 'hbut:current 'loc)
          dir (file-name-directory
               ;; Loc may be a buffer without a file
               (if (stringp loc) loc default-directory))
-         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))
+         filename (hpath:absolute-to path dir))
     (let ((remote-filename (hpath:remote-p path)))
       (or modifier remote-filename
          (file-exists-p path)
@@ -980,7 +989,7 @@ See also `hpath:internal-display-alist' for internal, 
window-system independent
                             (cons "next" 
hpath:external-display-alist-macos)))))))
 
 (defun hpath:is-p (path &optional type non-exist)
-  "Returns PATH if PATH is a Posix path, else nil.
+  "Returns PATH if PATH is a Posix or MSWindows path, else nil.
 If optional TYPE is the symbol 'file or 'directory, then only that path type
 is accepted as a match.  The existence of the path is checked only for
 locally reachable paths (Info paths are not checked).  Single spaces are
diff --git a/hsys-org.el b/hsys-org.el
index 1056d24..59a1eb1 100644
--- a/hsys-org.el
+++ b/hsys-org.el
@@ -46,10 +46,7 @@
 ;;; ************************************************************************
 
 (defib org-mode ()
-  "Follows any Org mode link at point or cycles through views of the outline 
subtree at point.
-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'."
+  "Follows any Org mode link at point or cycles through views of the outline 
subtree at point."
   (when (derived-mode-p 'org-mode)
     (cond ((org-link-at-p)
           (hact 'org-link nil))
diff --git a/hsys-www.el b/hsys-www.el
index c46b138..663a7c1 100644
--- a/hsys-www.el
+++ b/hsys-www.el
@@ -1,4 +1,4 @@
-;;; hsys-www.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
 ;;
diff --git a/htz.el b/htz.el
index f467077..3341d6b 100644
--- a/htz.el
+++ b/htz.el
@@ -1,4 +1,4 @@
-;;; htz.el ---  Timezone-based time and date support for GNU Hyperbole
+;;; htz.el --- Timezone-based time and date support for GNU Hyperbole
 ;;
 ;; Author:       Masanobu Umeda             / Bob Weiner
 ;;
diff --git a/hui-jmenu.el b/hui-jmenu.el
index 5ff0543..59b4861 100644
--- a/hui-jmenu.el
+++ b/hui-jmenu.el
@@ -1,4 +1,4 @@
-;;; hui-jmenu.el ---  Popup menus for jumping to and managing buffers, frames, 
and windows
+;;; hui-jmenu.el --- Popup menus for jumping to and managing buffers, frames, 
and windows
 ;;
 ;; Author:       Bob Weiner
 ;;
diff --git a/hui-mouse.el b/hui-mouse.el
index 2325c3c..0878500 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -246,8 +246,8 @@ Its default value is #'smart-scroll-down."
     ((and (or (and (eq major-mode 'python-mode) buffer-file-name)
              (let ((case-fold-search))
                (string-match "\\`\\(Pydoc:\\|\\*?Python\\)" (buffer-name))))
-         (smart-python-at-tag-p)) .
-         ((smart-python) . (smart-python nil 'next-tag)))
+         (setq hkey-value (smart-python-at-tag-p))) .
+         ((smart-python hkey-value) . (smart-python hkey-value 'next-tag)))
     ;;
     ;; Imenu listing in GNU Emacs
     ((smart-imenu-item-at-p)
@@ -272,8 +272,11 @@ Its default value is #'smart-scroll-down."
          buffer-file-name (smart-asm-at-tag-p)) .
          ((smart-asm) . (smart-asm nil 'next-tag)))
     ;;
-    ((and (smart-lisp-mode-p) (smart-lisp-at-tag-p)) .
-     ((smart-lisp) . (smart-lisp 'show-doc)))
+    ((or (and (smart-lisp-mode-p) (smart-lisp-at-tag-p))
+        ;; Tightly limit Lisp matches in change-log-mode.
+        (smart-lisp-at-change-log-tag-p)) .
+        ((smart-lisp) . (smart-lisp 'show-doc)))
+    ;;
     ;;
     ((and (eq major-mode 'java-mode) buffer-file-name
          (or (smart-java-at-tag-p)
@@ -600,7 +603,7 @@ If key is pressed:
        ((< (current-column) 5) (calendar-cursor-to-nearest-date)
         (scroll-calendar-right-three-months 1))
        (t (calendar-cursor-to-nearest-date)
-          (view-diary-entries 1))))
+          (diary-view-entries 1))))
 
 (defun smart-calendar-assist ()
   "Uses a single assist-key or mouse assist-key to manipulate the scrolling 
calendar.
@@ -628,12 +631,12 @@ If assist-key is pressed:
 ;;; ************************************************************************
 
 ;; These functions are called from hkey-alist when keyboard Smart Keys
-;; are used but for mouse keys, they are bound to local keys in
+;; are used.  For mouse keys, they are bound to local keys in
 ;; company-mode's minor mode map.
 
 (defun smart-company-to-definition (event)
   "Action Key binding for company-mode completions popup to show item 
definition.
-Use left mouse key or RET key to select a completion and exit."
+Use left mouse key, RET or TAB key to select a completion and exit."
   (interactive "e")
   (when (mouse-event-p last-command-event)
     (company-select-mouse event))
@@ -736,9 +739,13 @@ If assist-key is pressed:
         (goto-char (point-max)))
        ((looking-at "~") (dired-flag-backup-files))
        ((looking-at "#") (dired-flag-auto-save-files))
-       (t (if (fboundp 'dired-flag-file-deletion)
-              (dired-flag-file-deletion 1)
-            (dired-flag-file-deleted 1)))))
+       (t 
+        ;; Prevent any region selection from causing multiple files
+        ;; to be marked for deletion; we want to mark only one.
+        (deactivate-mark t)
+        (if (fboundp 'dired-flag-file-deletion)
+            (dired-flag-file-deletion 1)
+          (dired-flag-file-deleted 1)))))
 
 ;;; ************************************************************************
 ;;; smart-gnus functions
diff --git a/hui-select.el b/hui-select.el
index b4bd52b..f70818e 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -1,4 +1,4 @@
-;;; hui-select.el ---  Select larger and larger syntax-driven regions in a 
buffer.
+;;; hui-select.el --- Select larger and larger syntax-driven regions in a 
buffer.
 ;;
 ;; Author:       Bob Weiner
 ;;
diff --git a/hui-treemacs.el b/hui-treemacs.el
index d653645..2cdface 100644
--- a/hui-treemacs.el
+++ b/hui-treemacs.el
@@ -18,13 +18,18 @@
 
 (eval-and-compile (require 'treemacs nil t))
 
-(unless (string-greaterp treemacs-version "v2")
+(unless (and (featurep 'treemacs) (string-greaterp treemacs-version "v2"))
   (error "(hui-treemacs): Hyperbole requires Treemacs package version 2.0 or 
greater"))
 
 ;;; ************************************************************************
 ;;; smart-treemacs functions
 ;;; ************************************************************************
 
+;; Want to be able to select Treemacs window with ace-window.
+;; This also averts window labeling problems with ace-window.
+(eval-after-load "ace-window"
+  '(setq aw-ignored-buffers (delq 'treemacs-mode aw-ignored-buffers)))
+
 (unless (fboundp 'treemacs-quit)
   (fset 'treemacs-quit #'bury-buffer))
 
@@ -79,28 +84,24 @@ quit/hide the Treemacs window.  Otherwise, display the 
Treemacs window
 with the default directory of the buffer modeline clicked upon.
 
 Suitable for use as a value of `action-key-modeline-buffer-id-function'."
-  (if (fboundp 'treemacs)
-      (progn
-       (require 'treemacs)
-       (cond
-        ;; Clicked on Treemacs buffer id
-        ((if action-key-depress-window
-             (treemacs-is-treemacs-window? action-key-depress-window)
-           (string-match " Treemacs " (format-mode-line mode-line-format)))
-         ;; Quit/hide treemacs.
-         (treemacs-quit))
-        ;;
-        ;; Treemacs is visible and displaying the same dir as
-        ;; the default dir of the clicked on modeline.
-        ((and (treemacs-buffer-exists?)
-              (string-equal (expand-file-name default-directory)
-                            (with-current-buffer (treemacs-buffer-exists?)
-                              default-directory)))
-         ;; Quit/hide treemacs.
-         (treemacs-quit))
-        ;;
-        ;; Otherwise, invoke treemacs on the default dir of the clicked on 
modeline.
-        (t (treemacs))))
-    (error "(smart-treemacs-modeline): Treemacs package is not installed")))
+  (cond
+   ;; Clicked on Treemacs buffer id
+   ((if action-key-depress-window
+       (treemacs-is-treemacs-window? action-key-depress-window)
+      (string-match " Treemacs " (format-mode-line mode-line-format)))
+    ;; Quit/hide treemacs.
+    (treemacs-quit))
+   ;;
+   ;; Treemacs is visible and displaying the same dir as
+   ;; the default dir of the clicked on modeline.
+   ((and (eq (treemacs-current-visibility) 'visible)
+        (string-equal (expand-file-name default-directory)
+                      (with-current-buffer (treemacs-get-local-buffer)
+                        default-directory)))
+    ;; Quit/hide treemacs.
+    (treemacs-quit))
+   ;;
+   ;; Otherwise, invoke treemacs on the default dir of the clicked on modeline.
+   (t (treemacs))))
 
 (provide 'hui-treemacs)
diff --git a/hui-window.el b/hui-window.el
index b9a3e7d..8ba6159 100644
--- a/hui-window.el
+++ b/hui-window.el
@@ -4,7 +4,7 @@
 ;;
 ;; Orig-Date:    21-Sep-92
 ;;
-;; Copyright (C) 1992-2018  Free Software Foundation, Inc.
+;; Copyright (C) 1992-2019  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
@@ -173,7 +173,7 @@ drag release window.")
 ;;; Add window handling to hmouse-alist dispatch table.
 
 (defvar hmouse-alist)
-(defun hui-window--register ()
+(defun hmouse-alist-add-window-handlers ()
   (unless (assoc #'(hmouse-inactive-minibuffer-p) hmouse-alist)
     (setq hmouse-alist
          (append
@@ -241,7 +241,7 @@ drag release window.")
             ;;
             )
           hmouse-alist))))
-(with-eval-after-load 'hui-mouse (hui-window--register))
+(with-eval-after-load 'hui-mouse (hmouse-alist-add-window-handlers))
 
 ;;; ************************************************************************
 ;;; Public functions
@@ -724,7 +724,8 @@ Ignores minibuffer window."
 (defun smart-window-of-coords (coords)
   "Returns window in which COORDS fall or nil if none.
 Ignores minibuffer window."
-  (cond ((markerp coords)
+  (cond ((null coords) nil)
+        ((markerp coords)
         (get-buffer-window (marker-buffer coords)))
        ((and (not (featurep 'xemacs)) (eventp coords))
         (let ((w-or-f (posn-window (event-start coords))))
diff --git a/hui-xe-but.el b/hui-xe-but.el
index 4ce0a77..f135bff 100644
--- a/hui-xe-but.el
+++ b/hui-xe-but.el
@@ -1,4 +1,4 @@
-;;; hui-xe-but.el ---  XEmacs button highlighting and flashing support
+;;; hui-xe-but.el --- XEmacs button highlighting and flashing support
 ;;
 ;; Author:       Bob Weiner
 ;;
diff --git a/hui.el b/hui.el
index 011e13a..f0d1d48 100644
--- a/hui.el
+++ b/hui.el
@@ -1,4 +1,4 @@
-;;; hui.el ---  GNU Hyperbole button and hyperlink user interface
+;;; hui.el --- GNU Hyperbole button and hyperlink user interface
 ;;
 ;; Author:       Bob Weiner
 ;;
diff --git a/hversion.el b/hversion.el
index 4dae314..a346e49 100644
--- a/hversion.el
+++ b/hversion.el
@@ -23,17 +23,17 @@
 ;;; Public variables
 ;;; ************************************************************************
 
-(defconst hyperb:version "7.0.2b" "GNU Hyperbole revision number.")
+(defconst hyperb:version "7.0.3" "GNU Hyperbole revision number.")
 
 ;;;###autoload
 (defvar hyperb:microsoft-os-p
   (memq system-type '(ms-windows windows-nt ms-dos win32))
-  "T iff Hyperbole is running under a Microsoft OS.")
+  "Non-nil iff Hyperbole is running under a Microsoft OS but not under Windows 
Subsystem for Linux (WSL).
+Use `hyperb:wsl-os-p' to test if running under WSL.")
 
 ;;;###autoload
 (defvar hyperb:wsl-os-p
-  (and (memq system-type '(gnu/linux))
-       (executable-find "wsl.exe"))
+  (and (eq system-type 'gnu/linux) (executable-find "wsl.exe") t)
   "T iff Hyperbole is running under Microsoft Windows Subsystem for Linux 
(WSL).")
 
 ;;;###autoload
diff --git a/hvm.el b/hvm.el
index 50417dd..8351d0e 100644
--- a/hvm.el
+++ b/hvm.el
@@ -1,4 +1,4 @@
-;;; hvm.el ---  GNU Hyperbole buttons in mail reader: Vm
+;;; hvm.el --- GNU Hyperbole buttons in mail reader: Vm
 ;;
 ;; Author:       Bob Weiner
 ;;
diff --git a/hypb.el b/hypb.el
index febe94b..7ba68c9 100644
--- a/hypb.el
+++ b/hypb.el
@@ -452,6 +452,13 @@ INACTIVE-P is unused, it is for compatibility with XEmacs' 
version of
 mark-marker."
     (mark-marker)))
 
+;;;###autoload
+(defun hypb:map-plist (func plist)
+  "Returns result of applying FUNC of two args, key and value, to key-value 
pairs in PLIST, a property list."
+  (cl-loop for (k v) on plist by #'cddr
+          collect (funcall func k v) into result
+          finally return result))
+
 (defun hypb:map-sublists (func list)
   "Applies FUNC to every atom found at any level of LIST.
 FUNC must take two arguments, an atom and a list in which the atom is found.
@@ -756,6 +763,7 @@ Without file, the banner is prepended to the current 
buffer."
        (setq button (make-button (- (point) 3) (- (point) 2) :type 
'hyperbole-banner))
        (button-put button 'help-echo (concat "Click to visit " hypb:home-page))
        (button-put button 'action #'hypb:browse-home-page)
+       (button-put button 'face 'default)
        (button-put button 'keymap hypb:hyperbole-banner-keymap)))))
 
 (defun hypb:display-file-with-logo-xemacs (&optional file)
diff --git a/hyperbole-pkg.el b/hyperbole-pkg.el
deleted file mode 100644
index 3a94cb7..0000000
--- a/hyperbole-pkg.el
+++ /dev/null
@@ -1,8 +0,0 @@
-;; -*- no-byte-compile: t -*-
-(define-package "hyperbole" "7.0.2b" "GNU Hyperbole: The Everyday Hypertextual 
Information Manager"
-  '((emacs "24.4"))
-  :url "http://www.gnu.org/software/hyperbole";
-  :keywords '("comm" "convenience" "files" "frames" "hypermedia" "languages"
-             "mail" "matching" "mouse" "multimedia" "outlines" "tools" "wp"))
-
-(setq byte-compile-warnings '(not interactive-only find-tag free-vars 
unresolved))
diff --git a/hyperbole.el b/hyperbole.el
index 54bb122..b8d2340 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -335,6 +335,16 @@ bindings after load)."
 ;;; Load Hyperbole mouse bindings
 ;;; ************************************************************************
 
+;; From mouse-position.c in Emacs:
+;;    f = SELECTED_FRAME ();
+;;    XSETFRAME (lispy_dummy, f);
+;;
+;;  It seems like the XSETFRAME macro is not properly copying the value of f 
on initial frame selection under the macOS window system.
+;;  The problem occurs on other systems as well, e.g. Emacs 25.2 under Windows 
7.
+;;
+;;  Hyperbole resolves this problem by setting the
+;;  `mouse-position-function' variable below to properly set the
+;;  newly selected frame.
 (if (boundp 'mouse-position-function)
     (setq mouse-position-function
          (lambda (frame-x-dot-y)
diff --git a/hyrolo-logic.el b/hyrolo-logic.el
index e257df8..d532b6c 100644
--- a/hyrolo-logic.el
+++ b/hyrolo-logic.el
@@ -1,4 +1,4 @@
-;;; hyrolo-logic.el ---  Logic functions for GNU Hyperbole Rolo files
+;;; hyrolo-logic.el --- Logic functions for GNU Hyperbole Rolo files
 ;;
 ;; Author:       Bob Weiner
 ;;
diff --git a/kotl/kotl-autoloads.el b/kotl/kotl-autoloads.el
index 287ece2..daf4bc0 100644
--- a/kotl/kotl-autoloads.el
+++ b/kotl/kotl-autoloads.el
@@ -3,7 +3,7 @@
 ;;; Code:
 
 
-;;;### (autoloads nil "kexport" "kexport.el" (23052 38385 0 0))
+;;;### (autoloads nil "kexport" "kexport.el" (0 0 0 0))
 ;;; Generated autoloads from kexport.el
 
 (autoload 'kexport:html "kexport" "\
@@ -16,6 +16,8 @@ STILL TODO:
 
 \(fn EXPORT-FROM OUTPUT-TO &optional SOFT-NEWLINES-FLAG)" t nil)
 
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"kexport" '("kexport:")))
+
 ;;;***
 
 ;;;### (autoloads nil "kfile" "kfile.el" (22412 20800 0 0))
@@ -39,7 +41,14 @@ View an existing kotl version-2 file FILE-NAME in a 
read-only mode.
 
 ;;;***
 
-;;;### (autoloads nil "kimport" "kimport.el" (23052 38368 0 0))
+;;;### (autoloads nil "kfill" "kfill.el" (0 0 0 0))
+;;; Generated autoloads from kfill.el
+
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"kfill" '("fill-paragraph" "kfill:" "prior-fill-prefix" "set-fill-prefix")))
+
+;;;***
+
+;;;### (autoloads nil "kimport" "kimport.el" (0 0 0 0))
 ;;; Generated autoloads from kimport.el
 
 (defvar kimport:mode-alist '((t . kimport:text) (outline-mode . 
kimport:star-outline)) "\
@@ -124,6 +133,8 @@ The variable, `paragraph-start,' is used to determine 
paragraphs.
 
 \(fn IMPORT-FROM OUTPUT-TO &optional CHILDREN-P)" t nil)
 
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"kimport" '("kimport:")))
+
 ;;;***
 
 ;;;### (autoloads nil "klink" "klink.el" (22481 28335 0 0))
@@ -138,7 +149,14 @@ See documentation for `kcell:ref-to-id' for valid cell-ref 
formats.
 
 ;;;***
 
-;;;### (autoloads nil "kotl-mode" "kotl-mode.el" (23052 38304 0 0))
+;;;### (autoloads nil "kmenu" "kmenu.el" (0 0 0 0))
+;;; Generated autoloads from kmenu.el
+
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"kmenu" '("id-" "kotl-")))
+
+;;;***
+
+;;;### (autoloads nil "kotl-mode" "kotl-mode.el" (0 0 0 0))
 ;;; Generated autoloads from kotl-mode.el
 
 (autoload 'kotl-mode "kotl-mode" "\
@@ -187,11 +205,26 @@ Signal an error if current buffer is not a Hyperbole 
outline, else return t.
 
 \(fn)" nil nil)
 
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"kotl-mode" '("delete-selection-pre-hook" "kotl-mode" "yank-")))
+
+;;;***
+
+;;;### (autoloads nil "kview" "kview.el" (0 0 0 0))
+;;; Generated autoloads from kview.el
+
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"kview" '("kcell-view:" "kview:")))
+
+;;;***
+
+;;;### (autoloads nil "kvspec" "kvspec.el" (0 0 0 0))
+;;; Generated autoloads from kvspec.el
+
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"kvspec" '("kvspec:")))
+
 ;;;***
 
-;;;### (autoloads nil nil ("kcell.el" "kfill.el" "klabel.el" "kmenu.el"
-;;;;;;  "knode.el" "kprop-em.el" "kprop-xe.el" "kproperty.el" "kview.el"
-;;;;;;  "kvspec.el") (23052 38356 0 0))
+;;;### (autoloads nil nil ("kcell.el" "klabel.el" "knode.el" "kprop-em.el"
+;;;;;;  "kprop-xe.el" "kproperty.el") (0 0 0 0))
 
 ;;;***
 
diff --git a/man/hkey-help.txt b/man/hkey-help.txt
index 25dca92..c567c6d 100644
--- a/man/hkey-help.txt
+++ b/man/hkey-help.txt
@@ -9,7 +9,7 @@ Hyperbole
     1st press at an arg value   Value copied to minibuffer <- same
     2nd press at an arg value   Value used as argument     <- same
     In minibuffer               Accepts minibuffer arg     Completion help
-  On an implicit button         Activates button           Button help
+  On an implicit button/path    Activates button           Button help
   Within a koutline cell        Collapses and expands      Shows tree props
   Left of a koutline cell       Creates a klink            Moves a tree
   HyRolo Match Buffer           Edits entries and mails to e-mail addresses
@@ -73,6 +73,8 @@ Mouse-only Control
 
 Hyperbole Key Press/Click in Special Modes
   Region Active                 Yanks region at release    Kills and yanks at 
release
+  Company Mode Completion       Displays definition        Displays 
documentation
+  Treemacs                      Displays item              Display item
   Emacs Push Button             Activates button           Button help
   Thing Begin or End            Mark thing region          Mark & kill thing 
region
   Page Directory Listing        Jumps to page              <- same
@@ -81,7 +83,8 @@ Hyperbole Key Press/Click in Special Modes
   Assembly Language Mode        Jumps to id/include def    Jumps to next def
   Java Cross-reference Tag      Jumps to identifier def    Jumps to next def
   JavaScript and Python Modes   Jumps to identifier def    Jumps to next def
-  Any Lisp or Fortran Mode      Jumps to identifier def    Jumps to next def
+  Any Known Lisp or ChangeLog   Jumps to identifier def    Referent Doc
+  Fortran Mode                  Jumps to identifier def    Jumps to next def
   Emacs Lisp Compiler Error     Jumps to def with error    <- same
   Other Compiler Error          Jumps to src error line    <- same
   Grep or Occur Match           Jumps to match source line <- same
diff --git a/man/hyperbole.html b/man/hyperbole.html
index 44b27b4..6aa4874 100644
--- a/man/hyperbole.html
+++ b/man/hyperbole.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
 <html>
 <!-- This manual is for GNU Hyperbole
-(Edition 7.0.2b, Published February 2, 2019).
+(Edition 7.0.3, Published May 11, 2019).
 
 Copyright (C) 1989-2019  Free Software Foundation, Inc.
 
@@ -260,47 +260,48 @@ ul.no-bullet {list-style: none}
   </ul></li>
   <li><a name="toc-Smart-Keyboard-Keys-1" href="#Smart-Keyboard-Keys">E.2 
Smart Keyboard Keys</a>
   <ul class="no-bullet">
-    <li><a name="toc-Smart-Key-_002d-Treemacs-1" 
href="#Smart-Key-_002d-Treemacs">E.2.1 Smart Key - Treemacs</a></li>
-    <li><a name="toc-Smart-Key-_002d-Emacs-Pushbuttons-1" 
href="#Smart-Key-_002d-Emacs-Pushbuttons">E.2.2 Smart Key - Emacs 
Pushbuttons</a></li>
-    <li><a name="toc-Smart-Key-_002d-Argument-Completion-1" 
href="#Smart-Key-_002d-Argument-Completion">E.2.3 Smart Key - Argument 
Completion</a></li>
-    <li><a name="toc-Smart-Key-_002d-ID-Edit-Mode-1" 
href="#Smart-Key-_002d-ID-Edit-Mode">E.2.4 Smart Key - ID Edit Mode</a></li>
-    <li><a 
name="toc-Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029-1" 
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029">E.2.5 Smart 
Key - Emacs Cross-references (Xrefs)</a></li>
-    <li><a name="toc-Smart-Key-_002d-Smart-Scrolling-1" 
href="#Smart-Key-_002d-Smart-Scrolling">E.2.6 Smart Key - Smart 
Scrolling</a></li>
-    <li><a name="toc-Smart-Key-_002d-Smart-Menus-1" 
href="#Smart-Key-_002d-Smart-Menus">E.2.7 Smart Key - Smart Menus</a></li>
-    <li><a name="toc-Smart-Key-_002d-Dired-Mode-1" 
href="#Smart-Key-_002d-Dired-Mode">E.2.8 Smart Key - Dired Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Hyperbole-Buttons-1" 
href="#Smart-Key-_002d-Hyperbole-Buttons">E.2.9 Smart Key - Hyperbole 
Buttons</a></li>
-    <li><a name="toc-Smart-Key-_002d-View-Mode-1" 
href="#Smart-Key-_002d-View-Mode">E.2.10 Smart Key - View Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Delimited-Things-1" 
href="#Smart-Key-_002d-Delimited-Things">E.2.11 Smart Key - Delimited 
Things</a></li>
-    <li><a name="toc-Smart-Key-_002d-The-Koutliner-1" 
href="#Smart-Key-_002d-The-Koutliner">E.2.12 Smart Key - The Koutliner</a></li>
-    <li><a name="toc-Smart-Key-_002d-RDB-Mode-1" 
href="#Smart-Key-_002d-RDB-Mode">E.2.13 Smart Key - RDB Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Help-Buffers-1" 
href="#Smart-Key-_002d-Help-Buffers">E.2.14 Smart Key - Help Buffers</a></li>
-    <li><a name="toc-Smart-Key-_002d-Pages-Directory-Mode-1" 
href="#Smart-Key-_002d-Pages-Directory-Mode">E.2.15 Smart Key - Pages Directory 
Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Python-Source-Code-1" 
href="#Smart-Key-_002d-Python-Source-Code">E.2.16 Smart Key - Python Source 
Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Identifier-Menu-Mode-1" 
href="#Smart-Key-_002d-Identifier-Menu-Mode">E.2.17 Smart Key - Identifier Menu 
Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-C-Source-Code-1" 
href="#Smart-Key-_002d-C-Source-Code">E.2.18 Smart Key - C Source Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-C_002b_002b-Source-Code-1" 
href="#Smart-Key-_002d-C_002b_002b-Source-Code">E.2.19 Smart Key - C++ Source 
Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Assembly-Source-Code-1" 
href="#Smart-Key-_002d-Assembly-Source-Code">E.2.20 Smart Key - Assembly Source 
Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Lisp-Source-Code-1" 
href="#Smart-Key-_002d-Lisp-Source-Code">E.2.21 Smart Key - Lisp Source 
Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Java-Source-Code-1" 
href="#Smart-Key-_002d-Java-Source-Code">E.2.22 Smart Key - Java Source 
Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-JavaScript-Source-Code-1" 
href="#Smart-Key-_002d-JavaScript-Source-Code">E.2.23 Smart Key - JavaScript 
Source Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Objective_002dC-Source-Code-1" 
href="#Smart-Key-_002d-Objective_002dC-Source-Code">E.2.24 Smart Key - 
Objective-C Source Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Fortran-Source-Code-1" 
href="#Smart-Key-_002d-Fortran-Source-Code">E.2.25 Smart Key - Fortran Source 
Code</a></li>
-    <li><a name="toc-Smart-Key-_002d-Occurrence-Matches-1" 
href="#Smart-Key-_002d-Occurrence-Matches">E.2.26 Smart Key - Occurrence 
Matches</a></li>
-    <li><a name="toc-Smart-Key-_002d-Calendar-Mode-1" 
href="#Smart-Key-_002d-Calendar-Mode">E.2.27 Smart Key - Calendar Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Man-Page-Apropos-1" 
href="#Smart-Key-_002d-Man-Page-Apropos">E.2.28 Smart Key - Man Page 
Apropos</a></li>
-    <li><a name="toc-Smart-Key-_002d-Emacs-Outline-Mode-1" 
href="#Smart-Key-_002d-Emacs-Outline-Mode">E.2.29 Smart Key - Emacs Outline 
Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Info-Manuals-1" 
href="#Smart-Key-_002d-Info-Manuals">E.2.30 Smart Key - Info Manuals</a></li>
-    <li><a name="toc-Smart-Key-_002d-Email-Composers-1" 
href="#Smart-Key-_002d-Email-Composers">E.2.31 Smart Key - Email 
Composers</a></li>
-    <li><a name="toc-Smart-Key-_002d-GNUS-Newsreader-1" 
href="#Smart-Key-_002d-GNUS-Newsreader">E.2.32 Smart Key - GNUS 
Newsreader</a></li>
-    <li><a name="toc-Smart-Key-_002d-Buffer-Menus-1" 
href="#Smart-Key-_002d-Buffer-Menus">E.2.33 Smart Key - Buffer Menus</a></li>
-    <li><a name="toc-Smart-Key-_002d-Tar-File-Mode-1" 
href="#Smart-Key-_002d-Tar-File-Mode">E.2.34 Smart Key - Tar File Mode</a></li>
-    <li><a name="toc-Smart-Key-_002d-Man-Pages-1" 
href="#Smart-Key-_002d-Man-Pages">E.2.35 Smart Key - Man Pages</a></li>
-    <li><a name="toc-Smart-Key-_002d-WWW-URLs-1" 
href="#Smart-Key-_002d-WWW-URLs">E.2.36 Smart Key - WWW URLs</a></li>
-    <li><a name="toc-Smart-Key-_002d-HyRolo-Match-Buffers-1" 
href="#Smart-Key-_002d-HyRolo-Match-Buffers">E.2.37 Smart Key - HyRolo Match 
Buffers</a></li>
-    <li><a name="toc-Smart-Key-_002d-Image-Thumbnails-1" 
href="#Smart-Key-_002d-Image-Thumbnails">E.2.38 Smart Key - Image 
Thumbnails</a></li>
-    <li><a name="toc-Smart-Key-_002d-Gomoku-Game-1" 
href="#Smart-Key-_002d-Gomoku-Game">E.2.39 Smart Key - Gomoku Game</a></li>
-    <li><a name="toc-Smart-Key-_002d-The-OO_002dBrowser-1" 
href="#Smart-Key-_002d-The-OO_002dBrowser">E.2.40 Smart Key - The 
OO-Browser</a></li>
-    <li><a name="toc-Smart-Key-_002d-Default-Context-1" 
href="#Smart-Key-_002d-Default-Context">E.2.41 Smart Key - Default 
Context</a></li>
+    <li><a name="toc-Smart-Key-_002d-Company-Mode-1" 
href="#Smart-Key-_002d-Company-Mode">E.2.1 Smart Key - Company Mode</a></li>
+    <li><a name="toc-Smart-Key-_002d-Treemacs-1" 
href="#Smart-Key-_002d-Treemacs">E.2.2 Smart Key - Treemacs</a></li>
+    <li><a name="toc-Smart-Key-_002d-Emacs-Pushbuttons-1" 
href="#Smart-Key-_002d-Emacs-Pushbuttons">E.2.3 Smart Key - Emacs 
Pushbuttons</a></li>
+    <li><a name="toc-Smart-Key-_002d-Argument-Completion-1" 
href="#Smart-Key-_002d-Argument-Completion">E.2.4 Smart Key - Argument 
Completion</a></li>
+    <li><a name="toc-Smart-Key-_002d-ID-Edit-Mode-1" 
href="#Smart-Key-_002d-ID-Edit-Mode">E.2.5 Smart Key - ID Edit Mode</a></li>
+    <li><a 
name="toc-Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029-1" 
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029">E.2.6 Smart 
Key - Emacs Cross-references (Xrefs)</a></li>
+    <li><a name="toc-Smart-Key-_002d-Smart-Scrolling-1" 
href="#Smart-Key-_002d-Smart-Scrolling">E.2.7 Smart Key - Smart 
Scrolling</a></li>
+    <li><a name="toc-Smart-Key-_002d-Smart-Menus-1" 
href="#Smart-Key-_002d-Smart-Menus">E.2.8 Smart Key - Smart Menus</a></li>
+    <li><a name="toc-Smart-Key-_002d-Dired-Mode-1" 
href="#Smart-Key-_002d-Dired-Mode">E.2.9 Smart Key - Dired Mode</a></li>
+    <li><a name="toc-Smart-Key-_002d-Hyperbole-Buttons-1" 
href="#Smart-Key-_002d-Hyperbole-Buttons">E.2.10 Smart Key - Hyperbole 
Buttons</a></li>
+    <li><a name="toc-Smart-Key-_002d-View-Mode-1" 
href="#Smart-Key-_002d-View-Mode">E.2.11 Smart Key - View Mode</a></li>
+    <li><a name="toc-Smart-Key-_002d-Delimited-Things-1" 
href="#Smart-Key-_002d-Delimited-Things">E.2.12 Smart Key - Delimited 
Things</a></li>
+    <li><a name="toc-Smart-Key-_002d-The-Koutliner-1" 
href="#Smart-Key-_002d-The-Koutliner">E.2.13 Smart Key - The Koutliner</a></li>
+    <li><a name="toc-Smart-Key-_002d-RDB-Mode-1" 
href="#Smart-Key-_002d-RDB-Mode">E.2.14 Smart Key - RDB Mode</a></li>
+    <li><a name="toc-Smart-Key-_002d-Help-Buffers-1" 
href="#Smart-Key-_002d-Help-Buffers">E.2.15 Smart Key - Help Buffers</a></li>
+    <li><a name="toc-Smart-Key-_002d-Pages-Directory-Mode-1" 
href="#Smart-Key-_002d-Pages-Directory-Mode">E.2.16 Smart Key - Pages Directory 
Mode</a></li>
+    <li><a name="toc-Smart-Key-_002d-Python-Source-Code-1" 
href="#Smart-Key-_002d-Python-Source-Code">E.2.17 Smart Key - Python Source 
Code</a></li>
+    <li><a name="toc-Smart-Key-_002d-Identifier-Menu-Mode-1" 
href="#Smart-Key-_002d-Identifier-Menu-Mode">E.2.18 Smart Key - Identifier Menu 
Mode</a></li>
+    <li><a name="toc-Smart-Key-_002d-C-Source-Code-1" 
href="#Smart-Key-_002d-C-Source-Code">E.2.19 Smart Key - C Source Code</a></li>
+    <li><a name="toc-Smart-Key-_002d-C_002b_002b-Source-Code-1" 
href="#Smart-Key-_002d-C_002b_002b-Source-Code">E.2.20 Smart Key - C++ Source 
Code</a></li>
+    <li><a name="toc-Smart-Key-_002d-Assembly-Source-Code-1" 
href="#Smart-Key-_002d-Assembly-Source-Code">E.2.21 Smart Key - Assembly Source 
Code</a></li>
+    <li><a name="toc-Smart-Key-_002d-Lisp-Source-Code-1" 
href="#Smart-Key-_002d-Lisp-Source-Code">E.2.22 Smart Key - Lisp Source 
Code</a></li>
+    <li><a name="toc-Smart-Key-_002d-Java-Source-Code-1" 
href="#Smart-Key-_002d-Java-Source-Code">E.2.23 Smart Key - Java Source 
Code</a></li>
+    <li><a name="toc-Smart-Key-_002d-JavaScript-Source-Code-1" 
href="#Smart-Key-_002d-JavaScript-Source-Code">E.2.24 Smart Key - JavaScript 
Source Code</a></li>
+    <li><a name="toc-Smart-Key-_002d-Objective_002dC-Source-Code-1" 
href="#Smart-Key-_002d-Objective_002dC-Source-Code">E.2.25 Smart Key - 
Objective-C Source Code</a></li>
+    <li><a name="toc-Smart-Key-_002d-Fortran-Source-Code-1" 
href="#Smart-Key-_002d-Fortran-Source-Code">E.2.26 Smart Key - Fortran Source 
Code</a></li>
+    <li><a name="toc-Smart-Key-_002d-Occurrence-Matches-1" 
href="#Smart-Key-_002d-Occurrence-Matches">E.2.27 Smart Key - Occurrence 
Matches</a></li>
+    <li><a name="toc-Smart-Key-_002d-Calendar-Mode-1" 
href="#Smart-Key-_002d-Calendar-Mode">E.2.28 Smart Key - Calendar Mode</a></li>
+    <li><a name="toc-Smart-Key-_002d-Man-Page-Apropos-1" 
href="#Smart-Key-_002d-Man-Page-Apropos">E.2.29 Smart Key - Man Page 
Apropos</a></li>
+    <li><a name="toc-Smart-Key-_002d-Emacs-Outline-Mode-1" 
href="#Smart-Key-_002d-Emacs-Outline-Mode">E.2.30 Smart Key - Emacs Outline 
Mode</a></li>
+    <li><a name="toc-Smart-Key-_002d-Info-Manuals-1" 
href="#Smart-Key-_002d-Info-Manuals">E.2.31 Smart Key - Info Manuals</a></li>
+    <li><a name="toc-Smart-Key-_002d-Email-Composers-1" 
href="#Smart-Key-_002d-Email-Composers">E.2.32 Smart Key - Email 
Composers</a></li>
+    <li><a name="toc-Smart-Key-_002d-GNUS-Newsreader-1" 
href="#Smart-Key-_002d-GNUS-Newsreader">E.2.33 Smart Key - GNUS 
Newsreader</a></li>
+    <li><a name="toc-Smart-Key-_002d-Buffer-Menus-1" 
href="#Smart-Key-_002d-Buffer-Menus">E.2.34 Smart Key - Buffer Menus</a></li>
+    <li><a name="toc-Smart-Key-_002d-Tar-File-Mode-1" 
href="#Smart-Key-_002d-Tar-File-Mode">E.2.35 Smart Key - Tar File Mode</a></li>
+    <li><a name="toc-Smart-Key-_002d-Man-Pages-1" 
href="#Smart-Key-_002d-Man-Pages">E.2.36 Smart Key - Man Pages</a></li>
+    <li><a name="toc-Smart-Key-_002d-WWW-URLs-1" 
href="#Smart-Key-_002d-WWW-URLs">E.2.37 Smart Key - WWW URLs</a></li>
+    <li><a name="toc-Smart-Key-_002d-HyRolo-Match-Buffers-1" 
href="#Smart-Key-_002d-HyRolo-Match-Buffers">E.2.38 Smart Key - HyRolo Match 
Buffers</a></li>
+    <li><a name="toc-Smart-Key-_002d-Image-Thumbnails-1" 
href="#Smart-Key-_002d-Image-Thumbnails">E.2.39 Smart Key - Image 
Thumbnails</a></li>
+    <li><a name="toc-Smart-Key-_002d-Gomoku-Game-1" 
href="#Smart-Key-_002d-Gomoku-Game">E.2.40 Smart Key - Gomoku Game</a></li>
+    <li><a name="toc-Smart-Key-_002d-The-OO_002dBrowser-1" 
href="#Smart-Key-_002d-The-OO_002dBrowser">E.2.41 Smart Key - The 
OO-Browser</a></li>
+    <li><a name="toc-Smart-Key-_002d-Default-Context-1" 
href="#Smart-Key-_002d-Default-Context">E.2.42 Smart Key - Default 
Context</a></li>
   </ul></li>
 </ul></li>
 <li><a name="toc-Suggestion-or-Bug-Reporting-1" 
href="#Suggestion-or-Bug-Reporting">Appendix F Suggestion or Bug 
Reporting</a></li>
@@ -328,6 +329,9 @@ Next: <a href="#Introduction" accesskey="n" 
rel="next">Introduction</a>, Previou
 
 <CENTER><H2>The Everyday Hypertextual Information Manager</H2></CENTER>
 
+<CENTER><H3><A HREF="https://saythanks.io/to/rswgnu";>Say thanks if you like 
Hyperbole.</A></H3></CENTER>
+
+
 <P>Copyright &copy; 1989-2019  Free Software Foundation, Inc.</P>
 
 <P>GNU Hyperbole is available for use, modification, and distribution under
@@ -340,8 +344,8 @@ WITHOUT ANY WARRANTY, without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
 
 <PRE>
-Edition 7.0.2b
-Printed February 2, 2019.
+Edition 7.0.3
+Printed May 11, 2019.
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -692,7 +696,9 @@ Smart Mouse Keys
 
 Smart Keyboard Keys
 
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Treemacs">Smart Key - 
Treemacs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Company-Mode">Smart Key - Company 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Treemacs">Smart Key - 
Treemacs</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Pushbuttons">Smart Key - Emacs 
Pushbuttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
@@ -722,6 +728,8 @@ Smart Keyboard Keys
 </td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Pages-Directory-Mode">Smart Key - Pages Directory 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier Menu Mode 
</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-C-Source-Code">Smart Key - C Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
@@ -736,8 +744,6 @@ Smart Keyboard Keys
 </td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-JavaScript-Source-Code">Smart Key - JavaScript Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
-</td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key - Objective-C 
Source Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Fortran-Source-Code">Smart Key - Fortran Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
@@ -788,7 +794,7 @@ Next: <a href="#Smart-Keys" accesskey="n" rel="next">Smart 
Keys</a>, Previous: <
 <h2 class="chapter">1 Introduction</h2>
 
 <p>This edition of the GNU Hyperbole Manual is for use with any version
-7.0.2b or greater of GNU Hyperbole.  Hyperbole runs atop GNU Emacs 24.3
+7.0.3 or greater of GNU Hyperbole.  Hyperbole runs atop GNU Emacs 24.3
 or higher.  It will trigger an error if your Emacs is older.
 </p>
 <p>This chapter summarizes the structure of the rest of the manual,
@@ -1292,7 +1298,7 @@ Hyperbole
     1st press at an arg value   Value copied to minibuffer &lt;- same
     2nd press at an arg value   Value used as argument     &lt;- same
     In minibuffer               Accepts minibuffer arg     Completion help
-  On an implicit button         Activates button           Button help
+  On an implicit button/path    Activates button           Button help
   Within a koutline cell        Collapses and expands      Shows tree props
   Left of a koutline cell       Creates a klink            Moves a tree
   HyRolo Match Buffer           Edits entries and mails to e-mail addresses
@@ -1356,6 +1362,8 @@ Mouse-only Control
 
 Hyperbole Key Press/Click in Special Modes
   Region Active                 Yanks region at release    Kills and yanks at 
release
+  Company Mode Completion       Displays definition        Displays 
documentation
+  Treemacs                      Displays item              Display item
   Emacs Push Button             Activates button           Button help
   Thing Begin or End            Mark thing region          Mark &amp; kill 
thing region
   Page Directory Listing        Jumps to page              &lt;- same
@@ -1364,7 +1372,8 @@ Hyperbole Key Press/Click in Special Modes
   Assembly Language Mode        Jumps to id/include def    Jumps to next def
   Java Cross-reference Tag      Jumps to identifier def    Jumps to next def
   JavaScript and Python Modes   Jumps to identifier def    Jumps to next def
-  Any Lisp or Fortran Mode      Jumps to identifier def    Jumps to next def
+  Any Known Lisp or ChangeLog   Jumps to identifier def    Referent Doc
+  Fortran Mode                  Jumps to identifier def    Jumps to next def
   Emacs Lisp Compiler Error     Jumps to def with error    &lt;- same
   Other Compiler Error          Jumps to src error line    &lt;- same
   Grep or Occur Match           Jumps to match source line &lt;- same
@@ -1671,7 +1680,7 @@ on the last line to end the dired session (bury its 
buffer).
 <p>If you use the Treemacs file viewer Emacs package, you can configure 
Hyperbole
 to use this instead of Dired when you click on a modeline buffer id.
 </p>
-<p>Since this is a customization option, it may be change permanently like so.
+<p>Since this is a customization option, it may be changed permanently like so.
 Use <kbd>{M-x customize-set-variable <span class="key">RET</span> 
action-key-modeline-buffer-id-function <span class="key">RET</span>}</kbd>.
 Change the value to <code>smart-treemacs-modeline</code>.  Then press <tt 
class="key">RET</tt>.  To change it back
 to Hyperbole&rsquo;s default, use the value, <code>dired-jump</code>.
@@ -1963,14 +1972,15 @@ Next: <a href="#Keyboard-Drags" accesskey="n" 
rel="next">Keyboard Drags</a>, Pre
 <a name="index-drag_002c-dired-item"></a>
 <a name="index-drag_002c-buffer-menu-item"></a>
 <a name="index-drag_002c-Treemacs-item"></a>
-<p>You can do the same thing with items in dired, buffer menu and ibuffer menu
-listing buffers rather than buffers themselves.  Drag with the Action Mouse Key
-and the selected item will be displayed in any Emacs window in which you
-release.  Drag outside Emacs and it will be displayed in a new frame.  To
-display the last item you want, press the Action Key on it and it will display
-within the listing window itself.  (If you use the Treemacs file viewer 
package,
-item dragging works there as well).  Remember that you can emulate these drags
-from the keyboard when needed, see <a href="#Keyboard-Drags">Keyboard 
Drags</a>.
+<p>You can also drag items to other windows with the Action Key in Dired,
+Buffer Menu, Ibuffer and Treemacs listing buffers, rather than the
+buffers themselves.  Drag with the Action Mouse Key and the selected
+item will be displayed in any Emacs window in which you release.  Drag
+outside Emacs and it will be displayed in a new frame.  To display the
+last item you want within the listing window itself, press and release
+the Action Key on that item after dragging your other items to their
+respective windows.  Remember that you can emulate these drags from
+the keyboard when needed, see <a href="#Keyboard-Drags">Keyboard Drags</a>.
 </p>
 <p>So now you can put a bunch of buffers and files on your screen wherever
 you like.  Typically, a brief visual pulse is shown first at the source item 
and
@@ -2010,26 +2020,30 @@ session since drag actions are not supported without a 
window system.
 <a name="index-window-by-letter"></a>
 <a name="index-jump-to-window-by-letter"></a>
 <a name="index-keyboard_002c-jump-to-window"></a>
-<p>For even faster keyboard-based display of items, use the Emacs
-package <code>ace-window</code> (see <a 
href="https://elpa.gnu.org/packages/ace-window.html";>https://elpa.gnu.org/packages/ace-window.html</a>).
+<p>For even faster keyboard-based display of items and drag emulations,
+use the Emacs package <code>ace-window</code>
+(see <a 
href="https://elpa.gnu.org/packages/ace-window.html";>https://elpa.gnu.org/packages/ace-window.html</a>).
 </p>
 <p>The ace-window package assigns short letter IDs to each Emacs window and 
lets
 you jump to or operate upon a specific window by giving its ID.  Hyperbole can
 add commands to ace-window that replace the two-step drag emulation key
-described above with a single key sequence that displays dired or
-buffer menu <em>items</em>.
+described above with a single key sequence that does not require moving to
+the drag target window since it is specified by ID as part of the command.
 </p>
 <p>To enable this feature, in your Emacs initialization file after
 Hyperbole is initialized, if you do not have a key bound for
 <code>ace-window</code>, then call: <code>(hkey-ace-window-setup 
\&quot;\M-o\&quot;)</code>
-to bind it to <kbd>{M-o}</kbd>.  Otherwise, call the setup function without
-a key: <code>(hkey-ace-window-setup)</code>.
+to bind it to <kbd>{M-o}</kbd>, replacing Hyperbole&rsquo;s
+default <code>hkey-operate</code> command there (because ace-window can emulate
+the drags performed by <code>hkey-operate</code>).  If you already have a key 
bound
+for <code>ace-window</code>, then just ensure it is initialized by calling
+<code>(hkey-ace-window-setup)</code> without a key argument.
 </p>
 <a name="index-link-creation-from-keyboard"></a>
 <a name="index-keyboard-link-creation"></a>
 <a name="index-M_002do-i-_003cwindow_002did_003e"></a>
-<a name="index-M_002do-r-_003cwindow_002did_003e"></a>
 <a name="index-M_002do-m-_003cwindow_002did_003e"></a>
+<a name="index-M_002do-r-_003cwindow_002did_003e"></a>
 <a name="index-M_002do-t-_003cwindow_002did_003e"></a>
 <a name="index-drag-item"></a>
 <a name="index-replace-window-buffer"></a>
@@ -2042,16 +2056,35 @@ a key: <code>(hkey-ace-window-setup)</code>.
 <p>After setup, the leftmost character or two of each window&rsquo;s modeline 
will show
 the ID to type to use that window as the drag destination.  Then whenever point
 is on an item you want displayed in another window, use <kbd>{M-o i
-&lt;id-of-window-to-display-item-in&gt;}</kbd> and watch the magic happen.  
You can also use
-this command to create explicit button links to other window buffers when in 
an editable
-buffer rather than on an item.  If you want to display multiple items in 
different
-windows, instead use the <kbd>{M-o t 
&lt;id-of-window-to-display-item-in&gt;}</kbd> key sequence to
+&lt;id-of-window-to-display-item-in&gt;}</kbd> and watch the magic happen.  If 
you
+want to display multiple items in different windows, instead use
+the <kbd>{M-o t &lt;id-of-window-to-display-item-in&gt;}</kbd> key sequence to
 <em>throw</em> the item to the window.  To <em>replace</em>
 the selected window&rsquo;s buffer with that of another window, use
 <kbd>{M-o r &lt;id-of-window-displaying-desired-buffer&gt;}</kbd>.  To instead
 <em>swap</em> the selected window&rsquo;s buffer with that of another window,
 use <kbd>{M-o m &lt;id-of-window-to-swap-with&gt;}</kbd>.
 </p>
+<p>In summary:
+</p><dl compact="compact">
+<dt>M-o i &lt;window&gt;</dt>
+<dd><p>insert listing item at point into &lt;window&gt;; if not on a listing 
item,
+trigger an error
+</p>
+</dd>
+<dt>M-o m &lt;window&gt;</dt>
+<dd><p>swap the buffers in the selected window and &lt;window&gt;
+</p>
+</dd>
+<dt>M-o r &lt;window&gt;</dt>
+<dd><p>replace the selected (current) window&rsquo;s buffer with that of 
&lt;window&gt;
+</p>
+</dd>
+<dt>M-o t &lt;window&gt;</dt>
+<dd><p>throw listing item at point or current buffer to &lt;window&gt;
+</p></dd>
+</dl>
+
 
 
 
@@ -2290,10 +2323,10 @@ type</em> identifies a pattern or state that when 
matched triggers
 an <em>action</em> associated with the implicit button type.  The action
 is specified by either a Hyperbole action type (see <a 
href="#Action-Types">Action Types</a>)
 or an Emacs Lisp function.  Implicit button types may use the same
-action types that explicit buttons use.  As an example, a pathname
-implicit button type would match to any existing local filename or
-directory name and its action would be to display the associated file
-or directory, typically in another window.
+action types that explicit buttons use.  As an example, the pathname
+implicit button type matches to any existing local filename or
+directory name and its action displays the associated file or
+directory, typically in another window.
 </p>
 <a name="index-file_002c-hibtypes_002eel"></a>
 <a name="index-context"></a>
@@ -2634,7 +2667,7 @@ produced by git log.
 </dd>
 <dt><code>github-reference</code></dt>
 <dd><p>Displays the Github entity associated with REFERENCE and optional USER 
and PROJECT.
-See <samp>DEMO#Github (Remote) References</samp> for examples.
+See <samp>../DEMO#Github (Remote) References</samp> for examples.
 </p>
 <p>REFERENCE is a string of one of the following forms:
 </p><ul>
@@ -2669,6 +2702,51 @@ If given, PROJECT overrides any project value in 
REFERENCE.  If no
 PROJECT value is provided, it defaults to the value of
 <code>hibtypes-github-default-project</code>.
 </p>
+<a name="index-ibtypes-gitlab_002dreference"></a>
+<a name="index-gitlab-reference"></a>
+<a name="index-version-control-3"></a>
+<a name="index-hibtypes_002dgitlab_002ddefault_002dproject"></a>
+<a name="index-hibtypes_002dgitlab_002ddefault_002duser"></a>
+</dd>
+<dt><code>gitlab-reference</code></dt>
+<dd><p>Displays the Gitlab entity associated with REFERENCE and optional USER 
and PROJECT.
+See <samp>../DEMO#Gitlab (Remote) References</samp> for examples.
+</p>
+<p>REFERENCE is a string of one of the following forms:
+</p><ul>
+<li> &lt;ref-item&gt;
+</li><li> &lt;user&gt;/&lt;project&gt;/&lt;ref-item&gt;
+</li><li> &lt;project&gt;/&lt;ref-item&gt;
+</li><li> /&lt;group&gt;/&lt;project&gt;.
+or
+</li><li> /&lt;project-or-group&gt; (where a group is a colection of projects)
+</li></ul>
+
+<p>&lt;ref-item&gt; is one of these:
+</p><dl compact="compact">
+<dt>&bull; one of the words: activity, analytics, boards or kanban, branches, 
commits, contributors, groups, issues or list, jobs, labels, merge_requests, 
milestones, pages, pipelines, pipeline_charts, members or people or staff, 
projects, pulls, schedules, snippets, status or tags</dt>
+<dd><p>the associated items are listed
+</p></dd>
+<dt>&bull; one of the words: branch, commit(s), issue(s), milestone(s), 
pull(s), snippet(s) or tag(s) followed by a &rsquo;/&rsquo; or &rsquo;=&rsquo; 
and an item-id</dt>
+<dd><p>the item is shown
+</p></dd>
+<dt>&bull; an issue reference given by a positive integer, e.g. <em>92</em> or 
prefaced with <em>GL-</em>, like GL-92</dt>
+<dd><p>the issue is displayed
+</p></dd>
+<dt>&bull; a commit reference given by a hex number, 55a1f0</dt>
+<dd><p>the commit diff is displayed
+</p></dd>
+<dt>&bull; a branch or tag reference given by an alphanumeric name, e.g. 
hyper20</dt>
+<dd><p>the files in the branch are listed.
+</p></dd>
+</dl>
+
+<a name="index-hibtypes_002dgitlab_002ddefault_002duser-1"></a>
+<p>USER defaults to the value of <code>hibtypes-gitlab-default-user</code>.
+If given, PROJECT overrides any project value in REFERENCE.  If no
+PROJECT value is provided, it defaults to the value of
+<code>hibtypes-gitlab-default-project</code>.
+</p>
 <a name="index-ibtypes-social_002dreference"></a>
 <a name="index-hashtag"></a>
 <a name="index-username"></a>
@@ -2773,11 +2851,12 @@ at line-num and optional column-num.  Also works for 
remote pathnames.
 </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.
+delimited and non-delimited remote pathnames, Texinfo @file{}
+entries, and hash-style link references to HTML, Markdown or Emacs
+outline headings, and MSWindows paths (see <samp>${hyperb:dir}/DEMO#POSIX
+and MSWindows Paths</samp> for details).  Emacs Lisp library files
+(filenames without any directory component that end in .el and .elc)
+are looked up using the <code>load-path</code> directory list.
 </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
@@ -7872,14 +7951,7 @@ for each available window system: 
<code>hpath:external-display-alist-macos</code
 <code>hpath:external-display-alist-x</code>.  Examine and modify these
 values to suit your needs.
 </p>
-<a name="index-MIME"></a>
-<a name="index-mailcap"></a>
-<a name="index-external-viewer-1"></a>
-<p>On systems that have a MIME mailcap file (see
-<samp>www.wikiwand.com/en/Mailcap</samp>), this is used as a fallback
-set of external viewer associations when none are found
-within <code>hpath:get-external-display-alist</code>.
-</p>
+
 <hr>
 <a name="Link-Variable-Substitution"></a>
 <div class="header">
@@ -9348,23 +9420,25 @@ Previous: <a href="#Smart-Mouse-Keys" accesskey="p" 
rel="prev">Smart Mouse Keys<
 <h3 class="section">E.2 Smart Keyboard Keys</h3>
 
 <table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-_002d-Treemacs" 
accesskey="1">Smart Key - Treemacs</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Company-Mode" accesskey="1">Smart Key - Company 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="2">Smart Key - Emacs 
Pushbuttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-_002d-Treemacs" 
accesskey="2">Smart Key - Treemacs</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Argument-Completion" accesskey="3">Smart Key - Argument 
Completion</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="3">Smart Key - Emacs 
Pushbuttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="4">Smart Key - ID Edit 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Argument-Completion" accesskey="4">Smart Key - Argument 
Completion</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029" 
accesskey="5">Smart Key - Emacs Cross-references 
(Xrefs)</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="5">Smart Key - ID Edit 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Smart-Scrolling" accesskey="6">Smart Key - Smart 
Scrolling</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029" 
accesskey="6">Smart Key - Emacs Cross-references 
(Xrefs)</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Smart-Menus" accesskey="7">Smart Key - Smart 
Menus</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Smart-Scrolling" accesskey="7">Smart Key - Smart 
Scrolling</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-_002d-Dired-Mode" 
accesskey="8">Smart Key - Dired Mode</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Smart-Menus" accesskey="8">Smart Key - Smart 
Menus</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Hyperbole-Buttons" accesskey="9">Smart Key - Hyperbole 
Buttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+<tr><td align="left" valign="top">&bull; <a href="#Smart-Key-_002d-Dired-Mode" 
accesskey="9">Smart Key - Dired Mode</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Hyperbole-Buttons">Smart Key - Hyperbole 
Buttons</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-View-Mode">Smart Key - View 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
@@ -9378,6 +9452,8 @@ Previous: <a href="#Smart-Mouse-Keys" accesskey="p" 
rel="prev">Smart Mouse Keys<
 </td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Pages-Directory-Mode">Smart Key - Pages Directory 
Mode</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier Menu Mode 
</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-C-Source-Code">Smart Key - C Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
@@ -9392,8 +9468,6 @@ Previous: <a href="#Smart-Mouse-Keys" accesskey="p" 
rel="prev">Smart Mouse Keys<
 </td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-JavaScript-Source-Code">Smart Key - JavaScript Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
-<tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
-</td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key - Objective-C 
Source Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
 </td></tr>
 <tr><td align="left" valign="top">&bull; <a 
href="#Smart-Key-_002d-Fortran-Source-Code">Smart Key - Fortran Source 
Code</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
@@ -9432,14 +9506,37 @@ Previous: <a href="#Smart-Mouse-Keys" accesskey="p" 
rel="prev">Smart Mouse Keys<
 </td></tr>
 </table>
 
+
+<hr>
+<a name="Smart-Key-_002d-Company-Mode"></a>
+<div class="header">
+<p>
+Next: <a href="#Smart-Key-_002d-Treemacs" accesskey="n" rel="next">Smart Key - 
Treemacs</a>, Previous: <a href="#Smart-Keyboard-Keys" accesskey="p" 
rel="prev">Smart Keyboard Keys</a>, Up: <a href="#Smart-Keyboard-Keys" 
accesskey="u" rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Smart-Key-_002d-Company-Mode-1"></a>
+<h4 class="subsection">E.2.1 Smart Key - Company Mode</h4>
+
+<a name="index-company_002dmode"></a>
+<a name="index-completion-2"></a>
+<p>Company mode is an extensive in-buffer completion framework, often used to 
complete programming identifiers.
+</p>
+<div class="format">
+<pre class="format">When company-mode is active:
+  ACTION KEY
+     Displays selected item&rsquo;s definition.
+  ASSIST KEY
+     Displays the documentation, if any, for the selected item.
+</pre></div>
+
+
 <hr>
 <a name="Smart-Key-_002d-Treemacs"></a>
 <div class="header">
 <p>
-Next: <a href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="n" 
rel="next">Smart Key - Emacs Pushbuttons</a>, Previous: <a 
href="#Smart-Keyboard-Keys" accesskey="p" rel="prev">Smart Keyboard Keys</a>, 
Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard 
Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
+Next: <a href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="n" 
rel="next">Smart Key - Emacs Pushbuttons</a>, Previous: <a 
href="#Smart-Key-_002d-Company-Mode" accesskey="p" rel="prev">Smart Key - 
Company Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Treemacs-1"></a>
-<h4 class="subsection">E.2.1 Smart Key - Treemacs</h4>
+<h4 class="subsection">E.2.2 Smart Key - Treemacs</h4>
 
 <a name="index-Treemacs-1"></a>
 <p>Treemacs is an add-on Emacs package that offers a fixed, per-frame, 
graphical
@@ -9457,10 +9554,10 @@ See <a 
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer Items
          collapse the entry;
      (2) elsewhere within an entry line, the item is displayed for editing,
          normally in another window;
-     (3) at the end of an entry line: invoke 
<code>action-key-eol-function</code>,
-         typically to scroll up proportionally, if an Action Key press; invoke
-         <code>assist-key-eol-function</code>, typically to scroll down 
proportionally,
-         if an Assist Key press;
+     (3) at the end of an entry line: if an Action Key press, invokes
+         <code>action-key-eol-function</code>, typically to scroll up 
proportionally;
+         if an Assist Key press, invokes <code>assist-key-eol-function</code>, 
typically
+         to scroll down proportionally;
      (4) on the first line of the buffer (other than the end of line),
          dired is run on the current directory of this Treemacs;
      (5) at the end of the first or last line of the buffer,
@@ -9475,7 +9572,7 @@ See <a 
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer Items
 Next: <a href="#Smart-Key-_002d-Argument-Completion" accesskey="n" 
rel="next">Smart Key - Argument Completion</a>, Previous: <a 
href="#Smart-Key-_002d-Treemacs" accesskey="p" rel="prev">Smart Key - 
Treemacs</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart 
Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Emacs-Pushbuttons-1"></a>
-<h4 class="subsection">E.2.2 Smart Key - Emacs Pushbuttons</h4>
+<h4 class="subsection">E.2.3 Smart Key - Emacs Pushbuttons</h4>
 
 <div class="format">
 <pre class="format">When over an Emacs pushbutton:
@@ -9492,7 +9589,7 @@ Next: <a href="#Smart-Key-_002d-Argument-Completion" 
accesskey="n" rel="next">Sm
 Next: <a href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="n" rel="next">Smart 
Key - ID Edit Mode</a>, Previous: <a href="#Smart-Key-_002d-Emacs-Pushbuttons" 
accesskey="p" rel="prev">Smart Key - Emacs Pushbuttons</a>, Up: <a 
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Argument-Completion-1"></a>
-<h4 class="subsection">E.2.3 Smart Key - Argument Completion</h4>
+<h4 class="subsection">E.2.4 Smart Key - Argument Completion</h4>
 
 <a name="index-Smart-Keyboard-Keys"></a>
 <div class="format">
@@ -9503,7 +9600,7 @@ Next: <a href="#Smart-Key-_002d-ID-Edit-Mode" 
accesskey="n" rel="next">Smart Key
      Offers completions for the current minibuffer argument.
 </pre></div>
 
-<a name="index-completion-2"></a>
+<a name="index-completion-3"></a>
 <div class="format">
 <pre class="format">When reading a Hyperbole menu item or an argument with 
completion:
   ACTION KEY
@@ -9523,7 +9620,7 @@ Next: <a href="#Smart-Key-_002d-ID-Edit-Mode" 
accesskey="n" rel="next">Smart Key
 Next: <a href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029" 
accesskey="n" rel="next">Smart Key - Emacs Cross-references (Xrefs)</a>, 
Previous: <a href="#Smart-Key-_002d-Argument-Completion" accesskey="p" 
rel="prev">Smart Key - Argument Completion</a>, Up: <a 
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-ID-Edit-Mode-1"></a>
-<h4 class="subsection">E.2.4 Smart Key - ID Edit Mode</h4>
+<h4 class="subsection">E.2.5 Smart Key - ID Edit Mode</h4>
 <div class="format">
 <pre class="format">If in ID Edit mode (a package within InfoDock, not 
included in
 Hyperbole, that supports rapid marking, killing, copying, yanking and
@@ -9539,7 +9636,7 @@ display-management):
 Next: <a href="#Smart-Key-_002d-Smart-Scrolling" accesskey="n" 
rel="next">Smart Key - Smart Scrolling</a>, Previous: <a 
href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="p" rel="prev">Smart Key - ID 
Edit Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart 
Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029-1"></a>
-<h4 class="subsection">E.2.5 Smart Key - Emacs Cross-references (Xrefs)</h4>
+<h4 class="subsection">E.2.6 Smart Key - Emacs Cross-references (Xrefs)</h4>
 
 <div class="format">
 <pre class="format">When over an Emacs cross-reference:
@@ -9557,7 +9654,7 @@ Next: <a href="#Smart-Key-_002d-Smart-Scrolling" 
accesskey="n" rel="next">Smart
 Next: <a href="#Smart-Key-_002d-Smart-Menus" accesskey="n" rel="next">Smart 
Key - Smart Menus</a>, Previous: <a 
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029" 
accesskey="p" rel="prev">Smart Key - Emacs Cross-references (Xrefs)</a>, Up: <a 
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Smart-Scrolling-1"></a>
-<h4 class="subsection">E.2.6 Smart Key - Smart Scrolling</h4>
+<h4 class="subsection">E.2.7 Smart Key - Smart Scrolling</h4>
 
 <a name="index-smart_002dscroll_002dproportional"></a>
 <a name="index-proportional-scrolling-1"></a>
@@ -9595,7 +9692,7 @@ Next: <a href="#Smart-Key-_002d-Smart-Menus" 
accesskey="n" rel="next">Smart Key
 Next: <a href="#Smart-Key-_002d-Dired-Mode" accesskey="n" rel="next">Smart Key 
- Dired Mode</a>, Previous: <a href="#Smart-Key-_002d-Smart-Scrolling" 
accesskey="p" rel="prev">Smart Key - Smart Scrolling</a>, Up: <a 
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Smart-Menus-1"></a>
-<h4 class="subsection">E.2.7 Smart Key - Smart Menus</h4>
+<h4 class="subsection">E.2.8 Smart Key - Smart Menus</h4>
 
 <p>Smart Menus are an older in-buffer menu system that worked on dumb
 terminals and pre-dated Emacs&rsquo; own dumb terminal menu support.  They
@@ -9629,7 +9726,7 @@ necesary for its use.
 Next: <a href="#Smart-Key-_002d-Hyperbole-Buttons" accesskey="n" 
rel="next">Smart Key - Hyperbole Buttons</a>, Previous: <a 
href="#Smart-Key-_002d-Smart-Menus" accesskey="p" rel="prev">Smart Key - Smart 
Menus</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart 
Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Dired-Mode-1"></a>
-<h4 class="subsection">E.2.8 Smart Key - Dired Mode</h4>
+<h4 class="subsection">E.2.9 Smart Key - Dired Mode</h4>
 <a name="index-click_002c-dired"></a>
 <a name="index-drag_002c-dired"></a>
 <a name="index-dired-browsing"></a>
@@ -9670,7 +9767,7 @@ Next: <a href="#Smart-Key-_002d-Hyperbole-Buttons" 
accesskey="n" rel="next">Smar
 Next: <a href="#Smart-Key-_002d-View-Mode" accesskey="n" rel="next">Smart Key 
- View Mode</a>, Previous: <a href="#Smart-Key-_002d-Dired-Mode" accesskey="p" 
rel="prev">Smart Key - Dired Mode</a>, Up: <a href="#Smart-Keyboard-Keys" 
accesskey="u" rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Hyperbole-Buttons-1"></a>
-<h4 class="subsection">E.2.9 Smart Key - Hyperbole Buttons</h4>
+<h4 class="subsection">E.2.10 Smart Key - Hyperbole Buttons</h4>
 
 <a name="index-click_002c-button"></a>
 <a name="index-button-click"></a>
@@ -9690,7 +9787,7 @@ Next: <a href="#Smart-Key-_002d-View-Mode" accesskey="n" 
rel="next">Smart Key -
 Next: <a href="#Smart-Key-_002d-Delimited-Things" accesskey="n" 
rel="next">Smart Key - Delimited Things</a>, Previous: <a 
href="#Smart-Key-_002d-Hyperbole-Buttons" accesskey="p" rel="prev">Smart Key - 
Hyperbole Buttons</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-View-Mode-1"></a>
-<h4 class="subsection">E.2.10 Smart Key - View Mode</h4>
+<h4 class="subsection">E.2.11 Smart Key - View Mode</h4>
 
 <a name="index-view-mode"></a>
 <div class="format">
@@ -9709,7 +9806,7 @@ Next: <a href="#Smart-Key-_002d-Delimited-Things" 
accesskey="n" rel="next">Smart
 Next: <a href="#Smart-Key-_002d-The-Koutliner" accesskey="n" rel="next">Smart 
Key - The Koutliner</a>, Previous: <a href="#Smart-Key-_002d-View-Mode" 
accesskey="p" rel="prev">Smart Key - View Mode</a>, Up: <a 
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Delimited-Things-1"></a>
-<h4 class="subsection">E.2.11 Smart Key - Delimited Things</h4>
+<h4 class="subsection">E.2.12 Smart Key - Delimited Things</h4>
 
 <a name="index-thing-1"></a>
 <a name="index-list-1"></a>
@@ -9747,7 +9844,7 @@ original location and yanks it at the new location.
 Next: <a href="#Smart-Key-_002d-RDB-Mode" accesskey="n" rel="next">Smart Key - 
RDB Mode</a>, Previous: <a href="#Smart-Key-_002d-Delimited-Things" 
accesskey="p" rel="prev">Smart Key - Delimited Things</a>, Up: <a 
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-The-Koutliner-1"></a>
-<h4 class="subsection">E.2.12 Smart Key - The Koutliner</h4>
+<h4 class="subsection">E.2.13 Smart Key - The Koutliner</h4>
 <div class="format">
 <pre class="format">When pressed within a Hyperbole Koutliner buffer 
(kotl-mode):
   ACTION KEY
@@ -9782,7 +9879,7 @@ Next: <a href="#Smart-Key-_002d-RDB-Mode" accesskey="n" 
rel="next">Smart Key - R
 Next: <a href="#Smart-Key-_002d-Help-Buffers" accesskey="n" rel="next">Smart 
Key - Help Buffers</a>, Previous: <a href="#Smart-Key-_002d-The-Koutliner" 
accesskey="p" rel="prev">Smart Key - The Koutliner</a>, Up: <a 
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-RDB-Mode-1"></a>
-<h4 class="subsection">E.2.13 Smart Key - RDB Mode</h4>
+<h4 class="subsection">E.2.14 Smart Key - RDB Mode</h4>
 <a name="index-rdb_002dmode"></a>
 <a name="index-database"></a>
 <div class="format">
@@ -9815,7 +9912,7 @@ relational databases (part of InfoDock):
 Next: <a href="#Smart-Key-_002d-Pages-Directory-Mode" accesskey="n" 
rel="next">Smart Key - Pages Directory Mode</a>, Previous: <a 
href="#Smart-Key-_002d-RDB-Mode" accesskey="p" rel="prev">Smart Key - RDB 
Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart 
Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Help-Buffers-1"></a>
-<h4 class="subsection">E.2.14 Smart Key - Help Buffers</h4>
+<h4 class="subsection">E.2.15 Smart Key - Help Buffers</h4>
 <a name="index-help-buffer"></a>
 <div class="format">
 <pre class="format">
@@ -9829,10 +9926,10 @@ When pressed at the end of a Help buffer:
 <a name="Smart-Key-_002d-Pages-Directory-Mode"></a>
 <div class="header">
 <p>
-Next: <a href="#Smart-Key-_002d-Identifier-Menu-Mode" accesskey="n" 
rel="next">Smart Key - Identifier Menu Mode</a>, Previous: <a 
href="#Smart-Key-_002d-Help-Buffers" accesskey="p" rel="prev">Smart Key - Help 
Buffers</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart 
Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
+Next: <a href="#Smart-Key-_002d-Python-Source-Code" accesskey="n" 
rel="next">Smart Key - Python Source Code</a>, Previous: <a 
href="#Smart-Key-_002d-Help-Buffers" accesskey="p" rel="prev">Smart Key - Help 
Buffers</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart 
Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Pages-Directory-Mode-1"></a>
-<h4 class="subsection">E.2.15 Smart Key - Pages Directory Mode</h4>
+<h4 class="subsection">E.2.16 Smart Key - Pages Directory Mode</h4>
 
 <div class="format">
 <pre class="format">Pages-directory-mode is used in special buffers that 
contain title lines extracted from files consisting of titled, page-delimited 
contents, e.g. Info files.
@@ -9848,10 +9945,10 @@ When pressed on a pages-directory-mode entry line:
 <a name="Smart-Key-_002d-Python-Source-Code"></a>
 <div class="header">
 <p>
-Next: <a href="#Smart-Key-_002d-Objective_002dC-Source-Code" accesskey="n" 
rel="next">Smart Key - Objective-C Source Code</a>, Previous: <a 
href="#Smart-Key-_002d-JavaScript-Source-Code" accesskey="p" rel="prev">Smart 
Key - JavaScript Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" 
accesskey="u" rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Smart-Key-_002d-Identifier-Menu-Mode" accesskey="n" 
rel="next">Smart Key - Identifier Menu Mode</a>, Previous: <a 
href="#Smart-Key-_002d-Pages-Directory-Mode" accesskey="p" rel="prev">Smart Key 
- Pages Directory Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Python-Source-Code-1"></a>
-<h4 class="subsection">E.2.16 Smart Key - Python Source Code</h4>
+<h4 class="subsection">E.2.17 Smart Key - Python Source Code</h4>
 <div class="format">
 <pre class="format">When the Jedi identifier server or the OO-Browser has been 
loaded and the press is
 within a Python buffer:
@@ -9879,16 +9976,17 @@ within a Python buffer:
 <a name="Smart-Key-_002d-Identifier-Menu-Mode"></a>
 <div class="header">
 <p>
-Next: <a href="#Smart-Key-_002d-C-Source-Code" accesskey="n" rel="next">Smart 
Key - C Source Code</a>, Previous: <a 
href="#Smart-Key-_002d-Pages-Directory-Mode" accesskey="p" rel="prev">Smart Key 
- Pages Directory Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
+Next: <a href="#Smart-Key-_002d-C-Source-Code" accesskey="n" rel="next">Smart 
Key - C Source Code</a>, Previous: <a 
href="#Smart-Key-_002d-Python-Source-Code" accesskey="p" rel="prev">Smart Key - 
Python Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Identifier-Menu-Mode-1"></a>
-<h4 class="subsection">E.2.17 Smart Key - Identifier Menu Mode</h4>
+<h4 class="subsection">E.2.18 Smart Key - Identifier Menu Mode</h4>
 
 <div class="format">
-<pre class="format">This works only for identifiers defined within the same 
source file in which they are referenced.
-It requires either Emacs&rsquo; imenu or XEmacs&rsquo; func-menu library and 
it requires that an index of
-identifiers has been built for the current buffer.  Other handlers handle 
identifier references
-and definitions across multiple files.
+<pre class="format">This works only for identifiers defined within the same 
source file in
+which they are referenced.  It requires either Emacs&rsquo; imenu or 
XEmacs&rsquo;
+func-menu library and it requires that an index of identifiers has
+been built for the current buffer.  Other handlers handle identifier
+references and definitions across multiple files.
 
 When pressed on an identifier name after an identifier index has been 
generated:
   ACTION KEY
@@ -9905,7 +10003,7 @@ When pressed on an identifier name after an identifier 
index has been generated:
 Next: <a href="#Smart-Key-_002d-C_002b_002b-Source-Code" accesskey="n" 
rel="next">Smart Key - C++ Source Code</a>, Previous: <a 
href="#Smart-Key-_002d-Identifier-Menu-Mode" accesskey="p" rel="prev">Smart Key 
- Identifier Menu Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-C-Source-Code-1"></a>
-<h4 class="subsection">E.2.18 Smart Key - C Source Code</h4>
+<h4 class="subsection">E.2.19 Smart Key - C Source Code</h4>
 
 <a name="index-smart_002dc_002dcpp_002dinclude_002dpath"></a>
 <a name="index-smart_002dc_002dinclude_002dpath"></a>
@@ -9937,7 +10035,7 @@ Next: <a href="#Smart-Key-_002d-C_002b_002b-Source-Code" 
accesskey="n" rel="next
 Next: <a href="#Smart-Key-_002d-Assembly-Source-Code" accesskey="n" 
rel="next">Smart Key - Assembly Source Code</a>, Previous: <a 
href="#Smart-Key-_002d-C-Source-Code" accesskey="p" rel="prev">Smart Key - C 
Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-C_002b_002b-Source-Code-1"></a>
-<h4 class="subsection">E.2.19 Smart Key - C++ Source Code</h4>
+<h4 class="subsection">E.2.20 Smart Key - C++ Source Code</h4>
 
 <a name="index-c_002b_002b_002dcpp_002dinclude_002dpath"></a>
 <a name="index-c_002b_002b_002dinclude_002dpath"></a>
@@ -9990,7 +10088,7 @@ buffer:
 Next: <a href="#Smart-Key-_002d-Lisp-Source-Code" accesskey="n" 
rel="next">Smart Key - Lisp Source Code</a>, Previous: <a 
href="#Smart-Key-_002d-C_002b_002b-Source-Code" accesskey="p" rel="prev">Smart 
Key - C++ Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Assembly-Source-Code-1"></a>
-<h4 class="subsection">E.2.20 Smart Key - Assembly Source Code</h4>
+<h4 class="subsection">E.2.21 Smart Key - Assembly Source Code</h4>
 
 <a name="index-smart_002dasm_002dinclude_002dpath"></a>
 <div class="format">
@@ -10015,11 +10113,12 @@ Next: <a href="#Smart-Key-_002d-Lisp-Source-Code" 
accesskey="n" rel="next">Smart
 Next: <a href="#Smart-Key-_002d-Java-Source-Code" accesskey="n" 
rel="next">Smart Key - Java Source Code</a>, Previous: <a 
href="#Smart-Key-_002d-Assembly-Source-Code" accesskey="p" rel="prev">Smart Key 
- Assembly Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Lisp-Source-Code-1"></a>
-<h4 class="subsection">E.2.21 Smart Key - Lisp Source Code</h4>
+<h4 class="subsection">E.2.22 Smart Key - Lisp Source Code</h4>
 
 <div class="format">
-<pre class="format">When pressed on a Lisp symbol within any of these types of 
buffers
-(Lisp code, debugger, compilation, or help):
+<pre class="format"><a name="index-change_002dlog_002dmode"></a><a 
name="index-lisp-identifier"></a><a name="index-elisp-identifier"></a>When 
pressed on a Lisp symbol within any of these types of buffers
+(Lisp code, debugger, compilation, or help) or in change-log-mode
+on an Emacs Lisp bound identifier:
   ACTION KEY
      Jumps to the definition of any selected Lisp construct.  If on an
      Emacs Lisp require, load, or autoload clause and the (find-library)
@@ -10037,7 +10136,7 @@ Next: <a href="#Smart-Key-_002d-Java-Source-Code" 
accesskey="n" rel="next">Smart
 Next: <a href="#Smart-Key-_002d-JavaScript-Source-Code" accesskey="n" 
rel="next">Smart Key - JavaScript Source Code</a>, Previous: <a 
href="#Smart-Key-_002d-Lisp-Source-Code" accesskey="p" rel="prev">Smart Key - 
Lisp Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Java-Source-Code-1"></a>
-<h4 class="subsection">E.2.22 Smart Key - Java Source Code</h4>
+<h4 class="subsection">E.2.23 Smart Key - Java Source Code</h4>
 
 <a name="index-smart_002djava_002dpackage_002dpath"></a>
 <div class="format">
@@ -10077,10 +10176,10 @@ buffer:
 <a name="Smart-Key-_002d-JavaScript-Source-Code"></a>
 <div class="header">
 <p>
-Next: <a href="#Smart-Key-_002d-Python-Source-Code" accesskey="n" 
rel="next">Smart Key - Python Source Code</a>, Previous: <a 
href="#Smart-Key-_002d-Java-Source-Code" accesskey="p" rel="prev">Smart Key - 
Java Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
+Next: <a href="#Smart-Key-_002d-Objective_002dC-Source-Code" accesskey="n" 
rel="next">Smart Key - Objective-C Source Code</a>, Previous: <a 
href="#Smart-Key-_002d-Java-Source-Code" accesskey="p" rel="prev">Smart Key - 
Java Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-JavaScript-Source-Code-1"></a>
-<h4 class="subsection">E.2.23 Smart Key - JavaScript Source Code</h4>
+<h4 class="subsection">E.2.24 Smart Key - JavaScript Source Code</h4>
 
 <div class="format">
 <pre class="format">When pressed within a JavaScript source code file:
@@ -10098,10 +10197,10 @@ Next: <a href="#Smart-Key-_002d-Python-Source-Code" 
accesskey="n" rel="next">Sma
 <a name="Smart-Key-_002d-Objective_002dC-Source-Code"></a>
 <div class="header">
 <p>
-Next: <a href="#Smart-Key-_002d-Fortran-Source-Code" accesskey="n" 
rel="next">Smart Key - Fortran Source Code</a>, Previous: <a 
href="#Smart-Key-_002d-Python-Source-Code" accesskey="p" rel="prev">Smart Key - 
Python Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
+Next: <a href="#Smart-Key-_002d-Fortran-Source-Code" accesskey="n" 
rel="next">Smart Key - Fortran Source Code</a>, Previous: <a 
href="#Smart-Key-_002d-JavaScript-Source-Code" accesskey="p" rel="prev">Smart 
Key - JavaScript Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" 
accesskey="u" rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Objective_002dC-Source-Code-1"></a>
-<h4 class="subsection">E.2.24 Smart Key - Objective-C Source Code</h4>
+<h4 class="subsection">E.2.25 Smart Key - Objective-C Source Code</h4>
 
 <a name="index-objc_002dcpp_002dinclude_002dpath"></a>
 <a name="index-objc_002dinclude_002dpath"></a>
@@ -10152,7 +10251,7 @@ OO-Browser):
 Next: <a href="#Smart-Key-_002d-Occurrence-Matches" accesskey="n" 
rel="next">Smart Key - Occurrence Matches</a>, Previous: <a 
href="#Smart-Key-_002d-Objective_002dC-Source-Code" accesskey="p" 
rel="prev">Smart Key - Objective-C Source Code</a>, Up: <a 
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Fortran-Source-Code-1"></a>
-<h4 class="subsection">E.2.25 Smart Key - Fortran Source Code</h4>
+<h4 class="subsection">E.2.26 Smart Key - Fortran Source Code</h4>
 
 <div class="format">
 <pre class="format">When pressed within a Fortran source code file:
@@ -10170,7 +10269,7 @@ Next: <a href="#Smart-Key-_002d-Occurrence-Matches" 
accesskey="n" rel="next">Sma
 Next: <a href="#Smart-Key-_002d-Calendar-Mode" accesskey="n" rel="next">Smart 
Key - Calendar Mode</a>, Previous: <a 
href="#Smart-Key-_002d-Fortran-Source-Code" accesskey="p" rel="prev">Smart Key 
- Fortran Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Occurrence-Matches-1"></a>
-<h4 class="subsection">E.2.26 Smart Key - Occurrence Matches</h4>
+<h4 class="subsection">E.2.27 Smart Key - Occurrence Matches</h4>
 
 <div class="format">
 <pre class="format">When pressed within an occur-mode, moccur-mode or 
amoccur-mode buffer:
@@ -10185,7 +10284,7 @@ Next: <a href="#Smart-Key-_002d-Calendar-Mode" 
accesskey="n" rel="next">Smart Ke
 Next: <a href="#Smart-Key-_002d-Man-Page-Apropos" accesskey="n" 
rel="next">Smart Key - Man Page Apropos</a>, Previous: <a 
href="#Smart-Key-_002d-Occurrence-Matches" accesskey="p" rel="prev">Smart Key - 
Occurrence Matches</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Calendar-Mode-1"></a>
-<h4 class="subsection">E.2.27 Smart Key - Calendar Mode</h4>
+<h4 class="subsection">E.2.28 Smart Key - Calendar Mode</h4>
 
 <div class="format">
 <pre class="format">When pressed within a calendar-mode buffer:
@@ -10212,7 +10311,7 @@ Next: <a href="#Smart-Key-_002d-Man-Page-Apropos" 
accesskey="n" rel="next">Smart
 Next: <a href="#Smart-Key-_002d-Emacs-Outline-Mode" accesskey="n" 
rel="next">Smart Key - Emacs Outline Mode</a>, Previous: <a 
href="#Smart-Key-_002d-Calendar-Mode" accesskey="p" rel="prev">Smart Key - 
Calendar Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Man-Page-Apropos-1"></a>
-<h4 class="subsection">E.2.28 Smart Key - Man Page Apropos</h4>
+<h4 class="subsection">E.2.29 Smart Key - Man Page Apropos</h4>
 <div class="format">
 <pre class="format">When pressed within a man page apropos buffer or listing:
   ACTION KEY
@@ -10234,7 +10333,7 @@ Next: <a href="#Smart-Key-_002d-Emacs-Outline-Mode" 
accesskey="n" rel="next">Sma
 Next: <a href="#Smart-Key-_002d-Info-Manuals" accesskey="n" rel="next">Smart 
Key - Info Manuals</a>, Previous: <a href="#Smart-Key-_002d-Man-Page-Apropos" 
accesskey="p" rel="prev">Smart Key - Man Page Apropos</a>, Up: <a 
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Emacs-Outline-Mode-1"></a>
-<h4 class="subsection">E.2.29 Smart Key - Emacs Outline Mode</h4>
+<h4 class="subsection">E.2.30 Smart Key - Emacs Outline Mode</h4>
 <a name="index-selective_002ddisplay"></a>
 <div class="format">
 <pre class="format">If pressed within an outline-mode buffer or when no other 
context is matched
@@ -10271,7 +10370,7 @@ and outline-minor-mode is enabled:
 Next: <a href="#Smart-Key-_002d-Email-Composers" accesskey="n" 
rel="next">Smart Key - Email Composers</a>, Previous: <a 
href="#Smart-Key-_002d-Emacs-Outline-Mode" accesskey="p" rel="prev">Smart Key - 
Emacs Outline Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Info-Manuals-1"></a>
-<h4 class="subsection">E.2.30 Smart Key - Info Manuals</h4>
+<h4 class="subsection">E.2.31 Smart Key - Info Manuals</h4>
 
 <div class="format">
 <pre class="format"><a name="index-click_002c-Info"></a><a 
name="index-Info-browsing"></a><a name="index-Info_002dglobal_002dnext"></a><a 
name="index-Info_002dglobal_002dprev"></a>If pressed within an Info manual node:
@@ -10312,7 +10411,7 @@ Use <kbd>{s}</kbd> within an Info manual to search for 
any concept that interest
 Next: <a href="#Smart-Key-_002d-GNUS-Newsreader" accesskey="n" 
rel="next">Smart Key - GNUS Newsreader</a>, Previous: <a 
href="#Smart-Key-_002d-Info-Manuals" accesskey="p" rel="prev">Smart Key - Info 
Manuals</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart 
Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Email-Composers-1"></a>
-<h4 class="subsection">E.2.31 Smart Key - Email Composers</h4>
+<h4 class="subsection">E.2.32 Smart Key - Email Composers</h4>
 <a name="index-hmail_003areader"></a>
 <a name="index-hmail_003alister"></a>
 <div class="format">
@@ -10351,7 +10450,7 @@ Next: <a href="#Smart-Key-_002d-GNUS-Newsreader" 
accesskey="n" rel="next">Smart
 Next: <a href="#Smart-Key-_002d-Buffer-Menus" accesskey="n" rel="next">Smart 
Key - Buffer Menus</a>, Previous: <a href="#Smart-Key-_002d-Email-Composers" 
accesskey="p" rel="prev">Smart Key - Email Composers</a>, Up: <a 
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-GNUS-Newsreader-1"></a>
-<h4 class="subsection">E.2.32 Smart Key - GNUS Newsreader</h4>
+<h4 class="subsection">E.2.33 Smart Key - GNUS Newsreader</h4>
 <a name="index-click_002c-Gnus"></a>
 <a name="index-Gnus-browsing"></a>
 <div class="format">
@@ -10418,7 +10517,7 @@ Next: <a href="#Smart-Key-_002d-Buffer-Menus" 
accesskey="n" rel="next">Smart Key
 Next: <a href="#Smart-Key-_002d-Tar-File-Mode" accesskey="n" rel="next">Smart 
Key - Tar File Mode</a>, Previous: <a href="#Smart-Key-_002d-GNUS-Newsreader" 
accesskey="p" rel="prev">Smart Key - GNUS Newsreader</a>, Up: <a 
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Buffer-Menus-1"></a>
-<h4 class="subsection">E.2.33 Smart Key - Buffer Menus</h4>
+<h4 class="subsection">E.2.34 Smart Key - Buffer Menus</h4>
 <a name="index-click_002c-buffer-menu"></a>
 <a name="index-buffer-menu-2"></a>
 <div class="format">
@@ -10475,7 +10574,7 @@ Next: <a href="#Smart-Key-_002d-Tar-File-Mode" 
accesskey="n" rel="next">Smart Ke
 Next: <a href="#Smart-Key-_002d-Man-Pages" accesskey="n" rel="next">Smart Key 
- Man Pages</a>, Previous: <a href="#Smart-Key-_002d-Buffer-Menus" 
accesskey="p" rel="prev">Smart Key - Buffer Menus</a>, Up: <a 
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Tar-File-Mode-1"></a>
-<h4 class="subsection">E.2.34 Smart Key - Tar File Mode</h4>
+<h4 class="subsection">E.2.35 Smart Key - Tar File Mode</h4>
 <a name="index-click_002c-tar"></a>
 <a name="index-tar-archive-browsing"></a>
 <a name="index-extracting-from-tar-files"></a>
@@ -10502,7 +10601,7 @@ Next: <a href="#Smart-Key-_002d-Man-Pages" 
accesskey="n" rel="next">Smart Key -
 Next: <a href="#Smart-Key-_002d-WWW-URLs" accesskey="n" rel="next">Smart Key - 
WWW URLs</a>, Previous: <a href="#Smart-Key-_002d-Tar-File-Mode" accesskey="p" 
rel="prev">Smart Key - Tar File Mode</a>, Up: <a href="#Smart-Keyboard-Keys" 
accesskey="u" rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Man-Pages-1"></a>
-<h4 class="subsection">E.2.35 Smart Key - Man Pages</h4>
+<h4 class="subsection">E.2.36 Smart Key - Man Pages</h4>
 <a name="index-man-page-references"></a>
 <a name="index-smart_002dman_002dc_002droutine_002dref"></a>
 <div class="format">
@@ -10522,7 +10621,7 @@ containing its pathname:
 Next: <a href="#Smart-Key-_002d-HyRolo-Match-Buffers" accesskey="n" 
rel="next">Smart Key - HyRolo Match Buffers</a>, Previous: <a 
href="#Smart-Key-_002d-Man-Pages" accesskey="p" rel="prev">Smart Key - Man 
Pages</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart 
Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-WWW-URLs-1"></a>
-<h4 class="subsection">E.2.36 Smart Key - WWW URLs</h4>
+<h4 class="subsection">E.2.37 Smart Key - WWW URLs</h4>
 <a name="index-click_002c-world_002dwide-web"></a>
 <a name="index-W3"></a>
 <a name="index-URL-2"></a>
@@ -10548,7 +10647,7 @@ Next: <a href="#Smart-Key-_002d-HyRolo-Match-Buffers" 
accesskey="n" rel="next">S
 Next: <a href="#Smart-Key-_002d-Image-Thumbnails" accesskey="n" 
rel="next">Smart Key - Image Thumbnails</a>, Previous: <a 
href="#Smart-Key-_002d-WWW-URLs" accesskey="p" rel="prev">Smart Key - WWW 
URLs</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart 
Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-HyRolo-Match-Buffers-1"></a>
-<h4 class="subsection">E.2.37 Smart Key - HyRolo Match Buffers</h4>
+<h4 class="subsection">E.2.38 Smart Key - HyRolo Match Buffers</h4>
 <a name="index-click_002c-hyrolo-matches"></a>
 <a name="index-hyrolo-matches"></a>
 <div class="format">
@@ -10564,7 +10663,7 @@ Next: <a href="#Smart-Key-_002d-Image-Thumbnails" 
accesskey="n" rel="next">Smart
 Next: <a href="#Smart-Key-_002d-Gomoku-Game" accesskey="n" rel="next">Smart 
Key - Gomoku Game</a>, Previous: <a 
href="#Smart-Key-_002d-HyRolo-Match-Buffers" accesskey="p" rel="prev">Smart Key 
- HyRolo Match Buffers</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Image-Thumbnails-1"></a>
-<h4 class="subsection">E.2.38 Smart Key - Image Thumbnails</h4>
+<h4 class="subsection">E.2.39 Smart Key - Image Thumbnails</h4>
 <a name="index-images"></a>
 <a name="index-thumbnails"></a>
 <a name="index-dired_002c-images"></a>
@@ -10585,7 +10684,7 @@ Next: <a href="#Smart-Key-_002d-Gomoku-Game" 
accesskey="n" rel="next">Smart Key
 Next: <a href="#Smart-Key-_002d-The-OO_002dBrowser" accesskey="n" 
rel="next">Smart Key - The OO-Browser</a>, Previous: <a 
href="#Smart-Key-_002d-Image-Thumbnails" accesskey="p" rel="prev">Smart Key - 
Image Thumbnails</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" 
rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Gomoku-Game-1"></a>
-<h4 class="subsection">E.2.39 Smart Key - Gomoku Game</h4>
+<h4 class="subsection">E.2.40 Smart Key - Gomoku Game</h4>
 <a name="index-game_002c-gomoku"></a>
 <a name="index-gomoku"></a>
 <div class="format">
@@ -10603,7 +10702,7 @@ Next: <a href="#Smart-Key-_002d-The-OO_002dBrowser" 
accesskey="n" rel="next">Sma
 Next: <a href="#Smart-Key-_002d-Default-Context" accesskey="n" 
rel="next">Smart Key - Default Context</a>, Previous: <a 
href="#Smart-Key-_002d-Gomoku-Game" accesskey="p" rel="prev">Smart Key - Gomoku 
Game</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart 
Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-The-OO_002dBrowser-1"></a>
-<h4 class="subsection">E.2.40 Smart Key - The OO-Browser</h4>
+<h4 class="subsection">E.2.41 Smart Key - The OO-Browser</h4>
 
 <a name="index-OO_002dBrowser"></a>
 <a name="index-object_002doriented-code-browsing"></a>
@@ -10677,7 +10776,7 @@ buffer after an OO-Browser Environment has been loaded:
 Previous: <a href="#Smart-Key-_002d-The-OO_002dBrowser" accesskey="p" 
rel="prev">Smart Key - The OO-Browser</a>, Up: <a href="#Smart-Keyboard-Keys" 
accesskey="u" rel="up">Smart Keyboard Keys</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index" 
title="Index" rel="index">Index</a>]</p>
 </div>
 <a name="Smart-Key-_002d-Default-Context-1"></a>
-<h4 class="subsection">E.2.41 Smart Key - Default Context</h4>
+<h4 class="subsection">E.2.42 Smart Key - Default Context</h4>
 <a name="index-action_002dkey_002ddefault_002dfunction-1"></a>
 <a name="index-assist_002dkey_002ddefault_002dfunction-1"></a>
 <a name="index-hyperbole-1"></a>
@@ -10916,10 +11015,8 @@ providing sketches of possible additions;
 </li><li> and to acknowledge known weaknesses in the current system.
 </li></ul>
 
-<p>If you would like to see some of this work done, consider funding
-its development.  Without any serious interest from users, progress
-on these fronts will be slow.  Here are some new features we have
-in mind, however.
+<p>Without any serious interest from users, progress on these fronts will
+be slow.  Here are some new features we have in mind, however.
 </p>
 <dl compact="compact">
 <dt>Button Copying, Killing, and Yanking</dt>
@@ -11871,6 +11968,9 @@ Next: <a href="#Concept-Index" accesskey="n" 
rel="next">Concept Index</a>, Previ
 <tr><td></td><td valign="top"><a 
href="#index-hibtypes_002dgithub_002ddefault_002dproject">hibtypes-github-default-project</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-hibtypes_002dgithub_002ddefault_002duser">hibtypes-github-default-user</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-hibtypes_002dgithub_002ddefault_002duser-1">hibtypes-github-default-user</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-hibtypes_002dgitlab_002ddefault_002dproject">hibtypes-gitlab-default-project</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-hibtypes_002dgitlab_002ddefault_002duser">hibtypes-gitlab-default-user</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-hibtypes_002dgitlab_002ddefault_002duser-1">hibtypes-gitlab-default-user</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-hibtypes_002dsocial_002ddefault_002dservice">hibtypes-social-default-service</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-hkey_002dace_002dwindow_002dsetup"><code>hkey-ace-window-setup</code></a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-hkey_002dalist">hkey-alist</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Questions-and-Answers">Questions and 
Answers</a></td></tr>
@@ -12002,6 +12102,7 @@ Next: <a href="#Concept-Index" accesskey="n" 
rel="next">Concept Index</a>, Previ
 <tr><td></td><td valign="top"><a 
href="#index-ibtypes-git_002dcommit_002dreference"><code>ibtypes 
git-commit-reference</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-git_002dreference"><code>ibtypes 
git-reference</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-github_002dreference"><code>ibtypes 
github-reference</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-gitlab_002dreference"><code>ibtypes 
gitlab-reference</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-gnus_002dpush_002dbutton"><code>ibtypes 
gnus-push-button</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-grep_002dmsg"><code>ibtypes 
grep-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-hyp_002daddress"><code>ibtypes 
hyp-address</code></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
@@ -12475,6 +12576,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a 
href="#index-cell_002c-yanking-contents">cell, yanking 
contents</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-change-key-bindings">change key 
bindings</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-change-key-bindings-1">change 
key bindings</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-change_002dlog_002dmode">change-log-mode</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp 
Source Code</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-changing-the-view-spec">changing 
the view spec</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#View-Specs">View Specs</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-click_002c-buffer-menu">click, 
buffer menu</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-_002d-Buffer-Menus">Smart Key - Buffer Menus</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-click_002c-button">click, 
button</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-_002d-Hyperbole-Buttons">Smart Key - Hyperbole 
Buttons</a></td></tr>
@@ -12495,11 +12597,13 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a 
href="#index-collapsing">collapsing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Hiding-and-Showing">Hiding and Showing</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-comment">comment</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-comment-1">comment</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-company_002dmode">company-mode</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Smart-Key-_002d-Company-Mode">Smart Key - Company 
Mode</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-compiler-error">compiler 
error</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-compiler-error-1">compiler 
error</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">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-1">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-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-completion-2">completion</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Smart-Key-_002d-Company-Mode">Smart Key - Company 
Mode</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-completion-3">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="#Customization">Customization</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-contacts_002c-Google">contacts, 
Google</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#HyRolo-Settings">HyRolo Settings</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>
@@ -12596,6 +12700,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><th><a name="Concept-Index_cp_letter-E">E</a></th><td></td><td></td></tr>
 <tr><td></td><td valign="top"><a href="#index-e_002dmail-address">e-mail 
address</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-e_002dmail-address-1">e-mail 
address</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Cell-Attributes">Cell Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-elisp-identifier">elisp 
identifier</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp Source 
Code</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-ellipses">ellipses</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#View-Specs">View Specs</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-Emacs">Emacs</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-Emacs-1">Emacs</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
@@ -12631,7 +12736,6 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a href="#index-external-klink">external 
klink</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Links">Links</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-external-program">external 
program</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#External-Viewers">External Viewers</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-external-viewer">external 
viewer</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#External-Viewers">External Viewers</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-external-viewer-1">external 
viewer</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#External-Viewers">External Viewers</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-extracting-from-tar-files">extracting from tar 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-_002d-Tar-File-Mode">Smart Key - Tar File Mode</a></td></tr>
 <tr><td colspan="4"> <hr></td></tr>
 <tr><th><a name="Concept-Index_cp_letter-F">F</a></th><td></td><td></td></tr>
@@ -12674,6 +12778,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a href="#index-git-commit-reference">git commit 
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-git-reference">git 
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-github-reference">github 
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-gitlab-reference">gitlab 
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-global-button">global 
button</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Buttons">Buttons</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-global-button-1">global 
button</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-global-button-2">global 
button</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Button-Files">Button 
Files</a></td></tr>
@@ -12887,6 +12992,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a href="#index-link_002c-viewer-program">link, 
viewer program</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#External-Viewers">External Viewers</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-link_002c-web-search">link, web 
search</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Action-Types">Action 
Types</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-linking_002c-in_002dplace">linking, 
in-place</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Explicit-Buttons">Explicit Buttons</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-lisp-identifier">lisp 
identifier</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp Source 
Code</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-Lisp-variables">Lisp 
variables</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Link-Variable-Substitution">Link Variable Substitution</a></td></tr>
 <tr><td></td><td valign="top"><a 
href="#index-list">list</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-list-1">list</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited 
Things</a></td></tr>
@@ -12902,7 +13008,6 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a href="#index-mail-hooks">mail 
hooks</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-mail-inclusion">mail 
inclusion</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-mail-reader">mail 
reader</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-mailcap">mailcap</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#External-Viewers">External Viewers</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-mailer-initialization">mailer 
initialization</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-mailing-an-outline">mailing an 
outline</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Relocating-and-Copying">Relocating and Copying</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-mailing-buttons">mailing 
buttons</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Buttons-in-Mail">Buttons in Mail</a></td></tr>
@@ -12999,7 +13104,6 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a href="#index-Messages-buffer">Messages 
buffer</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-MH_002de">MH-e</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-middle-mouse-key">middle mouse 
key</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Smart-Keys">Smart 
Keys</a></td></tr>
-<tr><td></td><td valign="top"><a 
href="#index-MIME">MIME</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#External-Viewers">External Viewers</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-minibuffer-menu">minibuffer 
menu</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-minibuffer-menu-1">minibuffer 
menu</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-minibuffer-menus">minibuffer 
menus</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Menus">Menus</a></td></tr>
@@ -13315,6 +13419,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function</a>, Up: <a href
 <tr><td></td><td valign="top"><a href="#index-version-control">version 
control</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-version-control-1">version 
control</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-version-control-2">version 
control</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-version-control-3">version 
control</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-version-description">version 
description</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Suggestion-or-Bug-Reporting">Suggestion or Bug Reporting</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-vertical-drag">vertical 
drag</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Creating-and-Deleting-Windows">Creating and Deleting 
Windows</a></td></tr>
 <tr><td></td><td valign="top"><a href="#index-vertical-drag-1">vertical 
drag</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Smart-Mouse-Drags-within-a-Window">Smart Mouse Drags within a 
Window</a></td></tr>
diff --git a/man/hyperbole.info b/man/hyperbole.info
index 5096944..ed1205e 100644
Binary files a/man/hyperbole.info and b/man/hyperbole.info differ
diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf
index 6e58ff5..549179c 100644
Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index 7c20b66..4b3c352 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -139,6 +139,9 @@ Texinfo markup language.
 
 <CENTER><H2>The Everyday Hypertextual Information Manager</H2></CENTER>
 
+<CENTER><H3><A HREF="https://saythanks.io/to/rswgnu";>Say thanks if you like 
Hyperbole.</A></H3></CENTER>
+
+
 <P>Copyright &copy; 1989-2019  Free Software Foundation, Inc.</P>
 
 <P>GNU Hyperbole is available for use, modification, and distribution under
@@ -151,8 +154,8 @@ WITHOUT ANY WARRANTY, without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
 
 <PRE>
-Edition 7.0.2b
-Printed February 2, 2019.
+Edition 7.0.3
+Printed May 11, 2019.
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -176,7 +179,7 @@ Printed February 2, 2019.
 
 @center The Everyday Hypertextual Information Manager
 
address@hidden Edition 7.0.2b, February 2, 2019.
address@hidden Say thanks: https://saythanks.io/to/rswgnu
 
 @sp 2
 @noindent
@@ -193,6 +196,9 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 @sp 2
 
 @example
+Edition 7.0.3
+May 11, 2019
+
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
   E-mail:    <hyperbole-users@@gnu.org>  (This is a mail list).
@@ -413,6 +419,7 @@ Smart Mouse Keys
 
 Smart Keyboard Keys
 
+* Smart Key - Company Mode::
 * Smart Key - Treemacs::
 * Smart Key - Emacs Pushbuttons::
 * Smart Key - Argument Completion::
@@ -428,6 +435,7 @@ Smart Keyboard Keys
 * Smart Key - RDB Mode::
 * Smart Key - Help Buffers::
 * Smart Key - Pages Directory Mode::
+* Smart Key - Python Source Code::
 * Smart Key - Identifier Menu Mode ::
 * Smart Key - C Source Code::
 * Smart Key - C++ Source Code::
@@ -435,7 +443,6 @@ Smart Keyboard Keys
 * Smart Key - Lisp Source Code::
 * Smart Key - Java Source Code::
 * Smart Key - JavaScript Source Code::
-* Smart Key - Python Source Code::
 * Smart Key - Objective-C Source Code::
 * Smart Key - Fortran Source Code::
 * Smart Key - Occurrence Matches::
@@ -462,7 +469,7 @@ Smart Keyboard Keys
 @chapter Introduction
 
 This edition of the GNU Hyperbole Manual is for use with any version
-7.0.2b or greater of GNU Hyperbole.  Hyperbole runs atop GNU Emacs 24.3
+7.0.3 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,
@@ -1179,7 +1186,7 @@ on the last line to end the dired session (bury its 
buffer).
 If you use the Treemacs file viewer Emacs package, you can configure Hyperbole
 to use this instead of Dired when you click on a modeline buffer id.
 
-Since this is a customization option, it may be change permanently like so.
+Since this is a customization option, it may be changed permanently like so.
 Use @bkbd{M-x customize-set-variable @key{RET} 
action-key-modeline-buffer-id-function @key{RET}}.
 Change the value to @code{smart-treemacs-modeline}.  Then press @key{RET}.  To 
change it back
 to Hyperbole's default, use the value, @code{dired-jump}.
@@ -1409,14 +1416,15 @@ unless it is the only window in that frame.
 @cindex drag, dired item
 @cindex drag, buffer menu item
 @cindex drag, Treemacs item
-You can do the same thing with items in dired, buffer menu and ibuffer menu
-listing buffers rather than buffers themselves.  Drag with the Action Mouse Key
-and the selected item will be displayed in any Emacs window in which you
-release.  Drag outside Emacs and it will be displayed in a new frame.  To
-display the last item you want, press the Action Key on it and it will display
-within the listing window itself.  (If you use the Treemacs file viewer 
package,
-item dragging works there as well).  Remember that you can emulate these drags
-from the keyboard when needed, @pxref{Keyboard Drags}.
+You can also drag items to other windows with the Action Key in Dired,
+Buffer Menu, Ibuffer and Treemacs listing buffers, rather than the
+buffers themselves.  Drag with the Action Mouse Key and the selected
+item will be displayed in any Emacs window in which you release.  Drag
+outside Emacs and it will be displayed in a new frame.  To display the
+last item you want within the listing window itself, press and release
+the Action Key on that item after dragging your other items to their
+respective windows.  Remember that you can emulate these drags from
+the keyboard when needed, @pxref{Keyboard Drags}.
 
 So now you can put a bunch of buffers and files on your screen wherever
 you like.  Typically, a brief visual pulse is shown first at the source item 
and
@@ -1450,26 +1458,30 @@ session since drag actions are not supported without a 
window system.
 @cindex window by letter
 @cindex jump to window by letter
 @cindex keyboard, jump to window
-For even faster keyboard-based display of items, use the Emacs
-package @code{ace-window} (see 
@url{https://elpa.gnu.org/packages/ace-window.html}).
+For even faster keyboard-based display of items and drag emulations,
+use the Emacs package @code{ace-window}
+(see @url{https://elpa.gnu.org/packages/ace-window.html}).
 
 The ace-window package assigns short letter IDs to each Emacs window and lets
 you jump to or operate upon a specific window by giving its ID.  Hyperbole can
 add commands to ace-window that replace the two-step drag emulation key
-described above with a single key sequence that displays dired or
-buffer menu @emph{items}.
+described above with a single key sequence that does not require moving to
+the drag target window since it is specified by ID as part of the command.
 
 To enable this feature, in your Emacs initialization file after
 Hyperbole is initialized, if you do not have a key bound for
 @code{ace-window}, then call: @code{(hkey-ace-window-setup \"\M-o\")}
-to bind it to @bkbd{M-o}.  Otherwise, call the setup function without
-a key: @code{(hkey-ace-window-setup)}.
+to bind it to @bkbd{M-o}, replacing Hyperbole's
+default @code{hkey-operate} command there (because ace-window can emulate
+the drags performed by @code{hkey-operate}).  If you already have a key bound
+for @code{ace-window}, then just ensure it is initialized by calling
address@hidden(hkey-ace-window-setup)} without a key argument.
 
 @cindex link creation from keyboard
 @cindex keyboard link creation
 @kindex M-o i <window-id>
address@hidden M-o r <window-id>
 @kindex M-o m <window-id>
address@hidden M-o r <window-id>
 @kindex M-o t <window-id>
 @cindex drag item
 @cindex replace window buffer
@@ -1482,16 +1494,31 @@ a key: @code{(hkey-ace-window-setup)}.
 After setup, the leftmost character or two of each window's modeline will show
 the ID to type to use that window as the drag destination.  Then whenever point
 is on an item you want displayed in another window, use @bkbd{M-o i
-<id-of-window-to-display-item-in>} and watch the magic happen.  You can also 
use
-this command to create explicit button links to other window buffers when in 
an editable
-buffer rather than on an item.  If you want to display multiple items in 
different
-windows, instead use the @bkbd{M-o t <id-of-window-to-display-item-in>} key 
sequence to
+<id-of-window-to-display-item-in>} and watch the magic happen.  If you
+want to display multiple items in different windows, instead use
+the @bkbd{M-o t <id-of-window-to-display-item-in>} key sequence to
 @emph{throw} the item to the window.  To @emph{replace}
 the selected window's buffer with that of another window, use
 @bkbd{M-o r <id-of-window-displaying-desired-buffer>}.  To instead
 @emph{swap} the selected window's buffer with that of another window,
 use @bkbd{M-o m <id-of-window-to-swap-with>}.
 
+In summary:
address@hidden @asis
address@hidden M-o i <window>
+insert listing item at point into <window>; if not on a listing item,
+trigger an error
+
address@hidden M-o m <window>
+swap the buffers in the selected window and <window>
+
address@hidden M-o r <window>
+replace the selected (current) window's buffer with that of <window>
+
address@hidden M-o t <window>
+throw listing item at point or current buffer to <window>
address@hidden table
+
 @c -------
 
 @c @node Smart Mouse Key Modifiers,  , Smart Mouse Key Drags, Smart Keys
@@ -1729,10 +1756,10 @@ type} identifies a pattern or state that when matched 
triggers
 an @emph{action} associated with the implicit button type.  The action
 is specified by either a Hyperbole action type (@pxref{Action Types})
 or an Emacs Lisp function.  Implicit button types may use the same
-action types that explicit buttons use.  As an example, a pathname
-implicit button type would match to any existing local filename or
-directory name and its action would be to display the associated file
-or directory, typically in another window.
+action types that explicit buttons use.  As an example, the pathname
+implicit button type matches to any existing local filename or
+directory name and its action displays the associated file or
+directory, typically in another window.
 
 @vindex file, hibtypes.el
 @cindex context
@@ -2043,7 +2070,7 @@ produced by git log.
 @vindex hibtypes-github-default-user
 @item github-reference
 Displays the Github entity associated with REFERENCE and optional USER and 
PROJECT.
-See @file{DEMO#Github (Remote) References} for examples.
+See @file{../DEMO#Github (Remote) References} for examples.
 
 REFERENCE is a string of one of the following forms:
 @itemize @bullet
@@ -2073,6 +2100,45 @@ If given, PROJECT overrides any project value in 
REFERENCE.  If no
 PROJECT value is provided, it defaults to the value of
 @code{hibtypes-github-default-project}.
 
address@hidden ibtypes gitlab-reference
address@hidden gitlab reference
address@hidden version control
address@hidden hibtypes-gitlab-default-project
address@hidden hibtypes-gitlab-default-user
address@hidden gitlab-reference
+Displays the Gitlab entity associated with REFERENCE and optional USER and 
PROJECT.
+See @file{../DEMO#Gitlab (Remote) References} for examples.
+
+REFERENCE is a string of one of the following forms:
address@hidden @bullet
address@hidden <ref-item>
address@hidden <user>/<project>/<ref-item>
address@hidden <project>/<ref-item>
address@hidden /<group>/<project>.
+or
address@hidden /<project-or-group> (where a group is a colection of projects)
address@hidden itemize
+
+<ref-item> is one of these:
address@hidden @asis
address@hidden @bullet{} one of the words: activity, analytics, boards or 
kanban, branches, commits, contributors, groups, issues or list, jobs, labels, 
merge_requests, milestones, pages, pipelines, pipeline_charts, members or 
people or staff, projects, pulls, schedules, snippets, status or tags
+the associated items are listed
address@hidden @bullet{} one of the words: branch, commit(s), issue(s), 
milestone(s), pull(s), snippet(s) or tag(s) followed by a '/' or '=' and an 
item-id
+the item is shown
address@hidden @bullet{} an issue reference given by a positive integer, e.g. 
@emph{92} or prefaced with @emph{GL-}, like GL-92
+the issue is displayed
address@hidden @bullet{} a commit reference given by a hex number, 55a1f0
+the commit diff is displayed
address@hidden @bullet{} a branch or tag reference given by an alphanumeric 
name, e.g. hyper20
+the files in the branch are listed.
address@hidden table
+
address@hidden hibtypes-gitlab-default-user
+USER defaults to the value of @code{hibtypes-gitlab-default-user}.
+If given, PROJECT overrides any project value in REFERENCE.  If no
+PROJECT value is provided, it defaults to the value of
address@hidden
+
 @findex ibtypes social-reference
 @cindex hashtag
 @cindex username
@@ -2180,11 +2246,12 @@ at line-num and optional column-num.  Also works for 
remote pathnames.
 @cindex link, pathname
 @item 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.
+delimited and non-delimited remote pathnames, Texinfo @@address@hidden@}
+entries, and hash-style link references to HTML, Markdown or Emacs
+outline headings, and MSWindows paths (see 
@address@hidden:address@hidden/DEMO#POSIX
+and MSWindows Paths} for details).  Emacs Lisp library files
+(filenames without any directory component that end in .el and .elc)
+are looked up using the @code{load-path} directory list.
 
 @noindent
 See the function documentation for @code{hpath:at-p} for possible
@@ -6549,13 +6616,13 @@ for each available window system: 
@code{hpath:external-display-alist-macos},
 @code{hpath:external-display-alist-x}.  Examine and modify these
 values to suit your needs.
 
address@hidden MIME
address@hidden mailcap
address@hidden external viewer
-On systems that have a MIME mailcap file (see
address@hidden/en/Mailcap}), this is used as a fallback
-set of external viewer associations when none are found
-within @code{hpath:get-external-display-alist}.
address@hidden @cindex MIME
address@hidden @cindex mailcap
address@hidden @cindex external viewer
address@hidden On systems that have a MIME mailcap file (see
address@hidden @file{www.wikiwand.com/en/Mailcap}), this is used as a fallback
address@hidden set of external viewer associations when none are found
address@hidden within @code{hpath:get-external-display-alist}.
 
 @node Link Variable Substitution, Web Search Engines, External Viewers, 
Customization
 @subsection  Link Variable Substitution
@@ -7825,6 +7892,7 @@ If dragged from an Emacs window to outside of Emacs:
 @section   Smart Keyboard Keys
 
 @menu
+* Smart Key - Company Mode::
 * Smart Key - Treemacs::
 * Smart Key - Emacs Pushbuttons::
 * Smart Key - Argument Completion::
@@ -7840,6 +7908,7 @@ If dragged from an Emacs window to outside of Emacs:
 * Smart Key - RDB Mode::
 * Smart Key - Help Buffers::
 * Smart Key - Pages Directory Mode::
+* Smart Key - Python Source Code::
 * Smart Key - Identifier Menu Mode ::
 * Smart Key - C Source Code::
 * Smart Key - C++ Source Code::
@@ -7847,7 +7916,6 @@ If dragged from an Emacs window to outside of Emacs:
 * Smart Key - Lisp Source Code::
 * Smart Key - Java Source Code::
 * Smart Key - JavaScript Source Code::
-* Smart Key - Python Source Code::
 * Smart Key - Objective-C Source Code::
 * Smart Key - Fortran Source Code::
 * Smart Key - Occurrence Matches::
@@ -7868,7 +7936,26 @@ If dragged from an Emacs window to outside of Emacs:
 * Smart Key - Default Context::
 @end menu
 
address@hidden Smart Key - Treemacs, Smart Key - Emacs Pushbuttons, Smart 
Keyboard Keys, Smart Keyboard Keys
+
address@hidden Smart Key - Company Mode, Smart Key - Treemacs, Smart Keyboard 
Keys, Smart Keyboard Keys
address@hidden Smart Key - Company Mode
+
address@hidden company-mode
address@hidden completion
+Company mode is an extensive in-buffer completion framework, often used to 
complete programming identifiers.
+
address@hidden
address@hidden
+When company-mode is active:
+  ACTION KEY
+     Displays selected item's definition.
+  ASSIST KEY
+     Displays the documentation, if any, for the selected item.
address@hidden group
address@hidden format
+
+
address@hidden Smart Key - Treemacs, Smart Key - Emacs Pushbuttons, Smart Key - 
Company Mode, Smart Keyboard Keys
 @subsection Smart Key - Treemacs
 
 @cindex Treemacs
@@ -7889,10 +7976,10 @@ When in a Treemacs file browser buffer:
          collapse the entry;
      (2) elsewhere within an entry line, the item is displayed for editing,
          normally in another window;
-     (3) at the end of an entry line: invoke @code{action-key-eol-function},
-         typically to scroll up proportionally, if an Action Key press; invoke
-         @code{assist-key-eol-function}, typically to scroll down 
proportionally,
-         if an Assist Key press;
+     (3) at the end of an entry line: if an Action Key press, invokes
+         @code{action-key-eol-function}, typically to scroll up proportionally;
+         if an Assist Key press, invokes @code{assist-key-eol-function}, 
typically
+         to scroll down proportionally;
      (4) on the first line of the buffer (other than the end of line),
          dired is run on the current directory of this Treemacs;
      (5) at the end of the first or last line of the buffer,
@@ -8228,7 +8315,7 @@ When pressed at the end of a Help buffer:
 @end group
 @end format
 
address@hidden Smart Key - Pages Directory Mode, Smart Key - Identifier Menu 
Mode , Smart Key - Help Buffers, Smart Keyboard Keys
address@hidden Smart Key - Pages Directory Mode, Smart Key - Python Source 
Code, Smart Key - Help Buffers, Smart Keyboard Keys
 @subsection Smart Key - Pages Directory Mode
 
 @format
@@ -8244,7 +8331,8 @@ When pressed on a pages-directory-mode entry line:
 @end group
 @end format
 
address@hidden Smart Key - Python Source Code, Smart Key - Objective-C Source 
Code, Smart Key - JavaScript Source Code, Smart Keyboard Keys
address@hidden
address@hidden Smart Key - Python Source Code, Smart Key - Identifier Menu Mode 
, Smart Key - Pages Directory Mode, Smart Keyboard Keys
 @subsection Smart Key - Python Source Code
 @format
 @group
@@ -8273,16 +8361,16 @@ When pressed within a Python source code file (without 
the OO-Browser):
 @end group
 @end format
 
address@hidden
address@hidden Smart Key - Identifier Menu Mode , Smart Key - C Source Code, 
Smart Key - Pages Directory Mode, Smart Keyboard Keys
address@hidden Smart Key - Identifier Menu Mode , Smart Key - C Source Code, 
Smart Key - Python Source Code, Smart Keyboard Keys
 @subsection Smart Key - Identifier Menu Mode 
 
 @format
 @group
-This works only for identifiers defined within the same source file in which 
they are referenced.
-It requires either Emacs' imenu or XEmacs' func-menu library and it requires 
that an index of
-identifiers has been built for the current buffer.  Other handlers handle 
identifier references
-and definitions across multiple files.
+This works only for identifiers defined within the same source file in
+which they are referenced.  It requires either Emacs' imenu or XEmacs'
+func-menu library and it requires that an index of identifiers has
+been built for the current buffer.  Other handlers handle identifier
+references and definitions across multiple files.
 
 @noindent
 When pressed on an identifier name after an identifier index has been 
generated:
@@ -8294,6 +8382,7 @@ When pressed on an identifier name after an identifier 
index has been generated:
 @end group
 @end format
 
address@hidden
 @node Smart Key - C Source Code, Smart Key - C++ Source Code, Smart Key - 
Identifier Menu Mode , Smart Keyboard Keys
 @subsection Smart Key - C Source Code
 
@@ -8322,7 +8411,6 @@ When pressed within a C source code file:
 @end group
 @end format
 
address@hidden
 @node Smart Key - C++ Source Code, Smart Key - Assembly Source Code, Smart Key 
- C Source Code, Smart Keyboard Keys
 @subsection Smart Key - C++ Source Code
 
@@ -8352,6 +8440,7 @@ buffer:
 @end group
 @end format
 
address@hidden
 @format
 @group
 When pressed within a C++ source code file (without the OO-Browser):
@@ -8374,7 +8463,6 @@ When pressed within a C++ source code file (without the 
OO-Browser):
 @end group
 @end format
 
address@hidden
 @node Smart Key - Assembly Source Code, Smart Key - Lisp Source Code, Smart 
Key - C++ Source Code, Smart Keyboard Keys
 @subsection Smart Key - Assembly Source Code
 
@@ -8401,8 +8489,12 @@ When pressed within an assembly source code file:
 
 @format
 @group
address@hidden change-log-mode
address@hidden lisp identifier
address@hidden elisp identifier
 When pressed on a Lisp symbol within any of these types of buffers
-(Lisp code, debugger, compilation, or help):
+(Lisp code, debugger, compilation, or help) or in change-log-mode
+on an Emacs Lisp bound identifier:
   ACTION KEY
      Jumps to the definition of any selected Lisp construct.  If on an
      Emacs Lisp require, load, or autoload clause and the (find-library)
@@ -8455,7 +8547,7 @@ When pressed within a Java source code file (without the 
OO-Browser):
 @end group
 @end format
 
address@hidden Smart Key - JavaScript Source Code, Smart Key - Python Source 
Code, Smart Key - Java Source Code, Smart Keyboard Keys
address@hidden Smart Key - JavaScript Source Code, Smart Key - Objective-C 
Source Code, Smart Key - Java Source Code, Smart Keyboard Keys
 @subsection Smart Key - JavaScript Source Code
 
 @format
@@ -8472,7 +8564,7 @@ When pressed within a JavaScript source code file:
 @end format
 
 
address@hidden Smart Key - Objective-C Source Code, Smart Key - Fortran Source 
Code, Smart Key - Python Source Code, Smart Keyboard Keys
address@hidden Smart Key - Objective-C Source Code, Smart Key - Fortran Source 
Code, Smart Key - JavaScript Source Code, Smart Keyboard Keys
 @subsection Smart Key - Objective-C Source Code
 
 @vindex objc-cpp-include-path
@@ -9260,10 +9352,8 @@ to direct further development effort towards known needs;
 and to acknowledge known weaknesses in the current system.
 @end itemize
 
-If you would like to see some of this work done, consider funding
-its development.  Without any serious interest from users, progress
-on these fronts will be slow.  Here are some new features we have
-in mind, however.
+Without any serious interest from users, progress on these fronts will
+be slow.  Here are some new features we have in mind, however.
 
 @table @asis
 
diff --git a/man/im/wgrid4x3.png b/man/im/wgrid4x3.png
new file mode 100644
index 0000000..b3cef2e
Binary files /dev/null and b/man/im/wgrid4x3.png differ
diff --git a/man/version.texi b/man/version.texi
index 9b3f5b2..085a4d0 100644
--- a/man/version.texi
+++ b/man/version.texi
@@ -1,4 +1,4 @@
address@hidden UPDATED February 2, 2019
address@hidden UPDATED-MONTH Feb 2019
address@hidden EDITION 7.0.2b
address@hidden VERSION 7.0.2b
address@hidden UPDATED May 11, 2019
address@hidden UPDATED-MONTH May 2019
address@hidden EDITION 7.0.3
address@hidden VERSION 7.0.3
diff --git a/set.el b/set.el
index abe4b3b..1ab32f5 100644
--- a/set.el
+++ b/set.el
@@ -1,4 +1,4 @@
-;;; set.el ---  General mathematical operators for unordered sets
+;;; set.el --- General mathematical operators for unordered sets
 ;;
 ;; Author:       Bob Weiner
 ;;
diff --git a/smart-clib-sym b/smart-clib-sym
old mode 100755
new mode 100644
diff --git a/topwin.py b/topwin.py
old mode 100755
new mode 100644
index 2892cad..2a3c983
--- a/topwin.py
+++ b/topwin.py
@@ -23,7 +23,7 @@ if len(argv) < 3:
 
 x = int(argv[1]); y = int(argv[2])
 
-# Return the first window only that x,y falls within since the windows are 
listed in z-order (top of stack to bottom)
+# Return the first window that x,y falls within since the windows are listed 
in z-order (top of stack to bottom)
 def filter_and_print_top_window(x, y):
     win_x = win_y = win_width = win_height = 0
 



reply via email to

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