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

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

[elpa] externals/hyperbole ac036b5f29 41/47: Merge branch 'master' into


From: ELPA Syncer
Subject: [elpa] externals/hyperbole ac036b5f29 41/47: Merge branch 'master' into insert_missing_changelog_entry
Date: Sun, 25 Jun 2023 15:58:39 -0400 (EDT)

branch: externals/hyperbole
commit ac036b5f2992801f398c3cff407f907c4929d3dd
Merge: 11411b78f3 7bd5a86a4c
Author: Robert Weiner <rsw@gnu.org>
Commit: GitHub <noreply@github.com>

    Merge branch 'master' into insert_missing_changelog_entry
---
 ChangeLog                    |   82 +++-
 HY-NEWS                      |   24 +-
 Makefile                     |    2 +-
 TAGS                         | 1096 +++++++++++++++++++++---------------------
 hact.el                      |    3 +-
 hactypes.el                  |   21 +-
 hargs.el                     |    3 +-
 hbut.el                      |   63 +--
 hibtypes.el                  |   45 +-
 hload-path.el                |    7 +-
 hmouse-drv.el                |   15 +-
 hmouse-tag.el                |   12 +-
 hpath.el                     |   18 +-
 hui-em-but.el                |   12 +-
 hui-menu.el                  |    6 +-
 hui-mini.el                  |   92 ++--
 hui-mouse.el                 |    6 +-
 hui-select.el                |   10 +-
 hui-window.el                |   32 +-
 hui.el                       |   82 ++--
 hversion.el                  |   66 +--
 hycontrol.el                 |   10 +-
 hypb.el                      |    2 +-
 hyperbole.el                 |    4 +-
 hyrolo.el                    |   35 +-
 kotl/kotl-mode.el            |   12 +-
 kotl/kview.el                |   13 +-
 man/hyperbole.html           |  613 +++++++++++++----------
 man/hyperbole.info           |  Bin 604184 -> 608808 bytes
 man/hyperbole.pdf            |  Bin 1356010 -> 1362582 bytes
 man/hyperbole.texi           |  284 +++++------
 set.el                       |    8 +-
 test/hy-test-dependencies.el |    5 +-
 test/kcell-tests.el          |    2 +-
 34 files changed, 1480 insertions(+), 1205 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9162eca9b9..e2f0cf16d3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,90 @@
+2023-06-25  Bob Weiner  <rsw@gnu.org>
+
+* hactypes.el (rfc-toc): Fix wrong 'select-buffer' call by replacing with
+    'switch-to-buffer' for permanent return to original buffer.
+
+2023-06-24  Bob Weiner  <rsw@gnu.org>
+
+* hui.el (hui:ibut-link-create): Fix name attribute not getting set when 
creating a
+    new ibutton.  Rename 'but-edit' to 'edit-flag' and always send name arg to
+    'ibut:operate' call so that button name attribute is always set when given.
+         (hui:ebut-link-directly, hui:ibut-link-directly): Change 'but-edit' to
+    'edit-flag'.
+  hbut.el (ibut:operate): Add 2nd edit-flag parameter; when non-nil, means 
modifying
+    an existing ibut at point.
+    
 2023-06-23  Mats Lidell  <matsl@gnu.org>
 
 * Makefile (LOAD_EL): Avoid the trailing quotation mark.
 
+2023-06-22  Bob Weiner  <rsw@gnu.org>
+
+* man/hyperbole.texi (By Menu): Add section similar to that of Ibuts, 
documenting
+    new Ebut/Link command.
+                     (By Dragging): Move to after By Menu and add paragraph 
similar
+    to Ibut one.
+                     (By Link): Add this as a separate subsection.
+
+2023-06-21  Bob Weiner  <rsw@gnu.org>
+
+* hibtypes.el (texinfo-ref): Replace 'match-string' with 
'match-string-no-properties'.
+
+* hbut.el (ibut:at-type-p): Remove dynamic binding of 'types' for 'hact' which 
no
+    longer uses it.
+
+* test/hy-test-dependencies.el: Require hyperb:dir def and add test/ dir to 
load-path.
+
+* kotl/kview.el (kview:char-invisible-p): Remove and use '(invisible-p 
(point))'.
+                (kview:char-visible-p): Remove and use '(not (invisible-p 
(point)))'.
+                (kview:first-invisible-point, kview:first-visible-point,
+                 kview:previous-visible-point):
+  kotl/kotl-mode.el (kotl-mode:eolp, kotl-mode:eolp, 
kotl-mode:to-visible-position):
+    Make the above updated calls in these functions.
+
+2023-06-20  Bob Weiner  <rsw@gnu.org>
+
+* hui-window.el (hmouse-pulse-iterations): Add to temporarily override
+    `pulse-iterations' with this for hmouse operations and use in 
hmouse-pulse-*
+    functions.
+  hui.el (hui:ebut-link-directly, hui:ibut-link-directly): Add 
hmouse-pulse-line
+    to highlight referent line linked to.
+
+2023-06-21  Mats Lidell  <matsl@gnu.org>
+
+* Makefile (LOAD_EL): Use gnu make pattern substitution.
+
 2023-06-19  Bob Weiner  <rsw@gnu.org>
 
+* hactypes.el: (link-to-regexp-match): Replace 'find-file-noselect' with
+    'hpath:find-noselect' so relative Elisp paths are resolved properly.
+
+* hbut.el (ibut:insert-text): Add 'actypes::link-to-string-match' support.
+
+* hpath.el (hpath:substitute-var-name): Remove matching path rather than 
adding the
+     variable to the path when the variable is one for Elisp files.  These can 
be
+     resolved without the variable being included in the path.
+
+* hui.el (hui:ebut-link-directly, hui:ibut-link-directly): Fix so does not use
+    Smart Key depress/release windows when called interactively.
+         (hui.el (hui:ibut-link-directly): With prefix arg, name-arg-flag, 
prompt
+    for a name for the ibut and insert it.
+
+* man/hyperbole.texi (Implicit Buttons): Document the Ibut menu changes below.
+  hui-mini.el (hui:menus): In Ibut menu, add Link which runs 
'hui:ebut-link-directly'.
+                           In Ibut menu, rename Label to Name and add Link 
which
+    runs 'hui:ibut-link-directly'.
+                           Change all doc string tense from 'Displays' to 
'Display'.
+  hui-menu.el (infodock-hyperbole-menu): Do the same as above for pulldown 
Explicit-Button
+    and Implicit-Button menus.
+
+* hui.el (hui:link): Rename to 'hkey-link' and move to "hmouse-drv.el" since 
only
+    ever used in 'hmouse-choose-windows' call.  Make an autoload.
+
+* hmouse-tag.el (smart-emacs-lisp-mode-p): Change 'string-match' to 
'string-match-p'
+    since don't use match groupings.
+                (smart-lisp-at-known-identifier-p): Fix missing open paren 
pair in
+    last cond clause.
+
 * kotl/kotl-mode.el (kotl-mode:add-cell): Fix that when inserting a child cell 
in
     a tree with hidden/collapsed cells, 'kcell-view:forward' was called
     with a 't arg that skipped over invisible cells, moving to the end of a 
tree
@@ -247,7 +328,6 @@ name with 'name' and 'name-key'.
     pre-command hook: (eq major-mode 'kotl-mode).  Also, comment this test
     out since call should not be on the stack since this is a pre-command
     hook: (not (hyperb:stack-frame '(kcell-view:to-label-end))).
->>>>>>> rsw
 
 2023-05-27  Bob Weiner  <rsw@gnu.org>
 
diff --git a/HY-NEWS b/HY-NEWS
index ea5eae9949..36bd05d0d1 100644
--- a/HY-NEWS
+++ b/HY-NEWS
@@ -41,14 +41,24 @@
           mode; {C-h h} re-enables it.  See "(hyperbole)menu,
           entry/exit commands".
 
-  *** Ibut Menu: Documented in the manual, notably the new Ibut/Create
-      menu item.  See "(hyperbole)menu, Ibut/Create".
+  *** Extensive 150-page Reference Manual: Includes multiple indexes
+      for easy cross-referencing, Info viewer version and PDF for printing.
+      Some of the updates include:
 
-  *** Manual Glossary: Added Ace Window, Consult, Org Mode, and Org Roam
-      entries.  See "(hyperbole)Glossary".
+  **** Ebut/Link Menu Item:  With two windows on screen, link from source
+       window point to referent window point.  Do a similar thing when
+       more windows are on screen via an Action Mouse Key drag between
+       windows.  See "(hyperbole)Smart Mouse Drags between Windows".
 
-  *** Smart Key - Org Mode: Expanded with doc for more extensive behavior.
-      See "(hyperbole)Smart Key - Org Mode".
+  **** Ibut Menu: Documented in the manual, notably the new Ibut/Create
+       menu item.  See "(hyperbole)menu, Ibut/Create".  For the Ibut/Link
+       menu item, see "(hyperbole)menu, Ibut/Link".
+
+  **** Manual Glossary: Added Ace Window, Consult, Org Mode, and Org Roam
+       entries.  See "(hyperbole)Glossary".
+
+  **** Smart Key - Org Mode: Expanded with doc for more extensive behavior.
+       See "(hyperbole)Smart Key - Org Mode".
 
 
 ** HYCONTROL  (See "(hyperbole)HyControl").
@@ -286,7 +296,7 @@
        using `hattr:emacs-button-attributes', as recognized by
        `hattr:emacs-button-is-p'.
 
-  *** (hui:ibut-create, ibut:create, ibut:delimit, ibut:edit, ibut:operate):
+  *** (hui:ibut-create, ibut:create, ibut:delimit, ibut:operate):
       Add interactive, named/labeled implicit button creation.  For
       `ibut:create', improve doc and add but-sym arg which can supply all
       other arguments in its properties.
diff --git a/Makefile b/Makefile
index 9f4dad8e4c..85b1cded50 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@
 # Author:       Bob Weiner
 #
 # Orig-Date:    15-Jun-94 at 03:42:38
-# Last-Mod:     22-Jun-23 at 19:23:14 by Mats Lidell
+# Last-Mod:     24-Jun-23 at 00:31:35 by Mats Lidell
 #
 # Copyright (C) 1994-2023  Free Software Foundation, Inc.
 # See the file HY-COPY for license information.
diff --git a/TAGS b/TAGS
index cd3aacd1d5..b2b77df672 100644
--- a/TAGS
+++ b/TAGS
@@ -84,13 +84,13 @@ hactypes.el,1275
 (defact link-to-org-id 592,23971
 (defact link-to-org-id-marker 601,24284
 (defact link-to-regexp-match 611,24662
-(defact link-to-rfc 638,25733
-(defact link-to-string-match 645,26001
-(defact link-to-texinfo-node 654,26454
-(defact link-to-web-search 679,27507
-(defact man-show 687,27888
-(defact rfc-toc 695,28198
-(defact text-toc 722,29365
+(defact link-to-rfc 638,25709
+(defact link-to-string-match 645,25977
+(defact link-to-texinfo-node 654,26430
+(defact link-to-web-search 679,27483
+(defact man-show 687,27864
+(defact rfc-toc 695,28174
+(defact text-toc 722,29341
 
 hargs.el,963
 (defvar hargs:defaults 41,1440
@@ -156,7 +156,7 @@ hbmap.el,259
 (defvar hbmap:dir-user112,4112
 (defvar hbmap:dir-filename120,4405
 
-hbut.el,5695
+hbut.el,5697
 (defconst hbut:max-len 32,987
 (defsubst hbut:max-len 39,1228
 (defvar   ebut:hattr-save 54,1813
@@ -185,125 +185,125 @@ hbut.el,5695
 (defun    ebut:operate 338,13043
 (defun    ebut:program 447,17241
 (defun    ebut:search 478,18692
-(defun    ebut:to 557,21356
-(defun    ebut:delimit 591,22708
-(defun    ebut:match-regexp 618,23776
-(defconst ebut:label-start 629,24216
-(defconst ebut:label-end 631,24317
-(defconst hbut:instance-sep 633,24416
-(defun    gbut:act 640,24756
-(defun    gbut:delete 655,25371
-(defun    gbut:ebut-program 660,25594
-(defun    gbut:file 680,26485
-(defun    gbut:get 684,26643
-(defun    gbut:help 696,27057
-(defun    gbut:label-list 707,27479
-(defun    gbut:label-p 711,27598
-(defun    gbut:to 726,28413
-(defun    gbut:key-list 744,29070
-(defun    gbut:ebut-key-list 748,29196
-(defun    gbut:ibut-key-list 762,29657
-(defun    hattr:attributes 775,30166
-(defun    hattr:clear 785,30471
-(defun    hattr:copy 796,30847
-(defun hattr:emacs-button-attributes 807,31237
-(defun hattr:emacs-button-is-p 820,31727
-(defun    hattr:get 827,32013
-(defun    hattr:list 831,32147
-(defun    hattr:memq 839,32424
-(defun    hattr:report 851,32855
-(defun    hattr:save 879,33881
-(defun    hattr:set 897,34733
-(defalias 'hattr:summarize hattr:summarize901,34912
-(defvar   hattr:filename903,34956
-(defun    hbut:act 913,35389
-(defun    hbut:action 976,38092
-(defun    hbut:at-p 986,38400
-(defun    hbut:comment 999,38800
-(defvar   hbut:fill-prefix-regexps1032,40027
-(defun    hbut:fill-prefix-remove 1056,40875
-(defun    hbut:delete 1066,41267
-(defun    hbut:funcall 1081,41900
-(defun    hbut:get 1108,43032
-(defun    hbut:get-key-src 1119,43560
-(defun    hbut:is-p 1177,45847
-(defun    hbut:key 1182,46006
-(defun    hbut:to-key-src 1189,46226
-(defun    hbut:key-src-fmt 1196,46545
-(defun    hbut:key-src-set-buffer 1212,47195
-(defun    hbut:key-to-label 1234,47894
-(defun    hbut:label 1255,48578
-(defun    hbut:label-list 1262,48824
-(defun    hbut:label-p 1266,48978
-(defun    hbut:label-regexp 1279,49753
-(defun    hbut:label-instances-regexp 1309,50782
-(defun    hbut:label-to-key 1344,52021
-(defun    hbut:map 1357,52611
-(defvar   hbut:syntax-table 1414,54812
-(defun    hbut:modify-syntax 1420,55082
-(defun    hbut:outside-comment-p 1435,55709
-(defun    hbut:rename 1443,56069
-(defun    hbut:report 1454,56475
-(defun    hbut:source 1513,58409
-(defalias 'hbut:summarize hbut:summarize1528,58982
-(defun    hbut:to 1530,59023
-(defvar   hbut:current 1537,59351
-(defconst hbut:source-prefix 1540,59456
-(defun    hbut:key-list 1547,59787
-(defun    hbut:ebut-key-list 1551,59952
-(defun    hbut:ibut-key-list 1566,60477
-(defun    ibut:act 1580,61020
-(defun    ibut:alist 1591,61426
-(defun    ibut:at-p 1597,61655
-(defun    ibut:at-type-p 1616,62502
-(defun  ibut:set-name-and-label-key-p 1632,63225
-(cl-defun ibut:create 1709,66042
-(def-edebug-spec cl-defun1890,72270
-(def-edebug-spec lambda-key-list1895,72417
-(defun    ibut:delete 1901,72589
-(defun    ibut:delimit 1928,73595
-(defun    ibut:get 1955,74663
-(defun    ibut:is-p 1977,75480
-(defun    ibut:label-map 1985,75773
-(defun    ibut:label-key-match 1997,76362
-(defun    ibut:label-p 2007,76755
-(defun    ibut:label-regexp 2052,78783
-(defun    ibut:label-instances-regexp 2058,79074
-(defun    ibut:label-set 2064,79402
-(defun    ibut:label-sort-keys 2088,80493
-(defun    ibut:list 2107,81123
-(defun    ibut:key 2129,81974
-(defalias 'ibut:to-key-src ibut:to-key-src2136,82212
-(defalias 'ibut:key-to-label ibut:key-to-label2137,82259
-(defalias 'ibut:label-to-key ibut:label-to-key2138,82308
-(defalias 'map-ibut map-ibut2139,82357
-(defun    ibut:map 2141,82398
-(defun    ibut:next-occurrence 2153,82891
-(defun    ibut:operate 2168,83636
-(defun    ibut:insert-text 2343,90703
-(defun    ibut:previous-occurrence 2419,93774
-(defun    ibut:program 2434,94505
-(defun    ibut:rename 2462,95859
-(defalias 'ibut:summarize ibut:summarize2482,96794
-(defun    ibut:to 2484,96835
-(defun    ibut:at-to-name-p 2534,98562
-(defun    ibut:to-name 2558,99360
-(defun    ibut:to-text 2592,100699
-(defconst ibut:label-start 2643,102783
-(defconst ibut:label-end 2645,102884
-(defvar   ibut:label-separator 2648,102984
-(defvar   ibut:label-separator-regexp 2656,103301
-(defmacro defib 2663,103641
-(def-edebug-spec defib2700,105326
-(def-edebug-spec lambda-list2705,105466
-(defalias 'ibtype:create ibtype:create2710,105584
-(defun ibtype:activate-link 2712,105619
-(defmacro defil 2724,106068
-(defmacro defal 2821,110406
-(defalias 'ibtype:create-action-link-type 
ibtype:create-action-link-type2877,112575
-(defalias 'ibtype:create-regexp-link-type 
ibtype:create-regexp-link-type2878,112626
-(defun    ibtype:def-symbol 2880,112678
-(defun    ibtype:delete 2890,113035
+(defun    ebut:to 557,21344
+(defun    ebut:delimit 591,22696
+(defun    ebut:match-regexp 618,23764
+(defconst ebut:label-start 629,24204
+(defconst ebut:label-end 631,24305
+(defconst hbut:instance-sep 633,24404
+(defun    gbut:act 640,24744
+(defun    gbut:delete 655,25359
+(defun    gbut:ebut-program 660,25582
+(defun    gbut:file 680,26473
+(defun    gbut:get 684,26631
+(defun    gbut:help 696,27045
+(defun    gbut:label-list 707,27467
+(defun    gbut:label-p 711,27586
+(defun    gbut:to 726,28401
+(defun    gbut:key-list 744,29058
+(defun    gbut:ebut-key-list 748,29184
+(defun    gbut:ibut-key-list 762,29645
+(defun    hattr:attributes 775,30154
+(defun    hattr:clear 785,30459
+(defun    hattr:copy 796,30835
+(defun hattr:emacs-button-attributes 807,31225
+(defun hattr:emacs-button-is-p 820,31715
+(defun    hattr:get 827,32001
+(defun    hattr:list 831,32135
+(defun    hattr:memq 839,32412
+(defun    hattr:report 851,32843
+(defun    hattr:save 879,33869
+(defun    hattr:set 897,34721
+(defalias 'hattr:summarize hattr:summarize901,34900
+(defvar   hattr:filename903,34944
+(defun    hbut:act 913,35377
+(defun    hbut:action 976,38080
+(defun    hbut:at-p 986,38388
+(defun    hbut:comment 999,38788
+(defvar   hbut:fill-prefix-regexps1032,40015
+(defun    hbut:fill-prefix-remove 1056,40863
+(defun    hbut:delete 1066,41255
+(defun    hbut:funcall 1081,41888
+(defun    hbut:get 1108,43020
+(defun    hbut:get-key-src 1119,43548
+(defun    hbut:is-p 1177,45835
+(defun    hbut:key 1182,45994
+(defun    hbut:to-key-src 1189,46214
+(defun    hbut:key-src-fmt 1196,46533
+(defun    hbut:key-src-set-buffer 1212,47183
+(defun    hbut:key-to-label 1234,47882
+(defun    hbut:label 1255,48566
+(defun    hbut:label-list 1262,48812
+(defun    hbut:label-p 1266,48966
+(defun    hbut:label-regexp 1279,49741
+(defun    hbut:label-instances-regexp 1309,50770
+(defun    hbut:label-to-key 1344,52009
+(defun    hbut:map 1357,52599
+(defvar   hbut:syntax-table 1414,54800
+(defun    hbut:modify-syntax 1420,55070
+(defun    hbut:outside-comment-p 1435,55697
+(defun    hbut:rename 1443,56057
+(defun    hbut:report 1454,56463
+(defun    hbut:source 1513,58397
+(defalias 'hbut:summarize hbut:summarize1528,58970
+(defun    hbut:to 1530,59011
+(defvar   hbut:current 1537,59339
+(defconst hbut:source-prefix 1540,59444
+(defun    hbut:key-list 1547,59775
+(defun    hbut:ebut-key-list 1551,59940
+(defun    hbut:ibut-key-list 1566,60465
+(defun    ibut:act 1580,61008
+(defun    ibut:alist 1591,61414
+(defun    ibut:at-p 1597,61643
+(defun    ibut:at-type-p 1616,62490
+(defun    ibut:set-name-and-label-key-p 1630,63100
+(cl-defun ibut:create 1707,65919
+(def-edebug-spec cl-defun1888,72147
+(def-edebug-spec lambda-key-list1893,72294
+(defun    ibut:delete 1899,72466
+(defun    ibut:delimit 1926,73472
+(defun    ibut:get 1953,74540
+(defun    ibut:is-p 1975,75357
+(defun    ibut:label-map 1983,75650
+(defun    ibut:label-key-match 1995,76239
+(defun    ibut:label-p 2005,76632
+(defun    ibut:label-regexp 2050,78660
+(defun    ibut:label-instances-regexp 2056,78951
+(defun    ibut:label-set 2062,79279
+(defun    ibut:label-sort-keys 2086,80370
+(defun    ibut:list 2105,81000
+(defun    ibut:key 2127,81851
+(defalias 'ibut:to-key-src ibut:to-key-src2134,82089
+(defalias 'ibut:key-to-label ibut:key-to-label2135,82136
+(defalias 'ibut:label-to-key ibut:label-to-key2136,82185
+(defalias 'map-ibut map-ibut2137,82234
+(defun    ibut:map 2139,82275
+(defun    ibut:next-occurrence 2151,82768
+(defun    ibut:operate 2166,83513
+(defun    ibut:insert-text 2342,90625
+(defun    ibut:previous-occurrence 2422,93902
+(defun    ibut:program 2437,94633
+(defun    ibut:rename 2465,95987
+(defalias 'ibut:summarize ibut:summarize2485,96922
+(defun    ibut:to 2487,96963
+(defun    ibut:at-to-name-p 2537,98690
+(defun    ibut:to-name 2561,99488
+(defun    ibut:to-text 2595,100827
+(defconst ibut:label-start 2646,102911
+(defconst ibut:label-end 2648,103012
+(defvar   ibut:label-separator 2651,103112
+(defvar   ibut:label-separator-regexp 2659,103429
+(defmacro defib 2666,103769
+(def-edebug-spec defib2703,105454
+(def-edebug-spec lambda-list2708,105594
+(defalias 'ibtype:create ibtype:create2713,105712
+(defun ibtype:activate-link 2715,105747
+(defmacro defil 2727,106196
+(defmacro defal 2824,110534
+(defalias 'ibtype:create-action-link-type 
ibtype:create-action-link-type2880,112703
+(defalias 'ibtype:create-regexp-link-type 
ibtype:create-regexp-link-type2881,112754
+(defun    ibtype:def-symbol 2883,112806
+(defun    ibtype:delete 2893,113163
 
 hgnus.el,110
 (defun Gnus-init 54,1683
@@ -411,52 +411,52 @@ hibtypes.el,1674
 (defib org-id 139,6045
 (defun org-id:help 163,7115
 (defib pathname 188,8141
-(defvar mail-address-mode-list308,14084
-(defun mail-address-at-p 312,14234
-(defib mail-address 323,14724
-(defib org-link-outside-org-mode 363,16610
-(defib annot-bib 382,17504
-(defun markdown-follow-link-p 403,18503
-(defun markdown-follow-inline-link-p 424,19168
-(defib markdown-internal-link 451,20452
-(defib rfc-toc 481,21996
-(defib id-cflow 506,23066
-(defib ctags 553,25120
-(defib etags 579,26522
-(defib cscope 616,28427
-(defib text-toc 643,29579
-(defib dir-summary 675,31161
-(defib rfc 711,32731
-(defib man-apropos 745,34185
-(defun hlink 773,35441
-(defun parse-label-and-file 793,36428
-(defconst elink:start 815,37333
-(defconst elink:end 817,37438
-(defib elink 820,37536
-(defconst glink:start 830,37937
-(defconst glink:end 832,38040
-(defib glink 835,38136
-(defconst ilink:start 844,38426
-(defconst ilink:end 846,38531
-(defib ilink 849,38629
-(defib pathname-line-and-column 864,39285
-(defib ipython-stack-frame 892,40878
-(defib ripgrep-msg 934,43040
-(defib grep-msg 980,45181
-(defun hib-python-traceback 1048,49029
-(defib debugger-source 1059,49641
-(defib elisp-compiler-msg 1145,53682
-(defib patch-msg 1247,58753
-(defib texinfo-ref 1274,59957
-(defib gnus-push-button 1359,64485
-(defib Info-node 1371,65027
-(defib hyp-address 1404,66716
-(defib hyp-source 1423,67730
-(defconst action:start 1450,68849
-(defconst action:end 1453,68958
-(defib action 1462,69308
-(defun action:help 1560,73684
-(defib completion 1587,74776
+(defvar mail-address-mode-list308,14126
+(defun mail-address-at-p 312,14276
+(defib mail-address 323,14766
+(defib org-link-outside-org-mode 363,16652
+(defib annot-bib 382,17546
+(defun markdown-follow-link-p 403,18545
+(defun markdown-follow-inline-link-p 424,19210
+(defib markdown-internal-link 451,20494
+(defib rfc-toc 481,22038
+(defib id-cflow 506,23108
+(defib ctags 553,25162
+(defib etags 579,26564
+(defib cscope 616,28469
+(defib text-toc 643,29621
+(defib dir-summary 675,31203
+(defib rfc 711,32773
+(defib man-apropos 745,34227
+(defun hlink 773,35483
+(defun parse-label-and-file 793,36470
+(defconst elink:start 815,37375
+(defconst elink:end 817,37480
+(defib elink 820,37578
+(defconst glink:start 830,37979
+(defconst glink:end 832,38082
+(defib glink 835,38178
+(defconst ilink:start 844,38468
+(defconst ilink:end 846,38573
+(defib ilink 849,38671
+(defib pathname-line-and-column 864,39327
+(defib ipython-stack-frame 892,40920
+(defib ripgrep-msg 934,43082
+(defib grep-msg 980,45223
+(defun hib-python-traceback 1048,49071
+(defib debugger-source 1059,49683
+(defib elisp-compiler-msg 1145,53724
+(defib patch-msg 1247,58795
+(defib texinfo-ref 1274,59999
+(defib gnus-push-button 1359,64597
+(defib Info-node 1371,65139
+(defib hyp-address 1404,66828
+(defib hyp-source 1423,67842
+(defconst action:start 1450,68961
+(defconst action:end 1453,69070
+(defib action 1462,69420
+(defun action:help 1560,73796
+(defib completion 1587,74888
 
 hinit.el,145
 (defvar   hyperb:user-email 22,623
@@ -550,7 +550,7 @@ hmouse-info.el,570
 (defun Info-note-at-p 352,12910
 (defun Info-read-index-item-name-1 366,13480
 
-hmouse-drv.el,4107
+hmouse-drv.el,4135
 (defvar hmouse-verify-release-window-flag 35,1102
 (defvar action-key-depressed-flag 46,1660
 (defvar assist-key-depressed-flag 47,1734
@@ -606,55 +606,56 @@ hmouse-drv.el,4107
 (defun hkey-drag-stay 467,18538
 (defun hkey-drag-item 482,19105
 (defun hkey-drag-to 515,20501
-(defun hkey-replace 547,21879
-(defun hkey-swap 557,22328
-(defun hkey-throw 586,23685
-(defun hkey-window-link 619,25162
-(defun hkey-insert-region 647,26330
-(defun hkey-buffer-to 682,27967
-(defun hkey-swap-buffers 693,28397
-(defun hmouse-click-to-drag 711,29179
-(defun hmouse-click-to-drag-stay 719,29464
-(defun hmouse-click-to-drag-item 727,29747
-(defun hmouse-click-to-drag-to 735,30035
-(defun hmouse-click-to-replace 743,30330
-(defun hmouse-click-to-swap 754,30732
-(defun hmouse-click-to-throw 762,30995
-(defun hmouse-choose-link-and-referent-windows 769,31287
-(defun hmouse-choose-windows 805,33106
-(defun hmouse-keyboard-choose-windows 832,34163
-(defun hkey-buffer-move-left 862,35360
-(defun hkey-buffer-move-right 868,35537
-(defun hkey-buffer-move-down 874,35716
-(defun hkey-buffer-move-up 880,35890
-(defun hkey-buffer-move 885,36048
-(defun mouse-drag-mode-line 927,37862
-(defun hkey-debug 957,39237
-(defun hkey-execute 985,40244
-(defun hkey-help 1017,41581
-(defun hkey-assist-help 1162,46815
-(defun hkey-help-hide 1174,47247
-(defalias 'quit-window quit-window1189,47783
-(defun hkey-help-show 1200,48216
-(defun hkey-mouse-help 1250,50490
-(defun hkey-operate 1289,51981
-(defun hkey-summarize 1333,53793
-(defun hkey-toggle-debug 1354,54554
-(defun hmouse-depress-inactive-minibuffer-p 1367,55108
-(defun hmouse-vertical-line-spacing 1379,55611
-(defun hmouse-window-at-absolute-pixel-position 1391,56119
-(defun hmouse-window-coordinates 1503,61403
-(defun hmouse-key-release-buffer 1545,63284
-(defun hmouse-key-release-window 1552,63582
-(defun hmouse-key-release-args-emacs 1557,63816
-(defun hmouse-use-region-p 1587,65242
-(defun hmouse-save-region 1592,65397
-(defun hmouse-set-point 1609,66196
-(defun hmouse-set-point-at 1619,66659
-(defun hmouse-release 1640,67587
-(defun hmouse-function 1662,68645
-(defun smart-scroll-down 1691,69977
-(defun smart-scroll-up 1716,70883
+(defun hkey-link 547,21879
+(defun hkey-replace 552,22055
+(defun hkey-swap 562,22504
+(defun hkey-throw 591,23861
+(defun hkey-window-link 624,25338
+(defun hkey-insert-region 652,26506
+(defun hkey-buffer-to 687,28143
+(defun hkey-swap-buffers 698,28573
+(defun hmouse-click-to-drag 716,29355
+(defun hmouse-click-to-drag-stay 724,29640
+(defun hmouse-click-to-drag-item 732,29923
+(defun hmouse-click-to-drag-to 740,30211
+(defun hmouse-click-to-replace 748,30506
+(defun hmouse-click-to-swap 759,30908
+(defun hmouse-click-to-throw 767,31171
+(defun hmouse-choose-link-and-referent-windows 774,31463
+(defun hmouse-choose-windows 810,33282
+(defun hmouse-keyboard-choose-windows 837,34340
+(defun hkey-buffer-move-left 867,35538
+(defun hkey-buffer-move-right 873,35715
+(defun hkey-buffer-move-down 879,35894
+(defun hkey-buffer-move-up 885,36068
+(defun hkey-buffer-move 890,36226
+(defun mouse-drag-mode-line 932,38040
+(defun hkey-debug 962,39415
+(defun hkey-execute 990,40422
+(defun hkey-help 1022,41759
+(defun hkey-assist-help 1167,46994
+(defun hkey-help-hide 1179,47426
+(defalias 'quit-window quit-window1194,47962
+(defun hkey-help-show 1205,48395
+(defun hkey-mouse-help 1255,50669
+(defun hkey-operate 1294,52160
+(defun hkey-summarize 1338,53972
+(defun hkey-toggle-debug 1359,54733
+(defun hmouse-depress-inactive-minibuffer-p 1372,55287
+(defun hmouse-vertical-line-spacing 1384,55790
+(defun hmouse-window-at-absolute-pixel-position 1396,56298
+(defun hmouse-window-coordinates 1508,61582
+(defun hmouse-key-release-buffer 1550,63463
+(defun hmouse-key-release-window 1557,63761
+(defun hmouse-key-release-args-emacs 1562,63995
+(defun hmouse-use-region-p 1592,65421
+(defun hmouse-save-region 1597,65576
+(defun hmouse-set-point 1614,66375
+(defun hmouse-set-point-at 1624,66838
+(defun hmouse-release 1645,67766
+(defun hmouse-function 1667,68824
+(defun smart-scroll-down 1696,70156
+(defun smart-scroll-up 1721,71062
 
 hmouse-key.el,393
 (defun hmouse-check-action-key 38,1285
@@ -718,57 +719,57 @@ hmouse-tag.el,3201
 (defun smart-c-at-tag-p 363,15674
 (defun smart-cc-mode-initialize 378,16260
 (defun smart-emacs-lisp-mode-p 383,16430
-(defun smart-fortran 396,17151
-(defconst smart-fortran-keywords417,18030
-(defun smart-fortran-at-tag-p 437,19206
-(defun smart-java 451,19728
-(defun smart-java-tag 476,20900
-(defun smart-java-oo-browser 487,21340
-(defconst smart-java-keywords507,22238
-(defun smart-java-at-tag-p 518,22805
-(defun smart-javascript 534,23429
-(defconst smart-javascript-keywords555,24322
-(defun smart-javascript-at-tag-p 564,24750
-(defconst smart-lisp-identifier-first-char-regexp 585,25631
-(defconst smart-lisp-identifier-chars 589,25775
-(defconst smart-lisp-identifier 595,26034
-(defun smart-lisp 599,26198
-(defun smart-lisp-find-tag 654,28420
-(defun smart-lisp-at-definition-p 703,30543
-(defun smart-lisp-at-load-expression-p 716,31146
-(defun smart-lisp-at-change-log-tag-p 722,31389
-(defun smart-lisp-htype-tag 733,31862
-(defun smart-lisp-at-tag-p 756,32704
-(defun smart-lisp-at-non-htype-tag-p 764,33046
-(defun smart-lisp-mode-p 795,34489
-(defun smart-objc 801,34666
-(defun smart-objc-tag 830,35961
-(defun smart-objc-oo-browser 854,36840
-(defconst smart-objc-keywords875,37733
-(defun smart-objc-at-tag-p 880,37923
-(defun smart-jedi-find-file 895,38595
-(defun smart-python-jedi-to-definition-p 902,38895
-(defun smart-python 927,40094
-(defun smart-python-tag 952,41132
-(defun smart-python-oo-browser 963,41576
-(defconst smart-python-keywords979,42277
-(defun smart-python-at-tag-p 987,42641
-(defun smart-ancestor-tag-files 1018,43828
-(defun smart-asm-include-file 1037,44514
-(defun smart-c-include-file 1081,46055
-(defun smart-flash-tag 1126,47524
-(defun smart-lisp-at-known-identifier-p 1137,47941
-(defun smart-lisp-bound-symbol-def 1165,49021
-(defun smart-tags-find-p 1175,49472
-(defun smart-java-cross-reference 1186,49905
-(defun smart-java-library-path 1274,53783
-(defun smart-java-packages 1291,54444
-(defun smart-library-symbol 1362,57155
-(defun smart-tags-display 1377,57714
-(defun smart-tags-file-path 1411,59255
-(defun smart-tags-org-src-block-p 1434,60106
-(defun smart-tags-file-list 1439,60294
-(defun smart-tags-noselect-function 1476,62018
+(defun smart-fortran 396,17158
+(defconst smart-fortran-keywords417,18037
+(defun smart-fortran-at-tag-p 437,19213
+(defun smart-java 451,19735
+(defun smart-java-tag 476,20907
+(defun smart-java-oo-browser 487,21347
+(defconst smart-java-keywords507,22245
+(defun smart-java-at-tag-p 518,22812
+(defun smart-javascript 534,23436
+(defconst smart-javascript-keywords555,24329
+(defun smart-javascript-at-tag-p 564,24757
+(defconst smart-lisp-identifier-first-char-regexp 585,25638
+(defconst smart-lisp-identifier-chars 589,25782
+(defconst smart-lisp-identifier 595,26041
+(defun smart-lisp 599,26205
+(defun smart-lisp-find-tag 654,28427
+(defun smart-lisp-at-definition-p 703,30550
+(defun smart-lisp-at-load-expression-p 716,31153
+(defun smart-lisp-at-change-log-tag-p 722,31396
+(defun smart-lisp-htype-tag 733,31869
+(defun smart-lisp-at-tag-p 756,32711
+(defun smart-lisp-at-non-htype-tag-p 764,33053
+(defun smart-lisp-mode-p 795,34496
+(defun smart-objc 801,34673
+(defun smart-objc-tag 830,35968
+(defun smart-objc-oo-browser 854,36847
+(defconst smart-objc-keywords875,37740
+(defun smart-objc-at-tag-p 880,37930
+(defun smart-jedi-find-file 895,38602
+(defun smart-python-jedi-to-definition-p 902,38902
+(defun smart-python 927,40101
+(defun smart-python-tag 952,41139
+(defun smart-python-oo-browser 963,41583
+(defconst smart-python-keywords979,42284
+(defun smart-python-at-tag-p 987,42648
+(defun smart-ancestor-tag-files 1018,43835
+(defun smart-asm-include-file 1037,44521
+(defun smart-c-include-file 1081,46062
+(defun smart-flash-tag 1126,47531
+(defun smart-lisp-at-known-identifier-p 1137,47948
+(defun smart-lisp-bound-symbol-def 1165,49030
+(defun smart-tags-find-p 1175,49481
+(defun smart-java-cross-reference 1186,49914
+(defun smart-java-library-path 1274,53792
+(defun smart-java-packages 1291,54453
+(defun smart-library-symbol 1362,57164
+(defun smart-tags-display 1377,57723
+(defun smart-tags-file-path 1411,59264
+(defun smart-tags-org-src-block-p 1434,60115
+(defun smart-tags-file-list 1439,60303
+(defun smart-tags-noselect-function 1476,62027
 
 hpath.el,5601
 (defcustom hpath:auto-completing-read-modes 42,1401
@@ -1220,8 +1221,8 @@ hui-menu.el,638
 (defun hyperbole-menubar-menu 283,10988
 (defun hyperbole-popup-menu 306,12009
 (defun infodock-hyperbole-menu 313,12277
-(defvar hui-menu-max-list-length 481,18853
-(defvar hui-menu-order-explicit-buttons 484,18968
+(defvar hui-menu-max-list-length 483,18934
+(defvar hui-menu-order-explicit-buttons 486,19049
 
 hui-mini.el,1484
 (defvar hui:menu-exit-hyperbole 30,929
@@ -1262,9 +1263,9 @@ hui-mini.el,1484
 (defun hui-search-web 595,23280
 (defvar hui:menu-mode-map 617,24139
 (defun hyperbole-minibuffer-menu 645,25578
-(defcustom hui:menu-rolo921,41108
-(defcustom hui:menu-to951,42939
-(defcustom hui:doc-a-z990,44442
+(defcustom hui:menu-rolo923,41279
+(defcustom hui:menu-to953,43110
+(defcustom hui:doc-a-z992,44613
 
 hui-mouse.el,3113
 (defvar hmouse-set-point-command 74,2760
@@ -1388,37 +1389,37 @@ hui-select.el,2783
 (defun hui-select-mark-delimited-sexp 746,30916
 (defun hui-select-at-blank-line-or-comment 774,31942
 (defun hui-select-back-to-indentation 796,32711
-(defun hui-select-bigger-thing 806,33140
-(defun hui-select-delimited-thing-call 812,33312
-(defun hui-select-region-bigger-p 834,34262
-(defun hui-select-reset 852,35107
-(defun hui-select-set-region 859,35311
-(defun hui-select-string-p 875,35966
-(defun hui-select-brace-def-or-declaration 922,37764
-(defun hui-select-indent-def 1023,41473
-(defun hui-select-symbol 1078,43592
-(defun hui-select-sexp-start 1094,44203
-(defun hui-select-sexp-end 1102,44501
-(defun hui-select-sexp 1109,44769
-(defun hui-select-sexp-up 1118,45059
-(defun hui-select-preprocessor-def 1130,45558
-(defun hui-select-punctuation 1155,46774
-(defun hui-select-comment 1173,47577
-(defun hui-select-word 1248,49873
-(defun hui-select-string 1260,50237
-(defun hui-select-sentence 1281,50967
-(defun hui-select-whitespace 1290,51258
-(defun hui-select-markup-pair 1306,51872
-(defun hui-select-line 1414,55910
-(defun hui-select-paragraph 1424,56253
-(defun hui-select-page 1434,56591
-(defun hui-select-buffer 1442,56845
+(defun hui-select-bigger-thing 806,33130
+(defun hui-select-delimited-thing-call 812,33302
+(defun hui-select-region-bigger-p 834,34252
+(defun hui-select-reset 852,35097
+(defun hui-select-set-region 859,35301
+(defun hui-select-string-p 875,35956
+(defun hui-select-brace-def-or-declaration 922,37754
+(defun hui-select-indent-def 1023,41463
+(defun hui-select-symbol 1078,43582
+(defun hui-select-sexp-start 1094,44193
+(defun hui-select-sexp-end 1102,44491
+(defun hui-select-sexp 1109,44759
+(defun hui-select-sexp-up 1118,45049
+(defun hui-select-preprocessor-def 1130,45548
+(defun hui-select-punctuation 1155,46764
+(defun hui-select-comment 1173,47567
+(defun hui-select-word 1248,49863
+(defun hui-select-string 1260,50227
+(defun hui-select-sentence 1281,50957
+(defun hui-select-whitespace 1290,51248
+(defun hui-select-markup-pair 1306,51862
+(defun hui-select-line 1414,55900
+(defun hui-select-paragraph 1424,56243
+(defun hui-select-page 1434,56581
+(defun hui-select-buffer 1442,56835
 
 hui-treemacs.el,72
 (defun smart-treemacs 62,2340
 (defun smart-treemacs-modeline 103,4032
 
-hui-window.el,3316
+hui-window.el,3359
 (defcustom action-key-minibuffer-function 39,1323
 (defcustom assist-key-minibuffer-function 45,1579
 (defcustom action-key-modeline-function 53,1952
@@ -1426,77 +1427,78 @@ hui-window.el,3316
 (defun hmouse-map-modes-to-form 63,2337
 (defvar hmouse-drag-item-mode-forms74,2756
 (defcustom hmouse-pulse-flag 100,3959
-(defvar hmouse-edge-sensitivity 109,4302
-(defvar hmouse-side-sensitivity 112,4421
-(defvar hmouse-x-drag-sensitivity 116,4587
-(defvar hmouse-y-drag-sensitivity 121,4822
-(defvar hmouse-x-diagonal-sensitivity 126,5045
-(defvar hmouse-y-diagonal-sensitivity 130,5283
-(defun hmouse-alist-add-window-handlers 146,5872
-(defun hmouse-at-item-p 239,10497
-(defun hmouse-context-menu 255,11093
-(defun hmouse-context-ibuffer-menu 274,11725
-(defun hmouse-prior-active-region 293,12365
-(defun hmouse-dired-readin-hook 305,12915
-(define-minor-mode hmouse-dired-display-here-mode310,13113
-(defun hmouse-drag-region-active 330,14149
-(defun hmouse-drag-thing 340,14549
-(defun hmouse-kill-region 394,17235
-(defun hmouse-kill-and-yank-region 407,17871
-(defun hmouse-yank-region 445,19804
-(defun hmouse-drag-between-frames 467,20870
-(defun hmouse-drag-between-windows 480,21470
-(defun hmouse-press-release-same-window 491,22002
-(defun hmouse-drag-outside-all-windows 502,22524
-(defun hmouse-drag-item-to-display 509,22895
-(defun hmouse-drag-same-window 532,23786
-(defun hmouse-drag-diagonally 537,24039
-(defun hmouse-drag-horizontally 569,25544
-(defun hmouse-drag-vertically-within-emacs 597,26974
-(defun hmouse-drag-vertically 626,28470
-(defun hmouse-drag-window-side 634,28832
-(defun hmouse-read-only-toggle-key 653,29777
-(defun hmouse-vertical-action-drag 657,29958
-(defun hmouse-vertical-assist-drag 667,30330
-(defun hmouse-horizontal-action-drag 675,30661
-(defun hmouse-horizontal-assist-drag 687,31095
-(defun smart-coords-in-window-p 695,31431
-(defun smart-point-of-coords 717,32144
-(defun smart-window-of-coords 725,32389
-(defun hmouse-split-window 748,33203
-(defun hmouse-buffer-to-window 756,33464
-(defun hmouse-drag-not-allowed 767,33984
-(defun hmouse-set-buffer-and-point 773,34336
-(defun hmouse-goto-region-prev-point 778,34463
-(defun hmouse-goto-depress-point 788,34913
-(defun hmouse-goto-release-point 794,35259
-(defun hmouse-inactive-minibuffer-p 800,35604
-(defun hmouse-insert-region 808,35970
-(defun hmouse-pulse-buffer 821,36476
-(defun hmouse-pulse-line 826,36673
-(defun hmouse-pulse-region 831,36850
-(defun hmouse-item-to-window 835,37023
-(defun action-key-modeline 906,40027
-(defun assist-key-modeline 941,41742
-(defun hmouse-drag-p 980,43602
-(defun hmouse-modeline-click 993,44129
-(defun hmouse-emacs-modeline-event-p 1002,44525
-(defun hmouse-modeline-event-p 1016,45357
-(defun hmouse-modeline-depress 1023,45615
-(defun hmouse-modeline-release 1031,45904
-(defun hmouse-emacs-at-modeline-buffer-id-p 1038,46131
-(defun hmouse-modeline-resize-window 1049,46713
-(defun hmouse-clone-window-to-frame 1065,47311
-(defun hmouse-move-window-to-frame 1070,47488
-(defun hmouse-release-left-edge 1103,48899
-(defun hmouse-release-right-edge 1121,49717
-(defun hmouse-resize-window-side 1134,50264
-(defun hmouse-swap-buffers 1170,51655
-(defun hmouse-swap-windows 1185,52280
-(defun hmouse-x-coord 1213,53372
-(defun hmouse-y-coord 1237,54159
-
-hui.el,2327
+(defvar hmouse-pulse-iterations 108,4236
+(defvar hmouse-edge-sensitivity 113,4430
+(defvar hmouse-side-sensitivity 116,4549
+(defvar hmouse-x-drag-sensitivity 120,4715
+(defvar hmouse-y-drag-sensitivity 125,4950
+(defvar hmouse-x-diagonal-sensitivity 130,5173
+(defvar hmouse-y-diagonal-sensitivity 134,5411
+(defun hmouse-alist-add-window-handlers 150,6000
+(defun hmouse-at-item-p 243,10625
+(defun hmouse-context-menu 259,11221
+(defun hmouse-context-ibuffer-menu 278,11853
+(defun hmouse-prior-active-region 297,12493
+(defun hmouse-dired-readin-hook 309,13043
+(define-minor-mode hmouse-dired-display-here-mode314,13241
+(defun hmouse-drag-region-active 334,14277
+(defun hmouse-drag-thing 344,14677
+(defun hmouse-kill-region 398,17363
+(defun hmouse-kill-and-yank-region 411,17999
+(defun hmouse-yank-region 449,19932
+(defun hmouse-drag-between-frames 471,20998
+(defun hmouse-drag-between-windows 484,21598
+(defun hmouse-press-release-same-window 495,22130
+(defun hmouse-drag-outside-all-windows 506,22652
+(defun hmouse-drag-item-to-display 513,23023
+(defun hmouse-drag-same-window 536,23914
+(defun hmouse-drag-diagonally 541,24167
+(defun hmouse-drag-horizontally 573,25672
+(defun hmouse-drag-vertically-within-emacs 601,27102
+(defun hmouse-drag-vertically 630,28598
+(defun hmouse-drag-window-side 638,28960
+(defun hmouse-read-only-toggle-key 657,29905
+(defun hmouse-vertical-action-drag 661,30086
+(defun hmouse-vertical-assist-drag 671,30458
+(defun hmouse-horizontal-action-drag 679,30789
+(defun hmouse-horizontal-assist-drag 691,31223
+(defun smart-coords-in-window-p 699,31559
+(defun smart-point-of-coords 721,32272
+(defun smart-window-of-coords 729,32517
+(defun hmouse-split-window 752,33331
+(defun hmouse-buffer-to-window 760,33592
+(defun hmouse-drag-not-allowed 771,34112
+(defun hmouse-set-buffer-and-point 777,34464
+(defun hmouse-goto-region-prev-point 782,34591
+(defun hmouse-goto-depress-point 792,35041
+(defun hmouse-goto-release-point 798,35387
+(defun hmouse-inactive-minibuffer-p 804,35732
+(defun hmouse-insert-region 812,36098
+(defun hmouse-pulse-buffer 825,36604
+(defun hmouse-pulse-line 832,36949
+(defun hmouse-pulse-region 839,37272
+(defun hmouse-item-to-window 845,37591
+(defun action-key-modeline 916,40595
+(defun assist-key-modeline 951,42310
+(defun hmouse-drag-p 990,44170
+(defun hmouse-modeline-click 1003,44697
+(defun hmouse-emacs-modeline-event-p 1012,45093
+(defun hmouse-modeline-event-p 1026,45925
+(defun hmouse-modeline-depress 1033,46183
+(defun hmouse-modeline-release 1041,46472
+(defun hmouse-emacs-at-modeline-buffer-id-p 1048,46699
+(defun hmouse-modeline-resize-window 1059,47281
+(defun hmouse-clone-window-to-frame 1075,47879
+(defun hmouse-move-window-to-frame 1080,48056
+(defun hmouse-release-left-edge 1113,49467
+(defun hmouse-release-right-edge 1131,50285
+(defun hmouse-resize-window-side 1144,50832
+(defun hmouse-swap-buffers 1180,52223
+(defun hmouse-swap-windows 1195,52848
+(defun hmouse-x-coord 1223,53940
+(defun hmouse-y-coord 1247,54727
+
+hui.el,2299
 (defcustom hui:hbut-delete-confirm-flag 39,1219
 (defcustom hui:ebut-prompt-for-action 44,1382
 (defun hui-copy-to-register 55,1804
@@ -1532,33 +1534,32 @@ hui.el,2327
 (defun hui:ibut-edit 914,36421
 (defun hui:ibut-label-create 984,39098
 (defun hui:ibut-rename 1022,40973
-(defun hui:link 1056,42128
-(defun hui:ebut-link-directly 1060,42288
-(defun hui:ibut-link-directly 1135,45180
-(defun hui:action 1223,48662
-(defun hui:actype 1276,50395
-(defun hui:buf-writable-err 1295,51388
-(defvar hui:ignore-buffers-regexp 1315,52251
-(defun hui:ebut-delete-op 1318,52421
-(defun hui:ebut-message 1349,53674
-(defun hui:ebut-unmark 1360,54078
-(defun hui:file-find 1420,56541
-(defun hui:hbut-operate 1427,56811
-(defun hui:hbut-term-highlight 1452,57924
-(defun hui:hbut-term-unhighlight 1466,58326
-(defun hui:help-ebut-highlight 1475,58612
-(defun hui:htype-delete 1481,58860
-(defun hui:htype-help 1492,59267
-(defun hui:htype-help-current-window 1543,61035
-(defun hui:ibut-delete-op 1550,61400
-(defun hui:ibut-message 1574,62503
-(defun hui:key-dir 1585,62907
-(defun hui:key-src 1594,63255
-(defun hui:ebut-link-create 1603,63626
-(defun hui:ibut-link-create 1626,64825
-(defun hui:link-possible-types 1649,66017
-(defun hui:list-remove-text-properties 1782,71385
-(defvar hui:ebut-label-prev 1792,71775
+(defun hui:ebut-link-directly 1056,42128
+(defun hui:ibut-link-directly 1139,45288
+(defun hui:action 1242,49371
+(defun hui:actype 1295,51104
+(defun hui:buf-writable-err 1314,52097
+(defvar hui:ignore-buffers-regexp 1334,52960
+(defun hui:ebut-delete-op 1337,53130
+(defun hui:ebut-message 1368,54383
+(defun hui:ebut-unmark 1379,54787
+(defun hui:file-find 1439,57250
+(defun hui:hbut-operate 1446,57520
+(defun hui:hbut-term-highlight 1471,58633
+(defun hui:hbut-term-unhighlight 1485,59035
+(defun hui:help-ebut-highlight 1494,59321
+(defun hui:htype-delete 1500,59569
+(defun hui:htype-help 1511,59976
+(defun hui:htype-help-current-window 1562,61744
+(defun hui:ibut-delete-op 1569,62109
+(defun hui:ibut-message 1593,63212
+(defun hui:key-dir 1604,63616
+(defun hui:key-src 1613,63964
+(defun hui:ebut-link-create 1622,64335
+(defun hui:ibut-link-create 1645,65534
+(defun hui:link-possible-types 1668,66726
+(defun hui:list-remove-text-properties 1801,72094
+(defvar hui:ebut-label-prev 1811,72484
 
 hvar.el,272
 (defvar var::append-list 34,1095
@@ -1913,37 +1914,37 @@ hypb-maintenance.el,150
 (defun hypb:web-repo-update 45,1016
 
 hui-em-but.el,1228
-(defcustom hproperty:but-highlight-flag 40,1129
-(defcustom hproperty:but-emphasize-flag 45,1300
-(defcustom hproperty:but-flash-time 51,1522
-(defcustom hproperty:but-flash-time-seconds 57,1816
-(defface hbut-flash62,1941
-(defcustom hproperty:flash-face 77,2451
-(defcustom hproperty:highlight-face 83,2628
-(defface hbut-face89,2789
-(defcustom hproperty:but-face 97,3088
-(defface hbut-item-face103,3256
-(defcustom hproperty:item-face 118,3786
-(defface ibut-face124,3962
-(defcustom hproperty:ibut-face 132,4277
-(defun hproperty:but-add 147,4790
-(defun hproperty:but-clear 158,5214
-(defun hproperty:but-clear-all 163,5408
-(defun hproperty:but-create 178,6064
-(defun hproperty:but-create-all 192,6595
-(defun hproperty:but-create-on-yank 210,7295
-(defun hproperty:but-get 221,7712
-(defsubst hproperty:list-cycle 231,7997
-(defconst hproperty:color-list240,8378
-(defvar hproperty:color-ptr 244,8459
-(defconst hproperty:good-colors247,8563
-(defun hproperty:cycle-but-color 262,9169
-(defun hproperty:but-p 274,9603
-(defun hproperty:set-but-face 282,9905
-(defun hproperty:but-flash 286,10032
-(defun hproperty:select-item 313,10908
-(defun hproperty:select-line 324,11317
-(defvar hproperty:item-button 336,11819
+(defcustom hproperty:but-highlight-flag 40,1128
+(defcustom hproperty:but-emphasize-flag 45,1299
+(defcustom hproperty:but-flash-time 51,1521
+(defcustom hproperty:but-flash-time-seconds 57,1815
+(defface hbut-flash62,1940
+(defcustom hproperty:flash-face 77,2450
+(defcustom hproperty:highlight-face 83,2627
+(defface hbut-face89,2788
+(defcustom hproperty:but-face 97,3087
+(defface hbut-item-face103,3255
+(defcustom hproperty:item-face 118,3785
+(defface ibut-face124,3961
+(defcustom hproperty:ibut-face 132,4276
+(defun hproperty:but-add 147,4789
+(defun hproperty:but-clear 158,5213
+(defun hproperty:but-clear-all 163,5407
+(defun hproperty:but-create 178,6063
+(defun hproperty:but-create-all 192,6594
+(defun hproperty:but-create-on-yank 210,7294
+(defun hproperty:but-get 221,7711
+(defsubst hproperty:list-cycle 231,7996
+(defconst hproperty:color-list240,8377
+(defvar hproperty:color-ptr 244,8458
+(defconst hproperty:good-colors247,8562
+(defun hproperty:cycle-but-color 262,9168
+(defun hproperty:but-p 274,9602
+(defun hproperty:set-but-face 282,9904
+(defun hproperty:but-flash 286,10031
+(defun hproperty:select-item 312,10902
+(defun hproperty:select-line 323,11311
+(defvar hproperty:item-button 334,11777
 
 hui-register.el,214
 (cl-defstruct hui-register-but31,784
@@ -2231,77 +2232,77 @@ kotl/kotl-mode.el,9397
 (defun kotl-mode:eobp 2068,79049
 (defun kotl-mode:eocp 2073,79207
 (defun kotl-mode:eolp 2084,79520
-(defun kotl-mode:first-cell-p 2095,79935
-(defalias 'kotl-mode:first-line-p kotl-mode:first-line-p2099,80077
-(defun kotl-mode:last-cell-p 2101,80127
-(defun kotl-mode:last-line-p 2105,80263
-(defun kotl-mode:action-key 2116,80610
-(defun kotl-mode:assist-key 2158,82506
-(defun kotl-mode:add-child 2199,84391
-(defun kotl-mode:add-parent 2204,84539
-(defun kotl-mode:add-cell 2209,84691
-(defun kotl-mode:demote-tree 2292,87907
-(defun kotl-mode:exchange-cells 2354,90087
-(defun kotl-mode:kill-contents 2432,92932
-(defun kotl-mode:kill-tree 2440,93180
-(defun kotl-mode:move-tree-backward 2468,94192
-(defun kotl-mode:move-tree-forward 2477,94556
-(defun kotl-mode:promote-tree 2501,95514
-(defun kotl-mode:remove-cell-attribute 2545,97018
-(defun kotl-mode:set-cell-attribute 2590,98692
-(defun kotl-mode:set-or-remove-cell-attribute 2648,100959
-(defun kotl-mode:split-cell 2670,101972
-(defun kotl-mode:transpose-cells 2701,103171
-(defun kotl-mode:copy-region-to-buffer 2755,105267
-(defun kotl-mode:copy-tree-to-buffer 2778,106258
-(defun kotl-mode:copy-tree-or-region-to-buffer 2808,107596
-(defun kotl-mode:mail-tree 2821,108099
-(defun kotl-mode:collapse-tree 2848,109041
-(defun kotl-mode:expand-tree 2860,109524
-(defun kotl-mode:toggle-tree-expansion 2874,110071
-(defun kotl-mode:overview 2887,110519
-(defun kotl-mode:show-all 2897,110805
-(defun kotl-mode:top-cells 2911,111295
-(defun kotl-mode:hide-sublevels 2926,111783
-(defun kotl-mode:hide-subtree 2937,112293
-(defun kotl-mode:show-subtree 2954,112925
-(defun kotl-mode:hide-tree 2960,113130
-(defun kotl-mode:show-tree 2980,113857
-(defun kotl-mode:cell-attributes 2985,114010
-(defun kotl-mode:cell-help 3000,114587
-(defun kotl-mode:get-cell-attribute 3054,116631
-(defun kotl-mode:org-delete-backward-char 3081,117733
-(defun kotl-mode:org-delete-char 3091,118234
-(defun kotl-mode:org-force-self-insert 3101,118713
-(defun kotl-mode:org-self-insert-command 3107,118893
-(defun kotl-mode:orgtbl-ctrl-c-ctrl-c 3115,119241
-(defun kotl-mode:orgtbl-create-or-convert-from-region 3123,119519
-(defun kotl-mode:orgtbl-self-insert-command 3131,119872
-(defun kotl-mode:self-insert-command 3140,120225
-(defun kotl-mode:add-indent-to-region 3158,121146
-(defun kotl-mode:delete-line 3170,121652
-(defun kotl-mode:exchange-point-and-mark 3184,122140
-(defun kotl-mode:indent-line 3190,122418
-(defun kotl-mode:indent-region 3204,122908
-(defun kotl-mode:is-p 3209,123036
-(defun kotl-mode:shrink-region 3216,123276
-(defun kotl-mode:valid-region-p 3235,124152
-(defun kotl-mode:maybe-shrink-region-p 3245,124546
-(defun kotl-mode:tree-end 3270,125532
-(defun kotl-mode:tree-start 3289,126279
-(defun kotl-mode:line-move 3294,126468
-(defun kotl-mode:pre-self-insert-command 3313,127141
-(defun kotl-mode:print-attributes 3328,127757
-(defun kotl-mode:isearch-open-invisible 3347,128506
-(defun kotl-mode:reveal-toggle-invisible 3350,128650
-(defun kotl-mode:set-temp-goal-column 3391,130355
-(defun kotl-mode:to-visible-position 3402,130757
-(defun kotl-mode:to-valid-position 3415,131338
-(defun kotl-mode:transpose-lines-internal 3432,132040
-(defun kotl-mode:update-buffer 3455,132815
-(defun kotl-mode:maintain-region-highlight 3466,133138
-(defun kotl-mode:setup-keymap 3471,133295
-(defun delete-selection-pre-hook 3684,142641
+(defun kotl-mode:first-cell-p 2095,79918
+(defalias 'kotl-mode:first-line-p kotl-mode:first-line-p2099,80060
+(defun kotl-mode:last-cell-p 2101,80110
+(defun kotl-mode:last-line-p 2105,80246
+(defun kotl-mode:action-key 2116,80593
+(defun kotl-mode:assist-key 2158,82489
+(defun kotl-mode:add-child 2199,84374
+(defun kotl-mode:add-parent 2204,84522
+(defun kotl-mode:add-cell 2209,84674
+(defun kotl-mode:demote-tree 2292,87890
+(defun kotl-mode:exchange-cells 2354,90070
+(defun kotl-mode:kill-contents 2432,92915
+(defun kotl-mode:kill-tree 2440,93163
+(defun kotl-mode:move-tree-backward 2468,94175
+(defun kotl-mode:move-tree-forward 2477,94539
+(defun kotl-mode:promote-tree 2501,95497
+(defun kotl-mode:remove-cell-attribute 2545,97001
+(defun kotl-mode:set-cell-attribute 2590,98675
+(defun kotl-mode:set-or-remove-cell-attribute 2648,100942
+(defun kotl-mode:split-cell 2670,101955
+(defun kotl-mode:transpose-cells 2701,103154
+(defun kotl-mode:copy-region-to-buffer 2755,105250
+(defun kotl-mode:copy-tree-to-buffer 2778,106241
+(defun kotl-mode:copy-tree-or-region-to-buffer 2808,107579
+(defun kotl-mode:mail-tree 2821,108082
+(defun kotl-mode:collapse-tree 2848,109024
+(defun kotl-mode:expand-tree 2860,109507
+(defun kotl-mode:toggle-tree-expansion 2874,110054
+(defun kotl-mode:overview 2887,110502
+(defun kotl-mode:show-all 2897,110788
+(defun kotl-mode:top-cells 2911,111278
+(defun kotl-mode:hide-sublevels 2926,111766
+(defun kotl-mode:hide-subtree 2937,112276
+(defun kotl-mode:show-subtree 2954,112908
+(defun kotl-mode:hide-tree 2960,113113
+(defun kotl-mode:show-tree 2980,113840
+(defun kotl-mode:cell-attributes 2985,113993
+(defun kotl-mode:cell-help 3000,114570
+(defun kotl-mode:get-cell-attribute 3054,116614
+(defun kotl-mode:org-delete-backward-char 3081,117716
+(defun kotl-mode:org-delete-char 3091,118217
+(defun kotl-mode:org-force-self-insert 3101,118696
+(defun kotl-mode:org-self-insert-command 3107,118876
+(defun kotl-mode:orgtbl-ctrl-c-ctrl-c 3115,119224
+(defun kotl-mode:orgtbl-create-or-convert-from-region 3123,119502
+(defun kotl-mode:orgtbl-self-insert-command 3131,119855
+(defun kotl-mode:self-insert-command 3140,120208
+(defun kotl-mode:add-indent-to-region 3158,121129
+(defun kotl-mode:delete-line 3170,121635
+(defun kotl-mode:exchange-point-and-mark 3184,122123
+(defun kotl-mode:indent-line 3190,122401
+(defun kotl-mode:indent-region 3204,122891
+(defun kotl-mode:is-p 3209,123019
+(defun kotl-mode:shrink-region 3216,123259
+(defun kotl-mode:valid-region-p 3235,124135
+(defun kotl-mode:maybe-shrink-region-p 3245,124529
+(defun kotl-mode:tree-end 3270,125515
+(defun kotl-mode:tree-start 3289,126262
+(defun kotl-mode:line-move 3294,126451
+(defun kotl-mode:pre-self-insert-command 3313,127124
+(defun kotl-mode:print-attributes 3328,127740
+(defun kotl-mode:isearch-open-invisible 3347,128489
+(defun kotl-mode:reveal-toggle-invisible 3350,128633
+(defun kotl-mode:set-temp-goal-column 3391,130338
+(defun kotl-mode:to-visible-position 3402,130740
+(defun kotl-mode:to-valid-position 3415,131307
+(defun kotl-mode:transpose-lines-internal 3432,132009
+(defun kotl-mode:update-buffer 3455,132784
+(defun kotl-mode:maintain-region-highlight 3466,133107
+(defun kotl-mode:setup-keymap 3471,133264
+(defun delete-selection-pre-hook 3684,142610
 
 kotl/kotl-orgtbl.el,275
 (defvar kotl-mode-overriding-orgtbl-mode-map 60,2554
@@ -2347,7 +2348,7 @@ kotl/kproperty.el,602
 (defun kproperty:replace-separator 105,4120
 (defun kproperty:set 118,4711
 
-kotl/kview.el,3725
+kotl/kview.el,3685
 (define-obsolete-variable-alias 'label-sep-len label-sep-len25,736
 (defvar kview-label-sep-len 26,813
 (defcustom kview:default-blank-lines 35,1126
@@ -2402,47 +2403,46 @@ kotl/kview.el,3725
 (defun kview:beginning-of-actual-line 628,25057
 (defun kview:buffer 633,25240
 (defun kview:char-invisible-p 639,25414
-(defun kview:char-visible-p 645,25613
-(defun kview:create 649,25779
-(defun kview:delete-region 706,28055
-(defun kview:end-of-actual-line 710,28189
-(defun kview:fill-region 715,28360
-(defun kview:first-invisible-point 740,29303
-(defun kview:first-visible-point 756,30029
-(defun kview:get-cells-status 769,30585
-(defun kview:goto-cell-id 790,31491
-(defun kview:id-counter 802,31910
-(defun kview:id-increment 806,32075
-(defun kview:idstamp-to-label 812,32295
-(defun kview:insert-contents 818,32507
-(defun kview:is-p 865,34141
-(defun kview:kotl 870,34246
-(defun kview:label 875,34401
-(defun kview:label-function 880,34623
-(defun kview:label-min-width 887,34990
-(defun kview:label-separator 893,35232
-(defun kview:label-separator-length 899,35474
-(defun kview:label-type 904,35699
-(defun kview:level-indent 910,35921
-(defun kview:map-branch 916,36155
-(defun kview:map-cells 948,37581
-(defun kview:map-region 961,38037
-(defun kview:map-siblings 1001,39587
-(defun kview:map-expanded-tree 1030,40773
-(defun kview:map-tree 1088,43188
-(defun kview:move 1126,44880
-(defun kview:previous-visible-point 1198,47314
-(defun kview:set-buffer 1214,48015
-(defun kview:set-cells-status 1223,48310
-(defun kview:set-label-type 1251,49611
-(defun kview:top-cell 1283,50756
-(defun kview:valid-position-p 1288,50929
-(defun kview:get-attr 1313,51948
-(defun kcell-view:next-kcell 1317,52080
-(defun kcell-view:previous-kcell 1330,52690
-(defun kview:set-attr 1349,53617
-(defun kview:set-functions 1360,53939
-(defun kview:set-label-separator 1367,54345
+(defun kview:create 644,25598
+(defun kview:delete-region 701,27874
+(defun kview:end-of-actual-line 705,28008
+(defun kview:fill-region 710,28179
+(defun kview:first-invisible-point 735,29122
+(defun kview:first-visible-point 751,29845
+(defun kview:get-cells-status 764,30390
+(defun kview:goto-cell-id 785,31296
+(defun kview:id-counter 797,31715
+(defun kview:id-increment 801,31880
+(defun kview:idstamp-to-label 807,32100
+(defun kview:insert-contents 813,32312
+(defun kview:is-p 860,33946
+(defun kview:kotl 865,34051
+(defun kview:label 870,34206
+(defun kview:label-function 875,34428
+(defun kview:label-min-width 882,34795
+(defun kview:label-separator 888,35037
+(defun kview:label-separator-length 894,35279
+(defun kview:label-type 899,35504
+(defun kview:level-indent 905,35726
+(defun kview:map-branch 911,35960
+(defun kview:map-cells 943,37386
+(defun kview:map-region 956,37842
+(defun kview:map-siblings 996,39392
+(defun kview:map-expanded-tree 1025,40578
+(defun kview:map-tree 1083,42993
+(defun kview:move 1121,44685
+(defun kview:previous-visible-point 1193,47119
+(defun kview:set-buffer 1209,47809
+(defun kview:set-cells-status 1218,48104
+(defun kview:set-label-type 1246,49405
+(defun kview:top-cell 1278,50550
+(defun kview:valid-position-p 1283,50723
+(defun kview:get-attr 1308,51742
+(defun kcell-view:next-kcell 1312,51874
+(defun kcell-view:previous-kcell 1325,52484
+(defun kview:set-attr 1344,53411
+(defun kview:set-functions 1355,53733
+(defun kview:set-label-separator 1362,54139
 
 kotl/kvspec.el,700
 (defvar kvspec:current 65,2524
@@ -2840,7 +2840,7 @@ test/smart-org-tests.el,851
 (ert-deftest smart-org-mode-with-no-smart-keys-on-org-link-is-org-meta-return 
139,4402
 
 test/hy-test-dependencies.el,48
-(defun hy-test-ensure-package-installed 24,606
+(defun hy-test-ensure-package-installed 27,691
 
 test/hy-test-helpers.el,377
 (defun hy-test-helpers:consume-input-events 25,572
diff --git a/hact.el b/hact.el
index 39e468c62d..3d215beaf0 100644
--- a/hact.el
+++ b/hact.el
@@ -1,4 +1,4 @@
-;;; hact.el --- GNU Hyperbole button action handling  -*- lexical-binding: t; 
-let*-
+;;; hact.el --- GNU Hyperbole button action handling  -*- lexical-binding: t; 
-*-
 ;;
 ;; Author:       Bob Weiner
 ;;
@@ -467,6 +467,7 @@ The type uses PARAMS to perform DEFAULT-ACTION (list of the 
rest of the
 arguments).  A call to this function is syntactically the same as for
 `defun',  but a doc string is required.
 Return symbol created when successful, else nil."
+  (declare (doc-string 3))
   `(progn
      (symtable:add ',type symtable:actypes)
      (htype:create ,type actypes ,doc ,params ,default-action nil)))
diff --git a/hactypes.el b/hactypes.el
index 1101ba186f..e5d6465a20 100644
--- a/hactypes.el
+++ b/hactypes.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    23-Sep-91 at 20:34:36
-;; Last-Mod:     10-Jun-23 at 21:13:02 by Bob Weiner
+;; Last-Mod:     25-Jun-23 at 09:38:34 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -35,11 +35,11 @@
 (defact annot-bib (key)
   "Follow internal ref KEY within an annotated bibliography, delimiters=[]."
   (interactive "sReference key (no []): ")
-  (let ((key-regexp (concat "^[*]*[ \t]*\\[" (ebut:key-to-label key) "\\]"))
-       citation)
-    (if (save-excursion
-         (goto-char (point-max))
-         (setq citation (re-search-backward key-regexp nil t)))
+  (let* ((key-regexp (concat "^[*]*[ \t]*\\[" (ebut:key-to-label key) "\\]"))
+        (citation (save-excursion
+                    (goto-char (point-max))
+                    (re-search-backward key-regexp nil t))))
+    (if citation
        (progn (hpath:display-buffer (current-buffer))
               (goto-char citation)
               (beginning-of-line))
@@ -616,14 +616,14 @@ Return t if found, signal an error if not."
   (interactive "sRegexp to match: \nnOccurrence number: \nfFile to search: ")
   (let ((orig-src source))
     (if buffer-p
-       (if (stringp source)
-           (setq source (get-buffer source)))
+       (when (stringp source)
+         (setq source (get-buffer source)))
       ;; Source is a pathname.
       (if (not (stringp source))
          (hypb:error
           "(link-to-regexp-match): Source parameter is not a filename: `%s'"
           orig-src)
-       (setq source (find-file-noselect (hpath:substitute-value source)))))
+       (setq source (hpath:find-noselect source))))
     (if (not (bufferp source))
        (hypb:error
         "(link-to-regexp-match): Invalid source parameter: `%s'" orig-src)
@@ -689,6 +689,7 @@ package to display search results."
 Uses `hpath:display-where' setting to control where the man page is displayed."
   (interactive "sManual topic: ")
   (require 'man)
+  (defvar Man-notify-method)
   (let ((Man-notify-method 'meek))
     (hpath:display-buffer (man topic))))
 
@@ -716,7 +717,7 @@ Optional SECTIONS-START limits toc entries to those after 
that point."
       (insert "Sections of " rfc-buf-name ":\n")
       (set-buffer-modified-p nil))
     (when opoint
-      (select-buffer buf-name)
+      (switch-to-buffer buf-name)
       (goto-char opoint))))
 
 (defact text-toc (section)
diff --git a/hargs.el b/hargs.el
index f0178a1225..4cee338726 100644
--- a/hargs.el
+++ b/hargs.el
@@ -276,8 +276,7 @@ Optional DEFAULT-PROMPT is used to describe default value."
 
 (defun hargs:set-string-to-complete ()
   "Store the current minibuffer contents into `hargs:string-to-complete'."
-  (save-window-excursion
-    (set-buffer (window-buffer (minibuffer-window)))
+  (with-current-buffer (window-buffer (minibuffer-window))
     (setq hargs:string-to-complete (minibuffer-contents-no-properties))
     (when (equal hargs:string-to-complete "")
       (setq hargs:string-to-complete nil))))
diff --git a/hbut.el b/hbut.el
index 631c7f371e..baa19c52bc 100644
--- a/hbut.el
+++ b/hbut.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    18-Sep-91 at 02:57:09
-;; Last-Mod:     19-Jun-23 at 00:17:03 by Bob Weiner
+;; Last-Mod:     24-Jun-23 at 13:09:26 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -22,6 +22,7 @@
 (eval-and-compile (mapc #'require '(cl-lib elisp-mode help-mode hversion
                                    hmoccur hbmap htz hbdata hact
                                    hui-select view)))
+(require 'hmouse-drv) ;For `hui--ignore-action-key-depress-prev-point'.
 
 ;;; ************************************************************************
 ;;; Public declarations
@@ -218,6 +219,8 @@ Return nil if no matching button is found."
 (defalias 'ebut:key-src-fmt        #'hbut:key-src-fmt)
 (defalias 'ebut:key-to-label       #'hbut:key-to-label)
 
+(defvar hbut:max-len)
+
 (defun    ebut:label-p (&optional as-label start-delim end-delim pos-flag 
two-lines-flag)
   "Return key for the explicit button label that point is within, else nil.
 This is the normalized key form of the explicit button's label.
@@ -536,10 +539,10 @@ labels only; optional MATCH-PART enables partial matches."
                                                             (point)))
                                       (tag (format "\n%4d:" linenum))
                                       lns start end)
-                                 (setq end (progn (end-of-line) (point))
+                                 (setq end (line-end-position)
                                        start (progn
                                                (goto-char (match-beginning 0))
-                                               (beginning-of-line) (point))
+                                               (line-beginning-position))
                                        lns (buffer-substring start end))
                                  (goto-char end)
                                  (with-current-buffer out-buf
@@ -696,7 +699,7 @@ Return nil if no matching button is found."
 (defun    gbut:help (label)
   "Display help for Hyperbole global button with LABEL."
   (interactive (list (hargs:read-match "Report on global button labeled: "
-                                      (mapcar 'list (gbut:label-list))
+                                      (mapcar #'list (gbut:label-list))
                                       nil t nil 'hbut)))
   (let* ((lbl-key (hbut:label-to-key label))
         (but (hbut:get lbl-key nil (gbut:file))))
@@ -1525,7 +1528,7 @@ If a file, always return a full path if optional 
FULL-FLAG is non-nil."
               (expand-file-name file default-directory)
             file)))))
 
-(defalias 'hbut:summarize 'hbut:report)
+(defalias 'hbut:summarize #'hbut:report)
 
 (defun    hbut:to (lbl-key)
   "Find the nearest explicit button or labeled/named implicit button.
@@ -1624,12 +1627,10 @@ associated arguments from the button."
       (unless (string-match "::" type-name)
        (setq ibut-type-symbol (intern-soft (concat "ibtypes::" type-name))))
       (when ibut-type-symbol
-       (let ((types (htype:category 'ibtypes))
-             ;; 'types' is a global var used in (hact) function, don't delete.
-             (hrule:action 'actype:identity))
+       (let ((hrule:action #'actype:identity))
          (funcall ibut-type-symbol))))))
 
-(defun  ibut:set-name-and-label-key-p (&optional start-delim end-delim)
+(defun    ibut:set-name-and-label-key-p (&optional start-delim end-delim)
   "Set ibut name, lbl-key, lbl-start/end attributes in 'hbut:current.
 Point may be on the implicit button text or its optional preceding
 name.  Return t if on a named or delimited text implicit button;
@@ -1898,6 +1899,9 @@ Store new button attributes in the symbol, 'hbut:current."
    [&optional ["&optional" arg &rest arg]]
    &optional ["&rest" arg])))
 
+(defvar ibut:label-start)
+(defvar ibut:label-end)
+
 (defun    ibut:delete (&optional but-sym)
   "Delete Hyperbole implicit button based on optional BUT-SYM.
 Default is the symbol hbut:current'.
@@ -2133,10 +2137,10 @@ positions at which the button label delimiter begins 
and ends."
     (error "(ibut:key): Argument is not a Hyperbole implicit button symbol, 
`%s'"
           ibut)))
 
-(defalias 'ibut:to-key-src   'hbut:to-key-src)
-(defalias 'ibut:key-to-label 'hbut:key-to-label)
-(defalias 'ibut:label-to-key 'hbut:label-to-key)
-(defalias 'map-ibut          'ibut:map)
+(defalias 'ibut:to-key-src   #'hbut:to-key-src)
+(defalias 'ibut:key-to-label #'hbut:key-to-label)
+(defalias 'ibut:label-to-key #'hbut:label-to-key)
+(defalias 'map-ibut          #'ibut:map)
 
 (defun    ibut:map (but-func &optional regexp-match include-delims)
   "Apply BUT-FUNC to the visible, named implicit buttons.
@@ -2165,13 +2169,14 @@ move to the first occurrence of the button."
            (re-search-forward (ibut:label-regexp lbl-key t) nil t))
     (goto-char (+ (match-beginning 0) (length ibut:label-start)))))
 
-(defun    ibut:operate (&optional new-name)
+(defun    ibut:operate (&optional new-name edit-flag)
   "Insert/modify an ibutton based on `hbut:current' in current buffer.
-If optional NEW-NAME is non-nil, modify an existing ibutton with 'name'
-attribute in `hbut:current'.
+Optional non-nil NEW-NAME is name to give button.  With optional
+EDIT-FLAG non-nil, modify an existing in-buffer ibutton rather
+than creating a new one.
 
-If NAME is nil, use the active region text as the button name, if any;
-if no such region, then create an unnamed implicit button.
+If NEW-NAME is nil, use the active region text as the button name, if any;
+if no such region, then create/modify an unnamed implicit button.
 
 Return instance string appended to name to form a per-buffer unique
 name; nil if name is already unique or no name.  Signal an error when no
@@ -2194,7 +2199,6 @@ Summary of operations based on inputs:
   (let* ((actype (hattr:get 'hbut:current 'actype))
         (name (hattr:get 'hbut:current 'name))
         (name-regexp (ibut:label-regexp (ibut:label-to-key name)))
-        (modify new-name)
         (region-flag (hmouse-use-region-p))
         (instance-flag))
     (unless actype
@@ -2210,7 +2214,7 @@ Summary of operations based on inputs:
       (hattr:set 'hbut:current 'name new-name))
     (save-excursion
       (if (progn
-           (if modify
+           (if edit-flag
                (progn
                  (setq instance-flag
                        (hbdata:ibut-instance-last (ibut:label-to-key 
new-name)))
@@ -2224,10 +2228,10 @@ Summary of operations based on inputs:
          (when (hmail:editor-p)
            (hmail:msg-narrow))
        (hypb:error "(ibut:operate): Failed to %s button %s%s%s in buffer %s"
-                   (if modify "modify" "create")
+                   (if edit-flag "modify" "create")
                    ibut:label-start name ibut:label-end
                    (buffer-name))))
-    (cond (modify
+    (cond (edit-flag
           (if name
               ;; Rename all occurrences of button - those with same name
               (let* ((but-key-and-pos (ibut:label-p nil nil nil 'pos))
@@ -2301,8 +2305,9 @@ Summary of operations based on inputs:
             (when (and start end)
               (ibut:delimit start end instance-flag))
             (ibut:insert-text 'hbut:current)
-            (when start
-              (goto-char start))))
+            (if start
+                (goto-char start)
+              (goto-char (max (- (point) 2) (point-min))))))
 
          (t (hypb:error
              "(ibut:operate): Operation failed.  Check button attribute 
permissions: %s"
@@ -2352,7 +2357,8 @@ Summary of operations based on inputs:
         (args   (hattr:get ibut 'args))
         (arg1   (nth 0 args))
         (arg2   (nth 1 args))
-        (arg3   (nth 2 args)))
+        (arg3   (nth 2 args))
+        (arg4   (nth 3 args)))
     (pcase actype
       ('actypes::kbd-key
        (cond ((and (stringp arg1) (string-match "\\s-*{.+}\\s-*" arg1))
@@ -2411,9 +2417,12 @@ Summary of operations based on inputs:
                                               (hpath:substitute-var arg1)
                                               (line-number-at-pos (point) t)
                                               (current-column))))))))
+      ('actypes::link-to-string-match
+       (insert (format "<%s \"%s\" %d \"%s\">" (actype:def-symbol actype) arg1 
arg2
+                      (hpath:substitute-var arg3))))
       ('nil (error "(ibut:insert-text): actype must be a Hyperbole actype or 
Lisp function symbol, not '%s'" orig-actype))
       ;; Generic action button type                                            
      
-      (_ (insert (format "<%s%s%s>" actype (if args " " "")
+      (_ (insert (format "<%s%s%s>" (actype:def-symbol actype) (if args " " "")
                         (if args (hypb:format-args args) "")))))))
 
 (defun    ibut:previous-occurrence (lbl-key &optional buffer)
@@ -2479,7 +2488,7 @@ current."
            t))
        (t (error "(ibut:rename): Button '%s' not found in visible portion of 
buffer." old-lbl))))
 
-(defalias 'ibut:summarize 'hbut:report)
+(defalias 'ibut:summarize #'hbut:report)
 
 (defun    ibut:to (name-key)
   "Find the nearest implicit button with NAME-KEY (a name or name key).
diff --git a/hibtypes.el b/hibtypes.el
index dbbe4a437f..7f581d1ddf 100644
--- a/hibtypes.el
+++ b/hibtypes.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    19-Sep-91 at 20:45:31
-;; Last-Mod:     18-Jun-23 at 23:15:20 by Bob Weiner
+;; Last-Mod:     21-Jun-23 at 23:33:28 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -253,7 +253,7 @@ display options."
        ;; Emacs Lisp and Info files without any directory component.
         (when (setq path orig-path)
           (cond ((and (string-match hpath:path-variable-regexp path)
-                     (setq path (match-string 1 path))
+                     (setq path (match-string-no-properties 1 path))
                      (hpath:is-path-variable-p path))
                 (setq path (if (or assist-flag (hyperb:stack-frame 
'(hkey-help)))
                                path
@@ -262,7 +262,7 @@ display options."
                             ;; Could be a shell command from a semicolon
                             ;; separated list; ignore if so.
                             (and (string-match "\\`\\s-*\\([^;         ]+\\)" 
path)
-                                 (executable-find (match-string 1 path))))
+                                 (executable-find (match-string-no-properties 
1 path))))
                    (apply #'ibut:label-set path (hpath:start-end path))
                   (hact 'link-to-file path)))
                ((setq elisp-suffix (string-match 
"\\`[^\\\\/~]+\\.el[cn]?\\(\\.gz\\)?\\'" path))
@@ -285,7 +285,7 @@ display options."
                 ((and (not (looking-at "[\"()]"))
                       (string-match "\\`(\\([^ \t\n\r\f]+\\))\\'" path)
                       (save-match-data (require 'info))
-                      (Info-find-file (match-string 1 path) t))
+                      (Info-find-file (match-string-no-properties 1 path) t))
                  (apply #'ibut:label-set orig-path (hpath:start-end orig-path))
                  (hact 'link-to-Info-node (format "%sTop" path)))
                 ((string-match hpath:info-suffix path)
@@ -347,7 +347,7 @@ in all buffers."
            (and buffer-file-name
                 (boundp 'hyrolo-file-list)
                 (set:member (current-buffer)
-                            (mapcar 'get-file-buffer hyrolo-file-list)))))
+                            (mapcar #'get-file-buffer hyrolo-file-list)))))
     (let ((address (mail-address-at-p)))
       (when address
         (ibut:label-set address (match-beginning 1) (match-end 1))
@@ -364,16 +364,19 @@ in all buffers."
   "Follow an Org link in a non-Org mode buffer.
 This should be a very low priority so other Hyperbole types
 handle any links they recognize first."
-  (with-no-warnings
-    (when (and (eq hsys-org-enable-smart-keys t)
-              (not (funcall hsys-org-mode-function))
-              ;; Prevent infinite recursion if ever called via 
org-metareturn-hook
-              ;; from org-meta-return invocation.
-              (not (hyperb:stack-frame '(ibtypes::debugger-source 
org-meta-return))))
-      (let ((start-end (hsys-org-link-at-p)))
-       (when start-end
-          (hsys-org-set-ibut-label start-end)
-          (hact 'org-open-at-point-global))))))
+  (when (and (eq hsys-org-enable-smart-keys t)
+            (not (funcall hsys-org-mode-function))
+            ;; Prevent infinite recursion, e.g. if called via
+            ;; `org-metareturn-hook' from `org-meta-return' invocation.
+            (not hibtypes--within-org-link-outside-org-mode))
+    (require 'hsys-org)
+    (declare-function hsys-org-link-at-p      "hsys-org" ())
+    (declare-function hsys-org-set-ibut-label "hsys-org" (start-end))
+    (let* ((hibtypes--within-org-link-outside-org-mode t)
+           (start-end (hsys-org-link-at-p)))
+      (when start-end
+        (hsys-org-set-ibut-label start-end)
+        (hact #'org-open-at-point-global)))))
 
 ;;; ========================================================================
 ;;; Handles internal references within an annotated bibliography, delimiters=[]
@@ -1000,7 +1003,7 @@ in grep and shell buffers."
              ;; Grep matches, UNIX C compiler and Introl 68HC11 C
              ;; compiler errors, allowing for file names with
              ;; spaces followed by a null character rather than a :
-             (looking-at "\\([^\t\n\r\"'`]+\\) ?\\([1-9][0-9]*\\)[ :]")
+             (looking-at "\\([^\t\n\r\"'`]+\\)\0 ?\\([1-9][0-9]*\\)[ :]")
              ;; HP C compiler errors
              (looking-at "[a-zA-Z0-9]+: \"\\([^\t\n\r\",]+\\)\", line 
\\([0-9]+\\):")
              ;; BSO/Tasking 68HC08 C compiler errors
@@ -1292,7 +1295,7 @@ documentation string is displayed."
                (looking-at "*\\s-+\\([^:\t\n\r]+\\)::"))
              (hact 'link-to-texinfo-node
                    nil
-                   (ibut:label-set (match-string 1) (match-beginning 1) 
(match-end 1))))
+                   (ibut:label-set (match-string-no-properties 1) 
(match-beginning 1) (match-end 1))))
             ;; Show doc for any Emacs Lisp identifier references,
             ;; marked with @code{} or @var{}.
             ((save-excursion
@@ -1300,8 +1303,8 @@ documentation string is displayed."
                     (or (looking-at "@\\(code\\|var\\){\\([^\} \t\n\r]+\\)}")
                         (looking-at "@\\(findex\\|vindex\\)[ ]+\\([^\} 
\t\n\r]+\\)"))
                     (>= (match-end 2) opoint)))
-             (let ((type-str (match-string 1))
-                   (symbol (intern-soft (ibut:label-set (match-string 2) 
(match-beginning 2) (match-end 2)))))
+             (let ((type-str (match-string-no-properties 1))
+                   (symbol (intern-soft (ibut:label-set 
(match-string-no-properties 2) (match-beginning 2) (match-end 2)))))
                (when (and symbol (pcase type-str
                                    ((or "code" "findex") (fboundp symbol))
                                    ((or "var" "vindex") (boundp symbol))))
@@ -1314,7 +1317,7 @@ documentation string is displayed."
                     (looking-at ",\\s-*\\([^,\n\r]*[^, \t\n\r]\\)[,\n\r]")))
              (hact 'link-to-texinfo-node
                    nil
-                   (ibut:label-set (match-string 1) (match-beginning 1) 
(match-end 1))))
+                   (ibut:label-set (match-string-no-properties 1) 
(match-beginning 1) (match-end 1))))
             ((save-excursion
                (and (search-backward "@" bol t)
                     (looking-at
@@ -1347,7 +1350,7 @@ documentation string is displayed."
                                                     (match-beginning 0))
                                        "unspecified file")
                                      nodename)))))))
-               (ibut:label-set (match-string 0) (match-beginning 0) (match-end 
0))
+               (ibut:label-set (match-string-no-properties 0) (match-beginning 
0) (match-end 0))
                (if show-texinfo-node
                    (hact 'link-to-texinfo-node nil node)
                  (hact 'link-to-Info-node node))))))))
diff --git a/hload-path.el b/hload-path.el
index 3e9f4f0935..34ad0f8115 100644
--- a/hload-path.el
+++ b/hload-path.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    29-Jun-16 at 14:39:33
-;; Last-Mod:     21-May-23 at 03:55:58 by Bob Weiner
+;; Last-Mod:     25-Jun-23 at 09:58:19 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -25,14 +25,14 @@
 ;;; Public variables
 ;;; ************************************************************************
 
-;;;###autoload
+
 (defvar hyperb:microsoft-os-p
   (memq system-type '(ms-windows windows-nt ms-dos win32))
   "Non-nil iff Hyperbole is running under a Microsoft OS but not for WSL.
 WSL is Windows Subsystem for Linux.
 Use `hyperb:wsl-os-p' to test if running under WSL.")
 
-;;;###autoload
+
 (defvar hyperb:wsl-os-p
   (and (eq system-type 'gnu/linux) (executable-find "wsl.exe") t)
   "T iff Hyperbole is running under Microsoft Windows Subsystem for Linux 
(WSL).")
@@ -44,7 +44,6 @@ Use `hyperb:wsl-os-p' to test if running under WSL.")
 (defvar hyperb:dir (or (file-name-directory
                        (or (and (stringp load-file-name) load-file-name)
                            (locate-file "hmouse-tag.el" load-path)
-                           (hyperb:path-being-loaded)
                            ""))
                       (error
                        "(Hyperbole): Failed to set hyperb:dir.  Try setting it 
manually"))
diff --git a/hmouse-drv.el b/hmouse-drv.el
index 52736b45e5..4ae38d346f 100644
--- a/hmouse-drv.el
+++ b/hmouse-drv.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    04-Feb-90
-;; Last-Mod:     18-Jun-23 at 20:42:44 by Bob Weiner
+;; Last-Mod:     19-Jun-23 at 15:56:40 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -543,6 +543,11 @@ Works only when running under a window system, not from a 
dumb terminal."
       ;; Leave hkey-drag to choose final selected window
       (hkey-drag release-window))))
 
+;;;###autoload
+(defun hkey-link (release-window)
+  "Return a list of the selected window (where depressed) and the 
RELEASE-WINDOW."
+  (list (selected-window) release-window))
+
 ;;;###autoload
 (defun hkey-replace (release-window)
   "Grab the buffer from RELEASE-WINDOW and place it into the current window.
@@ -630,7 +635,7 @@ With a prefix argument, create an unnamed implicit button 
instead."
   (let ((start-window (selected-window)))
     (unwind-protect
        (progn
-         ;; Clear Smart Key variables so `hui:ibut-link-directly' does not
+         ;; Clear Smart Key variables so `hui:*but-link-directly' does not
          ;; improperly reference values left over from a prior drag or
          ;; click.  This command does not utilize the Smart Keys.
          (action-key-clear-variables)
@@ -807,7 +812,7 @@ buffer to the end window.  The selected window does not 
change."
 With the start window temporarily selected, run FUNC with the end
 window as an argument.
 
-Appropriate FUNCs include: hui:link, hkey-drag, hkey-drag-to,
+Appropriate FUNCs include: hkey-drag, hkey-drag-to, hkey-link,
 hkey-replace, hkey-swap and hkey-throw."
   (let* (start-event
         end-event
@@ -834,7 +839,7 @@ hkey-replace, hkey-swap and hkey-throw."
 With the start window temporarily selected, run FUNC with the end
 window as an argument. 
 
-Appropriate FUNCs include: hui:link, hkey-drag, hkey-drag-to,
+Appropriate FUNCs include: hkey-drag, hkey-drag-to, hkey-link,
 hkey-replace, hkey-swap and hkey-throw."
   (let* (start-event
         end-event
@@ -1024,7 +1029,7 @@ documentation is found."
                       (or action-key-depress-position 
assist-key-depress-position)))
         (mouse-drag-flag (hmouse-drag-p))
         (hkey-forms (if mouse-flag hmouse-alist hkey-alist))
-        (hrule:action 'actype:identity)
+        (hrule:action #'actype:identity)
         (assist-flag assisting)
         hkey-form pred-value call calls cmd-sym doc)
     (while (and (null pred-value) (setq hkey-form (car hkey-forms)))
diff --git a/hmouse-tag.el b/hmouse-tag.el
index 264c478dcd..260fa2d9d4 100644
--- a/hmouse-tag.el
+++ b/hmouse-tag.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    24-Aug-91
-;; Last-Mod:     10-Jun-23 at 18:00:52 by Bob Weiner
+;; Last-Mod:     19-Jun-23 at 12:54:03 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -386,11 +386,11 @@ If:
   ;; buffers, debugger buffers, program ChangeLog buffers, Help buffers,
   ;; *Warnings*, *Flymake log* and *Flymake diagnostics... buffers.
   (or (memq major-mode #'(emacs-lisp-mode lisp-interaction-mode debugger-mode))
-      (string-match (concat "\\`\\*\\(Warnings\\|Flymake 
log\\|Compile-Log\\(-Show\\)?\\)\\*"
-                           "\\|\\`\\*Flymake diagnostics")
-                           (buffer-name))
+      (string-match-p (concat "\\`\\*\\(Warnings\\|Flymake 
log\\|Compile-Log\\(-Show\\)?\\)\\*"
+                             "\\|\\`\\*Flymake diagnostics")
+                     (buffer-name))
       (and (or (memq major-mode #'(help-mode change-log-mode))
-              (string-match "\\`\\*Help\\|Help\\*\\'" (buffer-name)))
+              (string-match-p "\\`\\*Help\\|Help\\*\\'" (buffer-name)))
           (smart-lisp-at-known-identifier-p))))
 
 (defun smart-fortran (&optional identifier next)
@@ -1160,7 +1160,7 @@ known Emacs Lisp identifier."
                 (when (cdr result)
                   tag))))
            ;; This part only works properly for Emacs Lisp, so is 
conditionalized.
-           (and tag (smart-tags-find-p tag) tag)))))
+           ((and tag (smart-tags-find-p tag) tag))))))
 
 (defun smart-lisp-bound-symbol-def (tag-sym)
   "Return a pair (buffer . point) where TAG-SYM is defined, else nil.
diff --git a/hpath.el b/hpath.el
index cabaf6dbea..55da0c140f 100644
--- a/hpath.el
+++ b/hpath.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     1-Nov-91 at 00:44:23
-;; Last-Mod:     19-Jun-23 at 00:15:54 by Bob Weiner
+;; Last-Mod:     19-Jun-23 at 14:29:44 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -2519,13 +2519,25 @@ that returns a replacement string."
 (defun hpath:substitute-var-name (var-symbol var-dir-val path)
   "Replace with VAR-SYMBOL any occurrences of VAR-DIR-VAL in PATH.
 Replacement is done iff VAR-DIR-VAL is an absolute path.
+
+If VAR-SYMBOL is 'hyperb:dir or 'load-path, remove the matching PATH
+part rather than replacing it with the variable since it can be
+resolved without attaching the variable name.
+
 If PATH is modified, return PATH, otherwise return nil."
   (when (and (stringp var-dir-val) (file-name-absolute-p var-dir-val))
     (let ((new-path (replace-regexp-in-string
                     (regexp-quote (file-name-as-directory
                                    (or var-dir-val default-directory)))
-                    (concat "$\{" (symbol-name var-symbol) "\}/") path
-                    t t)))
+                    ;; Remove matching path rather than adding the
+                    ;; variable to the path when the variable is one
+                    ;; for Elisp files.  These can be resolved
+                    ;; without the variable being included in the
+                    ;; path.
+                    (if (memq var-symbol '(hyperb:dir load-path))
+                        ""
+                      (concat "$\{" (symbol-name var-symbol) "\}/"))
+                    path t t)))
       (if (equal new-path path) nil new-path))))
 
 
diff --git a/hui-em-but.el b/hui-em-but.el
index d1b42e70c6..bc551b6811 100644
--- a/hui-em-but.el
+++ b/hui-em-but.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    21-Aug-92
-;; Last-Mod:     23-Apr-23 at 18:53:36 by Mats Lidell
+;; Last-Mod:     21-Jun-23 at 00:22:22 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -307,8 +307,7 @@ hproperty:color-ptr."
            (sit-for hproperty:but-flash-time-seconds)) ;; Force display update
        (hproperty:set-but-face start categ-face)
        (redisplay t)))
-    (and ibut (not prev) (hproperty:but-clear start))
-    ))
+    (and ibut (not prev) (hproperty:but-clear start))))
 
 (defun hproperty:select-item (&optional pnt)
   "Select item in current buffer at optional position PNT with 
hproperty:item-face."
@@ -324,10 +323,9 @@ hproperty:color-ptr."
 (defun hproperty:select-line (&optional pnt)
   "Select line in current buffer at optional position PNT with 
hproperty:item-face."
   (when pnt (goto-char pnt))
-  (save-excursion
-    (beginning-of-line)
-    (hproperty:but-add (point) (progn (end-of-line) (point)) 
hproperty:item-face))
-  (sit-for 0))  ;; Force display update
+  (hproperty:but-add (line-beginning-position) (line-end-position) 
hproperty:item-face)
+  ;; Force display update
+  (sit-for 0))
 
 ;;; ************************************************************************
 ;;; Private variables
diff --git a/hui-menu.el b/hui-menu.el
index df9552e95d..4e2151c879 100644
--- a/hui-menu.el
+++ b/hui-menu.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    28-Oct-94 at 10:59:44
-;; Last-Mod:     13-May-23 at 17:03:00 by Bob Weiner
+;; Last-Mod:     19-Jun-23 at 13:28:35 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -386,6 +386,7 @@ REBUILD-FLAG is non-nil, in which case the menu is rebuilt."
                    ["Buffer-Buttons"   (hui:hbut-report -1) t]
                    ["Current-Button"   (hui:hbut-report)    t]
                    ["Ordered-Buttons"  (hui:hbut-report 1)  t])
+                  ["Link"   hui:ebut-link-directly t]
                   ["Rename" hui:ebut-rename t]
                   ["Search" hui:ebut-search t]
                   ["Types"
@@ -424,7 +425,8 @@ REBUILD-FLAG is non-nil, in which case the menu is rebuilt."
                   ["Delete-Type" (hui:htype-delete 'ibtypes) t]
                   ["Edit"   hui:ibut-edit t]
                   ["Help"   hui:hbut-help t]
-                  ["Label"  hui:ibut-label-create t]
+                  ["Link"   hui:ibut-link-directly t]
+                  ["Name"  hui:ibut-label-create t]
                   ["Rename" hui:ibut-rename t]
                   ["Types"  (hui:htype-help 'ibtypes 'no-sort) t])
                 '("Koutliner"
diff --git a/hui-mini.el b/hui-mini.el
index a08d5b43d9..3c6b716ac5 100644
--- a/hui-mini.el
+++ b/hui-mini.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    15-Oct-91 at 20:13:17
-;; Last-Mod:     13-May-23 at 14:52:29 by Bob Weiner
+;; Last-Mod:     19-Jun-23 at 13:26:26 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -658,7 +658,7 @@ The menu is a menu of commands from MENU-ALIST."
               '(
                 ("Act"         hui:hbut-act      "Activate button at point or 
prompt for a labeled button in buffer.")
                 ("Butfile/"    (menu . butfile)  "Quick access button files 
menus.")
-                ("Cust/"       (menu . cust)     "Customizes Hyperbole by 
setting major options.")
+                ("Cust/"       (menu . cust)     "Customize Hyperbole by 
setting major options.")
                 ("Doc/"        (menu . doc)      "Quick access to Hyperbole 
documentation.")
                 ("Ebut/"       (menu . ebut)     "Explicit button commands.")
                 ("Find/"       (menu . find)     "Find matching line 
commands.")
@@ -676,13 +676,13 @@ The menu is a menu of commands from MENU-ALIST."
        '(butfile .
         (("Butfile>")
          ("DirFile"      (find-file hbmap:filename)
-          "Edits directory-specific button file.")
+          "Edit directory-specific button file.")
          ("Info"
           (id-info "(hyperbole)Button Files")
-          "Displays manual section on button files.")
+          "Display manual section on button files.")
          ("PersonalFile" (find-file
                            (expand-file-name hbmap:filename hbmap:dir-user))
-          "Edits user-specific button file.")))
+          "Edit user-specific button file.")))
        '(cust .
          (("Cust>")
          ("All-Options"       (customize-browse 'hyperbole)
@@ -697,16 +697,16 @@ The menu is a menu of commands from MENU-ALIST."
          ("Msg-Toggle-Ebuts"  hyperbole-toggle-messaging
           "Toggle Hyperbole support for explicit buttons in mail and news 
buffers.")
          ("Org-M-RET/"        (menu . cust-org)
-          "Sets how much of Hyperbole Smart Key behavior is enabled in Org 
mode.")
+          "Ses how much of Hyperbole Smart Key behavior is enabled in Org 
mode.")
 
          ("Referents/"        (menu . cust-referents)
-          "Sets where Hyperbole button referents are displayed.")
+          "Set where Hyperbole button referents are displayed.")
          ("Smart-Key-at-Eol/" (menu . cust-eol)
-          "Sets how scrolling via end of line presses works.")
+          "Set how scrolling via end of line presses works.")
          ("Toggle-Rolo-Dates" hyrolo-toggle-datestamps
           "Toggle whether date stamps are updated when rolo entries are 
edited.")
-         ("URL-Display/"      (menu . cust-urls) "Sets where URLs are 
displayed.")
-         ("Web-Search/"       (menu . cust-web) "Sets where Web Searches are 
displayed.")))
+         ("URL-Display/"      (menu . cust-urls) "Set where URLs are 
displayed.")
+         ("Web-Search/"       (menu . cust-web) "Set where Web Searches are 
displayed.")))
        '(cust-eol .
          (("Smart Key press at eol scrolls>")
          ("Proportionally" (setq smart-scroll-proportional t))
@@ -765,34 +765,35 @@ The menu is a menu of commands from MENU-ALIST."
          ("About"       (hypb:display-file-with-logo "HY-ABOUT") "Overview of 
Hyperbole.")
          ("Concepts"    (find-file (expand-file-name "HY-CONCEPTS.kotl" 
hyperb:dir))
           "Explains connections among Hyperbole concepts.")
-         ("Demo"        hyperbole-demo                           "Demonstrates 
Hyperbole features.")
+         ("Demo"        hyperbole-demo                           "Demonstrate 
Hyperbole features.")
          ("Files"       (hypb:display-file-with-logo "MANIFEST")
           "Summarizes Hyperbole system files.  Click on an entry to view it.")
          ("Glossary"    (id-info "(hyperbole)Glossary")          "Glossary of 
Hyperbole terms.")
          ("Info"        (id-info "(hyperbole)Top")               "Online Info 
version of Hyperbole manual.")
          ("New"         (hypb:display-file-with-logo "HY-NEWS")  "Recent 
changes to Hyperbole.")
-         ("SmartKeys"   (hkey-summarize 'current-window)         "Summarizes 
Smart Key mouse or keyboard handling.")
-         ("Types/"      (menu . types)                           "Provides 
documentation on Hyperbole types.")
+         ("SmartKeys"   (hkey-summarize 'current-window)         "Summarize 
Smart Key mouse or keyboard handling.")
+         ("Types/"      (menu . types)                           "Provide 
documentation on Hyperbole types.")
          ("WhyUse"      (find-file (expand-file-name "HY-WHY.kotl" hyperb:dir))
           "Lists use cases for Hyperbole.")))
        '(ebut .
         (("EButton>")
          ("Act"         hui:ebut-act
            "Activates explicit button at point or prompts for explicit button 
to activate.")
-         ("Create"      hui:ebut-create                        "Adds an 
explicit button to the current buffer.")
-         ("Delete"      hui:ebut-delete                        "Removes an 
explicit button from the current buffer.")
-         ("Edit"        hui:ebut-edit                          "Modifies any 
desired button attributes.")
-         ("Help/"       (menu . ebut-help)                     "Summarizes 
button attributes.")
-         ("Info"        (id-info "(hyperbole)Explicit Buttons") "Displays 
manual section on explicit buttons.")
-         ("Rename"      hui:ebut-rename                         "Relabels an 
explicit button.")
-         ("Search"      hui:ebut-search                         "Locates and 
displays personally created buttons in context.")
+         ("Create"      hui:ebut-create                         "Add an 
explicit button to the current buffer.")
+         ("Delete"      hui:ebut-delete                         "Remove an 
explicit button from the current buffer.")
+         ("Edit"        hui:ebut-edit                           "Modify any 
desired button attributes.")
+         ("Help/"       (menu . ebut-help)                      "Summarize 
button attributes.")
+         ("Info"        (id-info "(hyperbole)Explicit Buttons") "Display 
manual section on explicit buttons.")
+         ("Link"        hui:ebut-link-directly                  "Insert an 
ebut link at point to other/another window.")
+         ("Rename"      hui:ebut-rename                         "Relabel an 
explicit button.")
+         ("Search"      hui:ebut-search                         "Locate and 
displays personally created buttons in context.")
          ("Types"       (hui:htype-help-current-window 'actypes)
           "Displays documentation for one or all action types used by explicit 
buttons.")))
        '(ebut-help .
         (("Help on>")
-         ("BufferButs"  (hui:hbut-report -1) "Summarizes all explicit buttons 
in buffer.")
-         ("CurrentBut"  (hui:hbut-report)    "Summarizes only current button 
in buffer.")
-         ("OrderedButs" (hui:hbut-report 1)  "Summarizes explicit buttons in 
lexicographically order.")))
+         ("BufferButs"  (hui:hbut-report -1) "Summarize all explicit buttons 
in buffer.")
+         ("CurrentBut"  (hui:hbut-report)    "Summarize only current button in 
buffer.")
+         ("OrderedButs" (hui:hbut-report 1)  "Summarize explicit buttons in 
lexicographically order.")))
        '(find .
          (("Find>")
          ("GrepFiles"           hypb:rgrep        "Show numbered line matches 
in all specified files.")
@@ -801,35 +802,36 @@ The menu is a menu of commands from MENU-ALIST."
          ("OccurHere"           occur             "Show numbered line matches 
for regexp from this buffer.")
          ("RemoveLines"         hypb:remove-lines "Following point, remove all 
lines that match regexp.")
          ("SaveLines"           hypb:save-lines   "Following point, keep only 
lines that match regexp.")
-         ("Web/"                (menu . web)      "Searches major web 
sites.")))
+         ("Web/"                (menu . web)      "Search major web sites.")))
        '(gbut .
         (("GButton>")
-         ("Act"    gbut:act        "Activates global button by name.")
-         ("Create" hui:gbut-create "Adds a global button to (gbut:file).")
-         ("Delete" hui:gbut-delete "Removes a global button from (gbut:file).")
-         ("Edit"   hui:gbut-edit   "Modifies global button attributes.")
-         ("Help"   gbut:help       "Reports on a global button by name.")
+         ("Act"    gbut:act        "Activate global button by name.")
+         ("Create" hui:gbut-create "Add a global button to (gbut:file).")
+         ("Delete" hui:gbut-delete "Remove a global button from (gbut:file).")
+         ("Edit"   hui:gbut-edit   "Modify global button attributes.")
+         ("Help"   gbut:help       "Report on a global button by name.")
          ("Info"   (id-info        "(hyperbole)Global Buttons")
-          "Displays manual section on global buttons.")
-         ("Rename" hui:gbut-rename "Renames a global button.")))
+          "Display manual section on global buttons.")
+         ("Rename" hui:gbut-rename "Rename a global button.")))
        '(ibut .
         (("IButton>")
          ("Act"            hui:ibut-act
-           "Activates implicit button at point or prompts for labeled implicit 
button to activate.")
+           "Activate implicit button at point or prompts for labeled implicit 
button to activate.")
          ("Create"         hui:ibut-create
-           "Labels and creates an implicit button of any type.")
+           "Label and create an implicit button of any type.")
          ("DeleteType"     (hui:htype-delete 'ibtypes)
-          "Deletes specified implicit button type.")
+          "Delete specified implicit button type.")
          ("Edit"           hui:ibut-edit "Edits/modifies named implicit button 
attributes.")
          ("Help"           hui:hbut-help "Reports on button's attributes.")
          ("Info"           (id-info "(hyperbole)Implicit Buttons")
-          "Displays manual section on implicit buttons.")
-         ("Label"          hui:ibut-label-create
-          "Creates an implicit button label preceding an existing implicit 
button at point, if any.")
+          "Display manual section on implicit buttons.")
+         ("Link"           hui:ibut-link-directly "Insert an ibut link at 
point to other/another window.")
+         ("Name"           hui:ibut-label-create
+          "Create an implicit button label preceding an existing implicit 
button at point, if any.")
          ("Rename"         hui:ibut-rename
-          "Modifies a label preceding an implicit button in the current 
buffer.")
+          "Modify a label preceding an implicit button in the current buffer.")
          ("Types"          (hui:htype-help 'ibtypes 'no-sort)
-          "Displays documentation for one or all implicit button types.")))
+          "Display documentation for one or all implicit button types.")))
        '(kotl
         . (("Kotl>")
            ("All"       kotl-mode:show-all        "Expand all collapsed 
cells.")
@@ -837,7 +839,7 @@ The menu is a menu of commands from MENU-ALIST."
            ("Create"    kfile:find                "Create or edit an outline 
file.")
            ("Downto"    kotl-mode:hide-sublevels  "Hide all cells in outline 
deeper than a particular level.")
            ("Examp"     kotl-mode:example         "Display a self-descriptive 
example outline file.")
-           ("Format/"   (menu . kotl-format)      "Imports/Exports Koutlines.")
+           ("Format/"   (menu . kotl-format)      "Import/Export Koutlines.")
            ("Hide"      (progn (kotl-mode:is-p)
                                (kotl-mode:hide-tree (kcell-view:label)))
             "Collapse tree rooted at point.")
@@ -899,19 +901,19 @@ The menu is a menu of commands from MENU-ALIST."
         (("Types>")
          ("ActionTypes"      (hui:htype-help-current-window 'actypes)
           "Displays documentation for one or all action types.")
-         ("IButTypes"        (hui:htype-help-current-window 'ibtypes 'no-sort)
-          "Displays documentation for one or all implicit button types.")))
+         ("IButType"        (hui:htype-help-current-window 'ibtypes 'no-sort)
+          "Display documentation for one or all implicit button types.")))
        '(win .
         (("WinConfig>")
          ("AddName"          hywconfig-add-by-name     "Name current window 
configuration.")
          ("DeleteName"       hywconfig-delete-by-name  "Delete named window 
configuration.")
          ("RestoreName"      hywconfig-restore-by-name "Restore frame to 
window configuration given by name.")
          ("PopRing"          hywconfig-delete-pop-continue
-          "Restores window configuration from ring and removes it from ring.")
+          "Restore window configuration from ring and removes it from ring.")
          ("SaveRing"         (hywconfig-ring-save)
-          "Saves current window configuration to ring.")
+          "Save current window configuration to ring.")
          ("YankRing"         hywconfig-yank-pop-continue
-          "Restores next window configuration from ring.")))
+          "Restore next window configuration from ring.")))
        (hui:menu-web-search)))))
 
 ;;; ************************************************************************
diff --git a/hui-mouse.el b/hui-mouse.el
index 29e3a1d6b8..cf7aad628d 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    04-Feb-89
-;; Last-Mod:     17-Jun-23 at 21:14:33 by Bob Weiner
+;; Last-Mod:     25-Jun-23 at 16:36:39 by Mats Lidell
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -1433,7 +1433,9 @@ NO-RECURSE-FLAG non-nil prevents infinite recursions."
                               ;; Does nothing unless the dash Emacs Lisp
                               ;; library is available for the -flatten 
function.
                               (and (require 'dash nil t)
-                                   (assoc index-key (-flatten alist)))))))
+                                   (progn
+                                     (declare-function -flatten "ext:dash")
+                                     (assoc index-key (-flatten alist))))))))
       (when index-item
        (setq index-position (when (markerp (cdr index-item))
                               (marker-position (cdr index-item))))
diff --git a/hui-select.el b/hui-select.el
index c807d8ced7..4880e4626b 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    19-Oct-96 at 02:25:27
-;; Last-Mod:     14-May-23 at 02:03:53 by Bob Weiner
+;; Last-Mod:     21-Jun-23 at 00:25:45 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -169,7 +169,7 @@ Use for language major modes."
     (Info-mode "[^ \t\n]")
     (outline-mode "[^*]")
     (text-mode  "[^ \t\n*]"))
-  "List of (major-mode . non-terminator-line-regexp) elements.
+  "List of (MAJOR-MODE . NON-TERMINATOR-LINE-REGEXP) elements.
 Used to avoid early dropoff when marking indented code.")
 
 (defvar hui-select-indent-end-regexp-alist
@@ -185,7 +185,7 @@ Used to avoid early dropoff when marking indented code.")
     (indented-text-mode "[ \t]*$")
     (Info-mode "[ \t]*$")
     (text-mode  "[ \t]*$"))
-  "List of (major-mode . terminator-line-regexp) elements.
+  "List of (MAJOR-MODE . TERMINATOR-LINE-REGEXP) elements.
 Used to include a final line when marking indented code.")
 
 (defcustom hui-select-char-p nil
@@ -472,7 +472,7 @@ displayed in the minibuffer."
 ;;;###autoload
 (defun hui-select-goto-matching-tag ()
   "Move point to start of the tag paired with closest tag point is at or 
precedes.
-Enabled in major modes in `hui-select-markup-modes.  Returns t if
+Enabled in major modes in `hui-select-markup-modes'.  Returns t if
 point is moved, else nil.  Signals an error if no tag is found
 following point or if the closing tag does not have a `>'
 terminator character."
@@ -798,7 +798,7 @@ Assume point is before any non-whitespace character on the 
line."
 This respects the current syntax table definition of whitespace, whereas
 `back-to-indentation' does not.  This is relevant in literate programming and
 mail and news reply modes."
-  (goto-char (min (progn (end-of-line) (point))
+  (goto-char (min (line-end-position)
                  (progn (beginning-of-line)
                         (skip-syntax-forward " ")
                         (point)))))
diff --git a/hui-window.el b/hui-window.el
index 0ef1ad9e98..5ecdc0fd14 100644
--- a/hui-window.el
+++ b/hui-window.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    21-Sep-92
-;; Last-Mod:     17-Jun-23 at 21:42:39 by Bob Weiner
+;; Last-Mod:     20-Jun-23 at 23:08:18 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -101,11 +101,15 @@ drag release window.")
   "Non-nil means pulse visually if supported.
 When display supports visual pulsing, then pulse lines and
 buffers when an Action Key drag is used to place a buffer, file
-ofr button referent in a window."
+or button referent in a window."
   :type 'boolean
   :group 'hyperbole-keys)
 
- ;; Mats Lidell says this should be 10 characters for GNU Emacs.
+(defvar hmouse-pulse-iterations 40
+  "Number of iterations in an hmouse-pulse operation when `pulse-flag' is 
active.
+Temporarily override `pulse-iterations' with this for hmouse operations.")
+
+
 (defvar hmouse-edge-sensitivity 10
   "*Number of chars from window edges in which a click is considered at an 
edge.")
 
@@ -819,18 +823,24 @@ Return t if such a point is saved, else nil."
   )
 
 (defun hmouse-pulse-buffer ()
-  (when (and hmouse-pulse-flag (featurep 'pulse) (pulse-available-p))
-    (recenter)
-    (pulse-momentary-highlight-region (window-start) (window-end) 
'next-error)))
+  "When `hmouse-pulse-flag' is non-nil, display can pulse, pulse the buffer."
+  (when (and hmouse-pulse-flag (featurep 'pulse) pulse-flag 
(pulse-available-p))
+    (let ((pulse-iterations hmouse-pulse-iterations))
+      (recenter)
+      (pulse-momentary-highlight-region (window-start) (window-end) 
'next-error))))
 
 (defun hmouse-pulse-line ()
-  (when (and hmouse-pulse-flag (featurep 'pulse) (pulse-available-p))
-    (recenter)
-    (pulse-momentary-highlight-one-line (point) 'next-error)))
+  "When `hmouse-pulse-flag' is non-nil, display can pulse, pulse the line."
+  (when (and hmouse-pulse-flag (featurep 'pulse) pulse-flag 
(pulse-available-p))
+    (let ((pulse-iterations hmouse-pulse-iterations))
+      (recenter)
+      (pulse-momentary-highlight-one-line (point) 'next-error))))
 
 (defun hmouse-pulse-region (start end)
-  (when (and hmouse-pulse-flag (featurep 'pulse) (pulse-available-p))
-    (pulse-momentary-highlight-region start end 'next-error)))
+  "When `hmouse-pulse-flag' is non-nil, display can pulse, pulse the region."
+  (when (and hmouse-pulse-flag (featurep 'pulse) pulse-flag 
(pulse-available-p))
+    (let ((pulse-iterations hmouse-pulse-iterations))
+      (pulse-momentary-highlight-region start end 'next-error))))
 
 (defun hmouse-item-to-window (&optional new-window-flag)
   "Display item/action of Action Key depress at the release location.
diff --git a/hui.el b/hui.el
index 5057483577..91a8e42bb1 100644
--- a/hui.el
+++ b/hui.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    19-Sep-91 at 21:42:03
-;; Last-Mod:     19-Jun-23 at 00:05:29 by Bob Weiner
+;; Last-Mod:     25-Jun-23 at 09:41:45 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -1053,18 +1053,20 @@ Signal an error when no such button is found in the 
current buffer."
                 (ibut:at-p))
        (hui:ibut-message t)))))
 
-(defun hui:link (release-window)
-  "Return a list of the selected window (where depressed) and the 
RELEASE-WINDOW."
-  (list (selected-window) release-window))
-
 (defun hui:ebut-link-directly (&optional depress-window release-window)
   "Create a link ebutton at Action Key depress point, linked to release point.
 With optional DEPRESS-WINDOW and RELEASE-WINDOW, use the points
 from those instead.  See also documentation for
 `hui:link-possible-types'."
-  (interactive (hmouse-choose-link-and-referent-windows))
-
-  (let (but-name but-edit link-types num-types type-and-args lbl-key but-loc 
but-dir)
+  (interactive (progn
+                ;; Clear smart key variables so this does not
+                ;; improperly reference values left over from a prior
+                ;; drag or click.
+                (action-key-clear-variables)
+                (assist-key-clear-variables)
+                (hmouse-choose-link-and-referent-windows)))
+
+  (let (but-name edit-flag link-types num-types type-and-args lbl-key but-loc 
but-dir)
     (multiple-value-bind (link-but-window referent-window)
        (if (and depress-window release-window)
            (list depress-window release-window)
@@ -1080,7 +1082,7 @@ from those instead.  See also documentation for
        (switch-to-buffer action-key-depress-buffer))
       (hui:buf-writable-err (current-buffer) "link-directly")
       (if (ebut:at-p)
-         (setq but-edit t
+         (setq edit-flag t
                but-loc (hattr:get 'hbut:current 'loc)
                but-dir (hattr:get 'hbut:current 'dir)
                lbl-key (hattr:get 'hbut:current 'lbl-key))
@@ -1104,7 +1106,7 @@ from those instead.  See also documentation for
             (error "(link-directly): No possible link type to create"))
            ((= num-types 1)
             (setq type-and-args (hui:list-remove-text-properties (car 
link-types)))
-            (hui:ebut-link-create but-edit link-but-window lbl-key but-loc 
but-dir type-and-args))
+            (hui:ebut-link-create edit-flag link-but-window lbl-key but-loc 
but-dir type-and-args))
            (t ;; more than 1
             (let ((item)
                   type)
@@ -1127,12 +1129,14 @@ from those instead.  See also documentation for
                             link-types)))
                     type-and-args (hui:list-remove-text-properties 
type-and-args))
               (hui:ebut-link-create
-               but-edit link-but-window
+               edit-flag link-but-window
                lbl-key but-loc but-dir type-and-args))))
+      (with-selected-window referent-window
+       (hmouse-pulse-line))
       (when (called-interactively-p 'interactive)
-       (hui:ebut-message but-edit)))))
+       (hui:ebut-message edit-flag)))))
 
-(defun hui:ibut-link-directly (&optional depress-window release-window)
+(defun hui:ibut-link-directly (&optional depress-window release-window 
name-arg-flag)
   "Create a link ibutton at Assist Key depress point, linked to release point.
 If ibutton exists at point, replace it with the new link button.
 
@@ -1140,12 +1144,23 @@ With optional DEPRESS-WINDOW and RELEASE-WINDOW, use 
the points
 from those instead.  See also documentation for
 `hui:link-possible-types'.
 
+With optional NAME-ARG-FLAG (interactively, the prefix argument),
+prompt for a name to precede the implicit button.
+
 An Assist Mouse Key drag between windows runs this command.
 Alternatively, to swap buffers between two windows, Assist Mouse Key
 drag from a window to another window's modeline."
-  (interactive (hmouse-choose-link-and-referent-windows))
-
-  (let (but-name but-edit link-types num-types type-and-args lbl-key but-loc 
but-dir)
+  (interactive (progn
+                ;; Clear smart key variables so this does not
+                ;; improperly reference values left over from a prior
+                ;; drag or click.
+                (action-key-clear-variables)
+                (assist-key-clear-variables)
+                (append (hmouse-choose-link-and-referent-windows)
+                        current-prefix-arg)))
+
+  (let (but-name edit-flag link-types num-types type-and-args name-key but-loc 
but-dir)
+    ;; edit-flag when set non-nil means are editing an existing ibut at point
     (multiple-value-bind (link-but-window referent-window)
        (if (and depress-window release-window)
            (list depress-window release-window)
@@ -1161,10 +1176,10 @@ drag from a window to another window's modeline."
        (switch-to-buffer assist-key-depress-buffer))
       (hui:buf-writable-err (current-buffer) "link-directly")
       (if (ibut:at-p)
-         (setq but-edit t
+         (setq edit-flag t
                but-loc (hattr:get 'hbut:current 'loc)
                but-dir (hattr:get 'hbut:current 'dir)
-               lbl-key (hattr:get 'hbut:current 'lbl-key))
+               name-key (ibut:label-to-key (hattr:get 'hbut:current 'name)))
        (setq but-loc (hui:key-src (current-buffer))
              but-dir (hui:key-dir (current-buffer))
              ;; Don't prompt to name implicit button
@@ -1176,8 +1191,11 @@ drag from a window to another window's modeline."
              ;;                      (region-beginning) (region-end))))
              ;;              "link-directly"
              ;;              "Create button named: ")
-             ;; lbl-key (hbut:label-to-key but-name)
+             ;; name-key (hbut:label-to-key but-name)
              ))
+      (when name-arg-flag
+       (setq name-key (ibut:label-to-key (hui:hbut-label nil 
"hui:ibut-link-directly"
+                                                         "Name for implicit 
button: "))))
       (select-window referent-window)
       (setq link-types (hui:link-possible-types)
            num-types (length link-types))
@@ -1187,7 +1205,7 @@ drag from a window to another window's modeline."
             (error "(link-directly): No possible link type to create"))
            ((= num-types 1)
             (setq type-and-args (hui:list-remove-text-properties (car 
link-types)))
-            (hui:ibut-link-create but-edit link-but-window lbl-key but-loc 
but-dir type-and-args))
+            (hui:ibut-link-create edit-flag link-but-window name-key but-loc 
but-dir type-and-args))
            (t ;; more than 1
             (let ((item)
                   type)
@@ -1210,10 +1228,11 @@ drag from a window to another window's modeline."
                             link-types)))
                     type-and-args (hui:list-remove-text-properties 
type-and-args))
               (hui:ibut-link-create
-               but-edit link-but-window
-               lbl-key but-loc but-dir type-and-args))))
+               edit-flag link-but-window name-key but-loc but-dir 
type-and-args))))
+      (with-selected-window referent-window
+       (hmouse-pulse-line))
       (when (called-interactively-p 'interactive)
-       (hui:ibut-message but-edit)))))
+       (hui:ibut-message edit-flag)))))
 
 
 ;;; ************************************************************************
@@ -1625,13 +1644,15 @@ arguments."
 
 (defun hui:ibut-link-create (edit-flag but-window name-key but-loc but-dir 
type-and-args)
   "Create or edit a new Hyperbole implicit link button.
-If EDIT-FLAG is non-nil, edit button at point in BUT-WINDOW,
-otherwise, prompt for button name and create a button.
-NAME-KEY is internal form of button name.  BUT-LOC is the file or buffer
-in which to create button.  BUT-DIR is the directory of BUT-LOC.
+With EDIT-FLAG non-nil, edit an existing ibutton at point in
+BUT-WINDOW; otherwise, create a new one.
+
+NAME-KEY is the internal form of the button name; when nil,
+prompt for new button name.  BUT-LOC is the file or buffer in
+which to create button.  BUT-DIR is the directory of BUT-LOC.
 TYPE-AND-ARGS is the action type for the button followed by any
-arguments it requires.  Any text properties are removed from string
-arguments."
+arguments it requires.  Any text properties are removed from
+string arguments."
   (hattr:set 'hbut:current 'categ 'implicit)
   (hattr:set 'hbut:current 'loc but-loc)
   (hattr:set 'hbut:current 'dir but-dir)
@@ -1643,8 +1664,7 @@ arguments."
   (unless (and but-loc (or (equal (buffer-name) but-loc)
                           (eq (current-buffer) but-loc)))
     (hbut:key-src-set-buffer but-loc))
-  (let ((name (hbut:key-to-label name-key)))
-    (ibut:operate (when edit-flag name))))
+  (ibut:operate (ibut:key-to-label name-key) edit-flag))
 
 (defun hui:link-possible-types ()
   "Return list of possible link action types during editing of a Hyperbole 
button.
diff --git a/hversion.el b/hversion.el
index 45f4390bd6..60d3f73a06 100644
--- a/hversion.el
+++ b/hversion.el
@@ -4,7 +4,7 @@
 ;; Maintainer:   Bob Weiner, Mats Lidell
 ;;
 ;; Orig-Date:     1-Jan-94
-;; Last-Mod:     27-May-23 at 12:17:40 by Bob Weiner
+;; Last-Mod:     25-Jun-23 at 11:59:46 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -28,7 +28,7 @@
 
 (defconst hyperb:version "8.0.1pre" "GNU Hyperbole revision number.")
 
-;;;###autoload
+
 (defvar hyperb:mouse-buttons
   (if (or (and hyperb:microsoft-os-p (not (memq window-system '(w32 w64 x))))
          (memq window-system '(ns dps)))
@@ -52,6 +52,33 @@ your specific mouse.")
 ;;; Support functions
 ;;; ************************************************************************
 
+(defun hyperb:path-being-loaded ()
+  "Return the full pathname used by the innermost `load' or `require' call.
+Removes any matches for `hyperb:automount-prefixes' before returning
+the pathname."
+  (let* ((frame (hyperb:stack-frame '(load require)))
+        (function (nth 1 frame))
+        file nosuffix)
+    (cond ((eq function 'load)
+          (setq file (nth 2 frame)
+                nosuffix (nth 5 frame)))
+         ((eq function 'require)
+          (setq file (or (nth 3 frame) (symbol-name (nth 2 frame))))))
+    (when (stringp file)
+      (setq nosuffix (or nosuffix
+                        (string-match
+                         "\\.\\(elc?\\|elc?\\.gz\\|elc?\\.Z\\)$"
+                         file))
+           file (substitute-in-file-name file)
+           file (locate-file file load-path
+                             (when (null nosuffix) '(".elc" ".el" ".el.gz" 
".el.Z"))
+                             ;; accept any existing file
+                             nil)
+           file (if (and (stringp file)
+                         (string-match hyperb:automount-prefixes file))
+                    (substring file (1- (match-end 0)))
+                  file)))))
+
 ;; Called in hyperbole.el.
 (defun hyperb:stack-frame (function-list &optional debug-flag)
   "Return the nearest Elisp stack frame that called a function from 
FUNCTION-LIST.
@@ -93,38 +120,11 @@ of stack frames (from innermost to outermost)."
          nil)
        (when debug-flag (nreverse frame-list)))))
 
-(defun hyperb:path-being-loaded ()
-  "Return the full pathname used by the innermost `load' or `require' call.
-Removes any matches for `hyperb:automount-prefixes' before returning
-the pathname."
-  (let* ((frame (hyperb:stack-frame '(load require)))
-        (function (nth 1 frame))
-        file nosuffix)
-    (cond ((eq function 'load)
-          (setq file (nth 2 frame)
-                nosuffix (nth 5 frame)))
-         ((eq function 'require)
-          (setq file (or (nth 3 frame) (symbol-name (nth 2 frame))))))
-    (when (stringp file)
-      (setq nosuffix (or nosuffix
-                        (string-match
-                         "\\.\\(elc?\\|elc?\\.gz\\|elc?\\.Z\\)$"
-                         file))
-           file (substitute-in-file-name file)
-           file (locate-file file load-path
-                             (when (null nosuffix) '(".elc" ".el" ".el.gz" 
".el.Z"))
-                             ;; accept any existing file
-                             nil)
-           file (if (and (stringp file)
-                         (string-match hyperb:automount-prefixes file))
-                    (substring file (1- (match-end 0)))
-                  file)))))
-
 (defun hyperb:window-sys-term (&optional frame)
   "Return first part of the term-type if running under a window system, else 
nil.
 Where a part in the term-type is delimited by a `-' or  an `_'."
   (unless frame (setq frame (selected-frame)))
-  (let* ((display-type (if (fboundp 'device-type) (device-type) window-system))
+  (let* ((display-type window-system)
         (term (cond ((or (memq display-type '(x gtk mswindows win32 w32 ns dps 
pm))
                          ;; May be a graphical client spawned from a
                          ;; dumb terminal Emacs, e.g. under X, so if
@@ -133,13 +133,13 @@ Where a part in the term-type is delimited by a `-' or  
an `_'."
                          (display-mouse-p))
                      ;; X11, macOS, NEXTSTEP (DPS), or OS/2 Presentation 
Manager (PM)
                      "emacs")
+                    ;; Keep NeXT as basis for 2-button mouse support
                     ((or (featurep 'eterm-fns)
                          (equal (getenv "TERM") "NeXT")
                          (equal (getenv "TERM") "eterm"))
                      ;; NEXTSTEP add-on support to Emacs
                      "next"))))
-    (set-frame-parameter frame 'hyperb:window-system
-                        (and term (setq term (substring term 0 (string-match 
"[-_]" term)))))
+    (set-frame-parameter frame 'hyperb:window-system term)
     term))
 
 (defun hyperb:window-system (&optional frame)
@@ -190,7 +190,7 @@ support is available."
             ;; Force execution of Info-mode-hook which adds the
             ;; Hyperbole man directory to Info-directory-list.
             (info)
-            (if (string-match "^(\\([^\)]+\\))\\(.*\\)" index-item)
+            (if (string-match "^(\\([^)]+\\))\\(.*\\)" index-item)
                 (let ((file (match-string-no-properties 1 index-item))
                       (item-name (match-string-no-properties 2 index-item)))
                   (if (and file (setq file (hpath:substitute-value file)))
diff --git a/hycontrol.el b/hycontrol.el
index 88139e0684..f164619014 100644
--- a/hycontrol.el
+++ b/hycontrol.el
@@ -359,7 +359,7 @@ The final predicate should always be t, for default values, 
typically of zero.")
 ;;;###autoload
 (eval-after-load "dired"     '(define-key dired-mode-map       "@" 
'hycontrol-windows-grid))
 
-;;;###autoload
+
 (defvar hycontrol-windows-mode-map
   (let ((map (make-sparse-keymap)))
     (suppress-keymap map t) ;; Disable self-inserting keys and prefix keys
@@ -428,11 +428,11 @@ The final predicate should always be t, for default 
values, typically of zero.")
 
     ;; Don't call these interactively because a prefix arg of 1 tries
     ;; to make one window 1 line tall.
-    (define-key map "\["    (lambda () (interactive) 
(split-window-vertically)))
-    (define-key map "\]"    (lambda () (interactive) 
(split-window-horizontally)))
+    (define-key map "["    (lambda () (interactive) (split-window-vertically)))
+    (define-key map "]"    (lambda () (interactive) 
(split-window-horizontally)))
 
-    (define-key map "\("    'hycontrol-save-frame-configuration)
-    (define-key map "\)"    'hycontrol-restore-frame-configuration)
+    (define-key map "("    'hycontrol-save-frame-configuration)
+    (define-key map ")"    'hycontrol-restore-frame-configuration)
 
     (define-key map "~"     (lambda () (interactive)
                              (unless (hycontrol-window-swap-buffers)
diff --git a/hypb.el b/hypb.el
index 45390d89be..b1050e7eda 100644
--- a/hypb.el
+++ b/hypb.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     6-Oct-91 at 03:42:38
-;; Last-Mod:     18-Jun-23 at 14:53:11 by Bob Weiner
+;; Last-Mod:     25-Jun-23 at 10:11:57 by Mats Lidell
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
diff --git a/hyperbole.el b/hyperbole.el
index f270cfc165..fb1afed7b7 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -7,7 +7,7 @@
 ;; Author:           Bob Weiner
 ;; Maintainer:       Bob Weiner <rsw@gnu.org>, Mats Lidell <matsl@gnu.org>
 ;; Created:          06-Oct-92 at 11:52:51
-;; Last-mod:      7-Mar-23 at 22:10:54 by Bob Weiner
+;; Last-mod:     25-Jun-23 at 12:01:04 by Bob Weiner
 ;; Released:         03-Dec-22
 ;; Version:          8.0.1pre
 ;; Keywords:         comm, convenience, files, frames, hypermedia, languages, 
mail, matching, mouse, multimedia, outlines, tools, wp
@@ -154,9 +154,7 @@ Info documentation at \"(hyperbole)Top\".
 
 \\{hyperbole-mode-map}"
   :global t
-  :keymap 'hyperbole-mode-map
   :lighter hyperbole-mode-lighter
-  :require 'hyperbole
   (if hyperbole-mode
       (hyperbole--enable-mode)
     (hyperbole--disable-mode)))
diff --git a/hyrolo.el b/hyrolo.el
index 089a618ce6..211e270278 100644
--- a/hyrolo.el
+++ b/hyrolo.el
@@ -157,29 +157,26 @@ use."
 
 ;; '("~/.rolo.otl" "~/.rolo.org")
 
+(defun hyrolo--initialize-file-list ()
+  (delq nil
+        (list "~/.rolo.otl"
+              (if (and (boundp 'bbdb-file) (stringp bbdb-file)) bbdb-file)
+              (when (hyrolo-google-contacts-p) google-contacts-buffer-name))))
+
 ;;;###autoload
 (defun hyrolo-initialize-file-list (&optional force-init-flag)
   "Initialize the list of files used for HyRolo search if not already 
initialized."
+  (declare (obsolete nil "8.0.1"))
   (interactive)
   (when (or force-init-flag (not (boundp 'hyrolo-file-list)) (not 
hyrolo-file-list))
-    (let* ((gcontacts (when (hyrolo-google-contacts-p) 
google-contacts-buffer-name))
-          (ms "~/.rolo.otl")
-          (posix "~/.rolo.otl")
-          (list (delq nil (if (and (boundp 'bbdb-file) (stringp bbdb-file))
-                              (if hyperb:microsoft-os-p
-                                  (list ms bbdb-file gcontacts)
-                                (list  "~/.rolo.otl" bbdb-file gcontacts))
-                            (if hyperb:microsoft-os-p
-                                (list ms gcontacts)
-                              (list posix gcontacts))))))
-      (setq hyrolo-file-list list)
-      (when (called-interactively-p 'interactive)
-       (message "HyRolo Search List: %S" list))
-      list)))
+    (setq hyrolo-file-list (hyrolo--initialize-file-list))
+    (when (called-interactively-p 'interactive)
+      (message "HyRolo Search List: %S" hyrolo-file-list))
+    hyrolo-file-list))
 
 (define-obsolete-variable-alias 'rolo-file-list 'hyrolo-file-list "06.00")
-(defcustom hyrolo-file-list (hyrolo-initialize-file-list)
-  "*List of files containing rolo entries.
+(defcustom hyrolo-file-list (hyrolo--initialize-file-list)
+  "List of files containing rolo entries.
 The first file should be a user-specific rolo file, typically in the home
 directory.
 
@@ -925,8 +922,8 @@ With optional ARG, turn them on iff ARG is positive."
          (and (not (and arg (> (prefix-numeric-value arg) 0)))
               (boundp 'hyrolo-add-hook) (listp hyrolo-add-hook)
               (memq 'hyrolo-set-date hyrolo-add-hook)))
-      (progn (remove-hook 'hyrolo-add-hook 'hyrolo-set-date)
-            (remove-hook 'hyrolo-edit-hook 'hyrolo-set-date)
+      (progn (remove-hook 'hyrolo-add-hook #'hyrolo-set-date)
+            (remove-hook 'hyrolo-edit-hook #'hyrolo-set-date)
             (message "Rolo date stamps are now off."))
     (add-hook 'hyrolo-add-hook  #'hyrolo-set-date)
     (add-hook 'hyrolo-edit-hook #'hyrolo-set-date)
@@ -1000,7 +997,7 @@ of a string."
                      (hyrolo-grep name -1)
                    (hyrolo-grep (regexp-quote name) -1))))
     ;; Let user reformat the region just yanked.
-    (if (and (= found 1) (fboundp hyrolo-yank-reformat-function))
+    (if (= found 1)
        (funcall hyrolo-yank-reformat-function start (point)))
     found))
 
diff --git a/kotl/kotl-mode.el b/kotl/kotl-mode.el
index d34bbe990f..2c5c2c39fa 100644
--- a/kotl/kotl-mode.el
+++ b/kotl/kotl-mode.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    6/30/93
-;; Last-Mod:     19-Jun-23 at 10:54:07 by Bob Weiner
+;; Last-Mod:     21-Jun-23 at 21:03:59 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -2087,9 +2087,9 @@ With optional NEXT-CHAR-VISIBLE, return t only if the 
following char is visible.
   (or (smart-eobp)
       (and (eolp)
           (if next-char-visible
-              (not (kview:char-invisible-p))
-            (or (not (kview:char-invisible-p))
-                (not (kview:char-invisible-p (1- (point))))))
+              (not (invisible-p (point)))
+            (or (not (invisible-p (point)))
+                (not (invisible-p (1- (point))))))
           t)))
 
 (defun kotl-mode:first-cell-p ()
@@ -3405,8 +3405,8 @@ With optional BACKWARD-P, move backward if possible to 
get to valid position."
   ;; Empty, visible cell
   (unless (and (kotl-mode:bocp) (kotl-mode:eocp) (not (kcell-view:invisible-p 
(point))))
     (if (if backward-p
-           (kview:char-invisible-p (1- (point)))
-         (kview:char-invisible-p))
+           (invisible-p (1- (point)))
+         (invisible-p (point)))
        (goto-char (if backward-p
                       (kview:previous-visible-point)
                     (kview:first-visible-point))))
diff --git a/kotl/kview.el b/kotl/kview.el
index 3e0de9ed65..6c54f1dd1d 100644
--- a/kotl/kview.el
+++ b/kotl/kview.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    6/30/93
-;; Last-Mod:     19-Jun-23 at 10:27:35 by Bob Weiner
+;; Last-Mod:     21-Jun-23 at 21:00:17 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -641,11 +641,6 @@ level."
   (when (get-char-property (or pos (point)) 'invisible)
     t))
 
-;;;###autoload
-(defun kview:char-visible-p (&optional pos)
-  "Return t if the character after point is visible, else nil."
-  (not (get-char-property (or pos (point)) 'invisible)))
-
 (defun kview:create (buffer-name
                         &optional id-counter top-cell-attributes
                         label-type level-indent label-separator
@@ -745,7 +740,7 @@ Value may be the character immediately after point."
   (unless pos
     (setq pos (point)))
   (let ((end (kcell-view:end-contents pos)))
-    (while (and pos (< pos end) (kview:char-visible-p pos))
+    (while (and pos (< pos end) (not (invisible-p pos)))
       (if (kproperty:get pos 'invisible)
          (setq pos (kproperty:next-single-change pos 'invisible nil end))
        (let ((overlay (car (delq nil (mapcar (lambda (o) (when (overlay-get o 
'invisible) o))
@@ -758,7 +753,7 @@ Value may be the character immediately after point."
 Start from point or optional POS.  If not found, return (point-max)."
   (unless pos
     (setq pos (point)))
-  (while (and pos (kview:char-invisible-p pos))
+  (while (and pos (invisible-p pos))
     (if (kproperty:get pos 'invisible)
        (setq pos (kproperty:next-single-change pos 'invisible))
       (let ((overlay (car (delq nil (mapcar (lambda (o) (when (overlay-get o 
'invisible) o))
@@ -1202,7 +1197,7 @@ Value may be the character immediately after point."
   (unless pos
     (setq pos (point)))
   (setq pos (1- pos))
-  (while (and pos (kview:char-invisible-p pos))
+  (while (and pos (invisible-p pos))
     (if (kproperty:get pos 'invisible)
        (progn (setq pos (kproperty:previous-single-change pos 'invisible))
               (when pos (setq pos (1- pos))))
diff --git a/man/hyperbole.html b/man/hyperbole.html
index eebce96674..00a5feb639 100644
--- a/man/hyperbole.html
+++ b/man/hyperbole.html
@@ -4,7 +4,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <!-- This manual is for GNU Hyperbole
-(Edition 8.0.1pre, Published May, 2023).
+(Edition 8.0.1pre, Published June, 2023).
 
 Copyright © 1989-2023  Free Software Foundation, Inc.
 
@@ -107,7 +107,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
 
 <PRE>
 Edition 8.0.1pre
-Printed May 13, 2023.
+Printed June 22, 2023.
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -863,8 +863,8 @@ Hyperbole
   On a minibuffer menu item     Activates item             Item help
   On an explicit button         Activates button           Button help
   Reading argument
-    1st press at an arg value   Value copied to minibuffer &lt;- same
-    2nd press at an arg value   Value used as argument     &lt;- same
+    1st press at an arg value   Copies value to minibuffer &lt;- same
+    2nd press at an arg value   Uses value as argument     &lt;- same
     In minibuffer               Accepts minibuffer arg     Completion help
   On an implicit button/path    Activates button           Button help
   Within a koutline cell        Collapses and expands      Shows tree props
@@ -886,7 +886,7 @@ Mouse-only Control
     string, list or markup
     language tag pair
 
-  Drag from bottom Modeline     Reposition frame as        &lt;- same
+  Drag from bottom Modeline     Repositions frame as       &lt;- same
   in frame with non-nil         drag happens
   drag-with-mode-line param
 
@@ -898,31 +898,31 @@ Mouse-only Control
     another window                with source buffer
 
   Drag to a Modeline from:
-    buffer/file menu item       Displays buffer/file in    Swaps window buffers
-                                  new window by release
+    but/buffer/file menu item   Displays ref/buffer/file   Swaps window buffers
+                                  in new window by release
     buffer/file menu 1st line   Moves buffer/file menu to  Swaps window buffers
                                   new window by release
     anywhere else               Displays buffer in         Swaps window buffers
                                   new window by release
 
   Drag between windows from:
-    buffer/file menu item       Displays buffer/file in    Swaps window buffers
-                                  window of button release 
-    buffer/file menu 1st line   Moves buffer/file menu     Swaps window buffers
-    anywhere else               Creates/modifies a link    Swaps window buffers
+    but/buffer/file menu item   Displays ref/buffer/file   &lt;- same
+                                  in window of button release 
+    buffer/file menu 1st line   Moves buffer/file menu     &lt;- same
+    anywhere else               Creates an ebut link       Creates an ibut link
 
   Drag outside of Emacs from:
-    buffer/file menu item       Displays buffer/file in    Moves window to new 
frame
-                                  a new frame
+    but/buffer/file menu item   Displays ref/buffer/file   Moves window to new 
frame
+                                  in a new frame
     Modeline or other window    Clones window to new frame Moves window to new 
frame
 
   Modeline Click
     Left modeline edge          Buries current buffer      Unburies bottom 
buffer
-    Right modeline edge         Info manual browser        Smart Key summary
-    Buffer ID                   Dired on buffer's dir      Next buffer
+    Right modeline edge         Displays GNU Info manuals  Displays Smart Key 
summary
+    Buffer ID                   Dired on buffer's dir      Displays next buffer
                                   or on parent when a dir
     Other blank area            Action Key modeline hook   Assist Key modeline 
hook
-                                  Shows/Hides Buffer Menu    Popup Jump &amp; 
Manage Menu
+                                  Shows/Hides Buffer Menu    Popups Jump &amp; 
Manage Menu
 
   Drag in window, region active Error, not allowed         Error, not allowed
   Horizontal drag in a window   Splits window below        Deletes window
@@ -939,16 +939,16 @@ Hyperbole Key Press/Click in Special Modes
   Treemacs                      Displays item              Displays item
   Dired Sidebar                 Displays item              Displays item
   Emacs Push Button             Activates button           Button help
-  Emacs Regression Test Def     Eval and run test          Edebug and run test
-  Thing Begin or End            Mark thing region          Mark &amp; kill 
thing region
+  Emacs Regression Test Def     Evals and runs test        Edebugs and runs 
test
+  Thing Begin or End            Marks thing region         Marks &amp; kills 
thing region
   Page Directory Listing        Jumps to page              &lt;- same
-  Imenu Programming Identifier  Jumps to in-buffer def     Prompts for id to 
jump to
   C,C++,Objective-C,Java Modes  Jumps to id/include def    Jumps to next def
   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 Known Lisp or ChangeLog   Jumps to identifier def    Referent Doc
   Fortran Mode                  Jumps to identifier def    Jumps to next def
+  Imenu Programming Identifier  Jumps to in-buffer def     Prompts for id to 
jump to
   Emacs Lisp Compiler Error     Jumps to def with error    &lt;- same
   Emacs Regression Test (ERT)   Jumps to def with error    &lt;- same
   Other Compiler Error          Jumps to src error line    &lt;- same
@@ -969,14 +969,14 @@ Hyperbole Key Press/Click in Special Modes
   Man Apropos                   Displays man page entry    &lt;- same
   Man Pages                     Follows cross refs, file refs and C code refs
   I/Buffer Menu                 Saves, deletes and displays buffers
-  Todotxt Mode                  Toggle item completion     Edit and archive 
items
+  Todotxt Mode                  Toggles item completion    Edit and archive 
items
 
 Emacs Info Reader
-  Menu Entry or Cross Ref       To referent                &lt;- same
-  Up, Next or Prev Header       To referent                To prior node
-  File entry of Header          To top node                To (DIR) node
-  End of current node           To next node               To previous node
-  Anywhere else                 Scrolls up a windowful     Scrolls wind down
+  Menu Entry or Cross Ref       Jumps to referent          &lt;- same
+  Up, Next or Prev Header       Jumps to referent          Jumps to prior node
+  File entry of Header          Jumps to top node          Jumps to (DIR) node
+  End of current node           Jumps to next node         Jumps to previous 
node
+  Anywhere else                 Scrolls up a windowful     Scrolls down a 
windowful
 
 Subsystems
   Calendar                      Scrolls or shows appts     Scrolls/marks date
@@ -1482,15 +1482,16 @@ Previous: <a href="#Moving-Frames" accesskey="p" 
rel="prev">Moving Frames</a>, U
 <h4 class="subsection" id="Dragging-Buffers_002c-Windows-and-Items">3.7.5 
Dragging Buffers, Windows and Items</h4>
 
 <p>Smart Mouse Key drags let you display buffers and windows however you want
-them.  Dired and buffer-menu items may also be displayed in specific
-locations with drags.  Below we explore these drag actions.
+them.  Dired, Treemacs and buffer-menu items as well as Hyperbole button
+referents may be displayed in specific locations with drags.  Below
+we explore these drag actions.
 </p>
 
 <ul class="mini-toc">
 <li><a href="#Swapping-Buffers" accesskey="1">Swapping Buffers</a></li>
 <li><a href="#Displaying-Buffers" accesskey="2">Displaying Buffers</a></li>
 <li><a href="#Cloning-Windows" accesskey="3">Cloning Windows</a></li>
-<li><a href="#Displaying-File-and-Buffer-Items" accesskey="4">Displaying File 
and Buffer Items</a></li>
+<li><a href="#Displaying-Items" accesskey="4">Displaying Items</a></li>
 <li><a href="#Keyboard-Drags" accesskey="5">Keyboard Drags</a></li>
 </ul>
 <hr>
@@ -1506,15 +1507,16 @@ Next: <a href="#Displaying-Buffers" accesskey="n" 
rel="next">Displaying Buffers<
 <a class="index-entry-id" id="index-buffer_002c-swap"></a>
 <a class="index-entry-id" id="index-drag_002c-buffer-swap"></a>
 <p>Swapping buffer locations is quick and easy with Hyperbole.  Simply drag
-from one window to another with the Assist Key (not the Action Key).  This
-works across frames as well.
+the Assist Mouse Key (not the Action Key) from the open area of one
+window&rsquo;s modeline to the text area of another.  This works across frames
+as well.
 </p>
-<p>If you have just two windows in an Emacs frame, you can swap their
-buffers from the keyboard.  Use this Hyperbole minibuffer menu key
-sequence involving the tilde key to swap the buffers and quit from the
-Hyperbole minibuffer menu: <kbd class="kbd">{C-h h s w ~ Q}</kbd>.  Similarly, 
if you
-have two single window frames, you can swap buffers between them with
-<kbd class="kbd">{C-h h s f ~ Q}</kbd>.
+<p>If you have just two windows in an Emacs frame, you can swap their buffers
+from the keyboard.  Use this Hyperbole minibuffer menu key sequence
+involving the tilde key to swap the buffers and quit from the Hyperbole
+minibuffer menu: <kbd class="kbd">{C-h h s w ~ Q}</kbd>.  Similarly, if you 
have two single
+window frames, you can swap buffers between them with <kbd class="kbd">{C-h h 
s f ~
+Q}</kbd>.
 </p>
 <hr>
 </div>
@@ -1533,16 +1535,17 @@ buffers?  Depress the Action Mouse Key in the open area 
of the modeline of
 the source window and drag to the text area of the destination window.
 Voila, the buffer appears in the new location as well as the old one.
 </p>
-<p>If you want a new window where you release (so the original destination
-window&rsquo;s buffer stays onscreen), just drag to a window&rsquo;s modeline; 
that
-window will be split before the buffer is displayed.
+<p>If you want a new window where you release (so the original
+destination window&rsquo;s buffer stays onscreen), just drag to the release
+window&rsquo;s modeline; that window will be split before the buffer is
+displayed.
 </p>
 <hr>
 </div>
 <div class="subsubsection-level-extent" id="Cloning-Windows">
 <div class="nav-panel">
 <p>
-Next: <a href="#Displaying-File-and-Buffer-Items" accesskey="n" 
rel="next">Displaying File and Buffer Items</a>, Previous: <a 
href="#Displaying-Buffers" accesskey="p" rel="prev">Displaying Buffers</a>, Up: 
<a href="#Dragging-Buffers" accesskey="u" rel="up">Dragging Buffers, Windows 
and Items</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="#Displaying-Items" accesskey="n" rel="next">Displaying 
Items</a>, Previous: <a href="#Displaying-Buffers" accesskey="p" 
rel="prev">Displaying Buffers</a>, Up: <a href="#Dragging-Buffers" 
accesskey="u" rel="up">Dragging Buffers, Windows and Items</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>
 <h4 class="subsubsection" id="Cloning-Windows-1">3.7.5.3 Cloning Windows</h4>
 
@@ -1557,41 +1560,46 @@ unless it is the only window in that frame.
 </p>
 <hr>
 </div>
-<div class="subsubsection-level-extent" id="Displaying-File-and-Buffer-Items">
+<div class="subsubsection-level-extent" id="Displaying-Items">
 <div class="nav-panel">
 <p>
 Next: <a href="#Keyboard-Drags" accesskey="n" rel="next">Keyboard Drags</a>, 
Previous: <a href="#Cloning-Windows" accesskey="p" rel="prev">Cloning 
Windows</a>, Up: <a href="#Dragging-Buffers" accesskey="u" rel="up">Dragging 
Buffers, Windows and Items</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>
-<h4 class="subsubsection" id="Displaying-File-and-Buffer-Items-1">3.7.5.4 
Displaying File and Buffer Items</h4>
+<h4 class="subsubsection" id="Displaying-Items-1">3.7.5.4 Displaying Items</h4>
 
 <a class="index-entry-id" id="index-dired-item-drag"></a>
 <a class="index-entry-id" id="index-buffer-menu-item-drag"></a>
 <a class="index-entry-id" id="index-Treemacs-item-drag"></a>
+<a class="index-entry-id" id="index-Hyperbole-button-drag"></a>
+<a class="index-entry-id" id="index-drag_002c-Hyperbole-button-referent"></a>
 <a class="index-entry-id" id="index-drag_002c-dired-item"></a>
 <a class="index-entry-id" id="index-drag_002c-buffer-menu-item"></a>
 <a class="index-entry-id" id="index-drag_002c-Treemacs-item"></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 class="pxref" href="#Keyboard-Drags">Keyboard 
Drags</a>.
+<p>You can also drag items to other windows with the Action or Assist Mouse
+Keys in Dired, Buffer Menu, Ibuffer and Treemacs listing buffers, rather
+than the buffers themselves.  Dragging Hyperbole buttons to display their
+referents in another window works too.
+</p>
+<p>Drag with the Action or Assist Mouse Key and the selected item&rsquo;s 
referent
+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 class="pxref" 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
-then in the destination window, to help you see that the transfer has been
-made.  An Assist Key Drag will move the the item list buffer to the
-destination (swapping buffers), just as it does with other buffers.
+you like.  Typically, a brief visual pulse is shown first at the source
+item and then in the destination window, to help you see that the transfer
+has been made.  An Assist Key Drag will move the the item list buffer to
+the destination (swapping buffers), just as it does with other buffers.
 </p>
 <hr>
 </div>
 <div class="subsubsection-level-extent" id="Keyboard-Drags">
 <div class="nav-panel">
 <p>
-Previous: <a href="#Displaying-File-and-Buffer-Items" accesskey="p" 
rel="prev">Displaying File and Buffer Items</a>, Up: <a 
href="#Dragging-Buffers" accesskey="u" rel="up">Dragging Buffers, Windows and 
Items</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
+Previous: <a href="#Displaying-Items" accesskey="p" rel="prev">Displaying 
Items</a>, Up: <a href="#Dragging-Buffers" accesskey="u" rel="up">Dragging 
Buffers, Windows and Items</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>
 <h4 class="subsubsection" id="Keyboard-Drags-1">3.7.5.5 Keyboard Drags</h4>
 
@@ -1699,11 +1707,13 @@ trigger an error
 <dt>M-o t &lt;window&gt;</dt>
 <dd><p>throw region, listing item at point, or current buffer to &lt;window&gt;
 </p>
+<a class="index-entry-id" id="index-hui_003aebut_002dlink_002ddirectly"></a>
 </dd>
 <dt>M-o w &lt;window&gt;</dt>
 <dd><p>window link, create a new explicit button in the selected (current)
-window, linking to point in the referent &lt;window&gt;, with the link type
-determined by the referent context via <code 
class="code">hui:link-directly</code>.
+window, linking to point in the referent &lt;window&gt;.
+<code class="code">hui:ebut-link-directly</code> determines the link type by 
using the
+referent context.
 </p></dd>
 </dl>
 
@@ -1826,22 +1836,20 @@ Spacing between words within a button label is 
irrelevant to Hyperbole.
 Button labels may wrap across several lines without causing a problem;
 just be sure to select the first line of the button to activate it.
 </p>
-<p>Explicit buttons may be added to any editable buffer including
-temporary buffers without any attached files (such buttons will
-last only the length of a single Emacs session).  For source code
-files, simply place Hyperbole explicit buttons within comments.
-Buttons that you use for quick navigation to websites or other things
-you do often should be added to your personal button file.
-See <a class="xref" href="#Button-Files">Button Files</a>.
+<p>Explicit buttons may be added to any editable buffer including temporary
+buffers without any attached files (such buttons will last only the
+length of a single Emacs session).  For source code files, simply place
+Hyperbole explicit buttons within comments.  Buttons that you use for
+quick navigation to websites or other things you do often should be
+added to your personal button file.  See <a class="xref" 
href="#Button-Files">Button Files</a>.
 </p>
 <a class="index-entry-id" id="index-button_002c-moving"></a>
 <a class="index-entry-id" id="index-moving-buttons"></a>
 <p>Explicit buttons may be freely moved about within the buffer in which
 they are created.  (No present support exists for moving buttons between
-buffers; support the Hyperbole project if you would like to help make
-this happen).  A single button may also appear multiple times within the
-same buffer; simply copy the button label with its delimiters
-to a new location if you need another copy of it.
+buffers).  A single button may also appear multiple times within the
+same buffer; simply copy the button label with its delimiters to a new
+location if you need another copy of it.
 </p>
 <p>For details on how to create, activate, delete or edit explicit
 buttons, see <a class="pxref" href="#Utilizing-Explicit-Buttons">Utilizing 
Explicit Buttons</a>.
@@ -1966,29 +1974,63 @@ directory, typically in another window.  An explicit 
button could do
 the same thing but has to be created manually, rather than recognized
 as part of the buffer text.
 </p>
-<a class="index-entry-id" id="index-C_002dh-h-i"></a>
-<a class="index-entry-id" id="index-activating-implicit-button"></a>
-<a class="index-entry-id" id="index-menu-item_002c-Ibut_002fAct"></a>
+<a class="index-entry-id" id="index-link-creation"></a>
+<a class="index-entry-id" id="index-creating-implicit-links"></a>
+<a class="index-entry-id" id="index-implicit-button-creation"></a>
 <a class="index-entry-id" id="index-menu_002c-Ibut"></a>
 <a class="index-entry-id" id="index-menu_002c-Implicit_002dButton"></a>
-<a class="index-entry-id" id="index-menu_002c-Ibut_002fActivate"></a>
-<a class="index-entry-id" id="index-menu_002c-Ibut_002fCreate"></a>
-<a class="index-entry-id" id="index-menu_002c-Ibut_002fEdit"></a>
-<a class="index-entry-id" id="index-menu_002c-Ibut_002fLabel"></a>
-<a class="index-entry-id" id="index-C_002dh-h-i-a"></a>
+<a class="index-entry-id" id="index-menu-item_002c-Ibut_002fCreate"></a>
+<a class="index-entry-id" id="index-menu-item_002c-Ibut_002fEdit"></a>
+<a class="index-entry-id" id="index-C_002dh-h-i"></a>
 <a class="index-entry-id" id="index-C_002dh-h-i-c"></a>
 <a class="index-entry-id" id="index-C_002dh-h-i-e"></a>
-<a class="index-entry-id" id="index-C_002dh-h-i-l"></a>
 <p>Implicit buttons are managed with the Hyperbole Ibut/ menu accessed
 with <kbd class="kbd">{C-h h i}</kbd>.  The Create item, <kbd class="kbd">{C-h 
h i c}</kbd>, prompts for
-an implicit button label, an action type, and the action&rsquo;s associated
-arguments, such as a file to which to link.  It then creates the
-button at point.  To activate the button with point on its label or
-button text, use the Act menu item, <kbd class="kbd">{C-h h i a}</kbd> or 
press the
-Action Key.  You can use <kbd class="kbd">{C-h h i e}</kbd> to edit an 
implicit button
-(or simply edit it manually).  If you want to add a label to an
-existing implicit button without one, use <kbd class="kbd">{C-h h i l}</kbd> 
to label
-it.
+an implicit button name (default is any selected region), an action
+type, and the action&rsquo;s associated arguments.  It then creates the
+button at point.  Use this to create a button with any implicit button
+type, not just links.
+</p>
+<a class="index-entry-id" 
id="index-mouse-drag_002c-implicit-link-creation"></a>
+<a class="index-entry-id" id="index-drag"></a>
+<a class="index-entry-id" id="index-Assist-Key-drag"></a>
+<p>Alternatively, to create an implicit link button to something
+displayed within an Emacs window (the referent), simply drag with the
+Assist (not the Action) Mouse Key depressed from an editable source
+window to another window with the desired link referent and then
+release.  The drag must start outside of a draggable item,
+see <a class="pxref" href="#Displaying-Items">Displaying Items</a>.  Hyperbole 
will either automatically select
+the button type based on the referent context or will prompt you to
+select from one of a few possible link types.
+</p>
+<a class="index-entry-id" id="index-implicit-link-creation"></a>
+<a class="index-entry-id" id="index-menu_002c-Ibut_002fLink"></a>
+<a class="index-entry-id" id="index-C_002dh-h-i-l"></a>
+<p>If you have exactly two Emacs windows in your current frame or exactly
+two windows visible across two Emacs frames, this is even easier.
+Simply use the Link menu item, <kbd class="kbd">{C-h h i l}</kbd>, to create a 
new
+unnamed implicit link button or to edit the one at point.  <kbd 
class="kbd">{C-u
+C-h h i l}</kbd> will additionally prompt to add a name or rename the button
+at point.  With more than two windows, Hyperbole will prompt you to
+choose the referent window and its associated point to which to link.
+If the Ace Window package is installed and active, this will be used
+to choose the window; otherwise, you will be prompted to select it by
+mouse.
+</p>
+<a class="index-entry-id" id="index-activating-implicit-button"></a>
+<a class="index-entry-id" id="index-menu-item_002c-Ibut_002fAct"></a>
+<a class="index-entry-id" id="index-menu-item_002c-Ibut_002fActivate"></a>
+<a class="index-entry-id" id="index-menu-item_002c-Ibut_002fName"></a>
+<a class="index-entry-id" id="index-menu-item_002c-Ibut_002fRename"></a>
+<a class="index-entry-id" id="index-C_002dh-h-i-a"></a>
+<a class="index-entry-id" id="index-C_002dh-h-i-n"></a>
+<a class="index-entry-id" id="index-C_002dh-h-i-r"></a>
+<p>To activate an implicit button with point on its name or button text,
+use the Act menu item, <kbd class="kbd">{C-h h i a}</kbd> or press the Action 
Key.  You
+can use <kbd class="kbd">{C-h h i e}</kbd> to edit an implicit button (or 
simply edit it
+manually).  If you want to add a name to an existing implicit button
+without one, use <kbd class="kbd">{C-h h i n}</kbd> to name it.  Rename an 
existing
+named implicit button with <kbd class="kbd">{C-h h i r}</kbd>.
 </p>
 <a class="index-entry-id" id="index-file_002c-hibtypes_002eel"></a>
 <a class="index-entry-id" id="index-context"></a>
@@ -2569,7 +2611,6 @@ as the reference.  References must be delimited by square 
brackets, must
 begin with a word constituent character, and must not be in buffers
 whose names begin with a &lsquo; &rsquo; or &lsquo;*&rsquo; character.
 </p>
-
 <a class="index-entry-id" id="index-ibtypes-mail_002daddress"></a>
 <a class="index-entry-id" id="index-e_002dmail-address"></a>
 <a class="index-entry-id" id="index-rolo-address"></a>
@@ -3386,47 +3427,141 @@ Next: <a href="#Renaming" accesskey="n" 
rel="next">Renaming</a>, Previous: <a hr
 </div>
 <h4 class="subsection" id="Creation-1">4.7.1 Creation</h4>
 
-<p>Creating explicit buttons is fun and easy.  You can always try them
-out immediately after creating them or can utilize the Assist Key to
-verify what buttons do.  There are two ways to create them: by
-dragging between windows with the Action Mouse Key or by using the
-Hyperbole menus.
+<p>Creating explicit buttons is fun and easy.  You can always try them out
+immediately after creating them or can utilize the Assist Key to verify
+what buttons do.
+</p>
+<p>If you want to create an explicit link button to somewhere within an Emacs
+window, then simply drag with the Action Mouse Key from an editable buffer
+(outside of a draggable item) to the target buffer.
+</p>
+<p>Alternatively, the Hyperbole minibuffer menu item, Ebut/Create, will
+create any type of explicit button, but requires a few steps.
+</p>
+<p>The next two subsections examine explicit button creation and
+modification in detail.
 </p>
 
 <ul class="mini-toc">
-<li><a href="#By-Dragging" accesskey="1">Creation Via Action Key Drags</a></li>
-<li><a href="#By-Menu" accesskey="2">Creation Via Menus</a></li>
+<li><a href="#By-Menu" accesskey="1">Creation Via Menus</a></li>
+<li><a href="#By-Link" accesskey="2">Creation Via Buffer Link</a></li>
+<li><a href="#By-Dragging" accesskey="3">Creation Via Action Key Drags</a></li>
 </ul>
 <hr>
-<div class="subsubsection-level-extent" id="By-Dragging">
+<div class="subsubsection-level-extent" id="By-Menu">
 <div class="nav-panel">
 <p>
-Next: <a href="#By-Menu" accesskey="n" rel="next">Creation Via Menus</a>, 
Previous: <a href="#Creation" accesskey="p" rel="prev">Creation</a>, Up: <a 
href="#Creation" accesskey="u" rel="up">Creation</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#By-Link" accesskey="n" rel="next">Creation Via Buffer 
Link</a>, Previous: <a href="#Creation" accesskey="p" rel="prev">Creation</a>, 
Up: <a href="#Creation" accesskey="u" rel="up">Creation</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
 </div>
-<h4 class="subsubsection" id="Creation-Via-Action-Key-Drags">4.7.1.1 Creation 
Via Action Key Drags</h4>
+<h4 class="subsubsection" id="Creation-Via-Menus">4.7.1.1 Creation Via 
Menus</h4>
 
+<a class="index-entry-id" id="index-link-creation-1"></a>
+<a class="index-entry-id" id="index-creating-explicit-links"></a>
 <a class="index-entry-id" id="index-explicit-button-creation"></a>
-<a class="index-entry-id" id="index-button-creation"></a>
-<a class="index-entry-id" id="index-creating-buttons"></a>
-<a class="index-entry-id" id="index-link-creation"></a>
-<a class="index-entry-id" id="index-creating-links"></a>
-<a class="index-entry-id" id="index-direct-link-creation"></a>
+<a class="index-entry-id" id="index-menu_002c-Ebut"></a>
+<a class="index-entry-id" id="index-menu-item_002c-Explicit_002dButton"></a>
+<a class="index-entry-id" id="index-menu-item_002c-Ebut_002fCreate"></a>
+<a class="index-entry-id" id="index-menu-item_002c-Ebut_002fEdit"></a>
+<a class="index-entry-id" id="index-C_002dh-h-e"></a>
+<a class="index-entry-id" id="index-C_002dh-h-e-c"></a>
+<a class="index-entry-id" id="index-C_002dh-h-e-e"></a>
+<p>Explicit buttons are managed with the Hyperbole Ebut/ menu accessed with
+<kbd class="kbd">{C-h h e}</kbd>.  The Create item, <kbd class="kbd">{C-h h e 
c}</kbd>, creates any type of
+explicit button.  It prompts for an explicit button label (default is any
+selected region), an action type, and the action&rsquo;s associated arguments.
+It then creates the button at point and surrounds the label with
+&lt;(explicit button delimiters)&gt; like so, to indicate success.
+</p>
+<p>You can use the direct selection techniques mentioned in <a class="ref" 
href="#Smart-Key-Argument-Selection">Smart Key Argument Selection</a>, to 
select any completion-based arguments.  If you do
+not mark a region before invoking the button create command, you will be
+prompted for both a label and a target buffer for the button and the
+delimited label text will be inserted into the target buffer after a
+successful button creation.
+</p>
+<a class="index-entry-id" id="index-button-instance"></a>
+<a class="index-entry-id" id="index-instance-number"></a>
+<p>If a previous button with the same label exists in the same buffer,
+Hyperbole will add an <em class="dfn">instance number</em> to the label when 
it adds
+the delimiters so that the name is unique.  Thus, you don&rsquo;t have to
+worry about accidental button name conflicts.  If you want the same
+button to appear in multiple places within the buffer, just enter the
+label again and delimit it yourself or copy and paste the button with
+its delimiters.  Hyperbole will interpret all occurrences of the same
+delimited label within a buffer as the same button.
+</p>
+<hr>
+</div>
+<div class="subsubsection-level-extent" id="By-Link">
+<div class="nav-panel">
+<p>
+Next: <a href="#By-Dragging" accesskey="n" rel="next">Creation Via Action Key 
Drags</a>, Previous: <a href="#By-Menu" accesskey="p" rel="prev">Creation Via 
Menus</a>, Up: <a href="#Creation" accesskey="u" rel="up">Creation</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<h4 class="subsubsection" id="Creation-Via-Buffer-Link">4.7.1.2 Creation Via 
Buffer Link</h4>
+
+<a class="index-entry-id" id="index-explicit-link-creation"></a>
+<a class="index-entry-id" id="index-menu-item_002c-Ebut_002fLink"></a>
+<a class="index-entry-id" id="index-source-point"></a>
+<a class="index-entry-id" id="index-referent-point"></a>
+<a class="index-entry-id" id="index-C_002dh-h-e-l"></a>
+<p>If you have exactly two Emacs windows in your current frame or exactly
+two windows visible across two Emacs frames, you can quickly create
+explicit link buttons from your current point (source) to the point in
+the other window (referent).  Simply use the Link menu item, <kbd 
class="kbd">{C-h h
+e l}</kbd>, to create a new explicit link button or to rename the one at point.
+Hyperbole will either use the selected region as the new button label or
+will prompt you for it.  It will then automatically choose the link type
+based on the referent location and will either update the button at point
+or create a new one.
+</p>
+<p>With more than two windows on screen, Hyperbole will prompt you to choose
+the referent window and its associated point to which to link.  If the
+Ace Window package is installed and active, this will be used to choose
+the window; otherwise, you will be prompted to select it by mouse.
+</p>
+<hr>
+</div>
+<div class="subsubsection-level-extent" id="By-Dragging">
+<div class="nav-panel">
+<p>
+Previous: <a href="#By-Link" accesskey="p" rel="prev">Creation Via Buffer 
Link</a>, Up: <a href="#Creation" accesskey="u" rel="up">Creation</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<h4 class="subsubsection" id="Creation-Via-Action-Key-Drags">4.7.1.3 Creation 
Via Action Key Drags</h4>
+
+<a class="index-entry-id" 
id="index-mouse-drag_002c-explicit-link-creation"></a>
+<a class="index-entry-id" id="index-drag-1"></a>
+<a class="index-entry-id" id="index-Assist-Key-drag-1"></a>
+<p>Alternatively, to create an explicit link button to something
+displayed within an Emacs window (the referent), simply drag with the
+Assist (not the Action) Mouse Key depressed from an editable source
+window to another window with the desired link referent and then
+release.  The drag must start outside of a draggable item,
+see <a class="pxref" href="#Displaying-Items">Displaying Items</a>.  Hyperbole 
will either automatically select
+the button type based on the referent context or will prompt you to
+select from one of a few possible link types.
+</p>
+<a class="index-entry-id" id="index-explicit-button-creation-1"></a>
+<a class="index-entry-id" id="index-link-creation-2"></a>
+<a class="index-entry-id" id="index-creating-explicit-links-1"></a>
 <a class="index-entry-id" id="index-mouse-drag_002c-link-creation"></a>
-<a class="index-entry-id" id="index-drag"></a>
+<a class="index-entry-id" id="index-drag-2"></a>
 <a class="index-entry-id" id="index-Action-Key-drag"></a>
-<p>The most efficient way to create an explicit link button interactively
-is to use the Action Mouse Key to drag from a non-read-only button
-source window to a window showing its desired link referent.  More
-specifically, you should split your current Emacs frame into two
+<p>The most efficient way to create an explicit link button to something
+within an Emacs window is to use the Action Mouse Key to drag from an
+editable source window to another window with the desired link referent.
+The drag must start outside of a draggable item, see <a class="pxref" 
href="#Displaying-Items">Displaying Items</a>.  Hyperbole will prompt for the 
button text label and then will
+either automatically select the button action type based on the referent
+context or will prompt you to select from one of a few possible link
+types.
+</p>
+<p>In detail, you should split your current Emacs frame into two
 windows: one which contains the point at which you want a button to be
 inserted and another which shows the point to which you want to link.
-Depress the Action Mouse Key at the source point for the button
-(anywhere but on a paired delimiter such as double quotes or
-parentheses).  Then drag to the other window and release the Action
-Mouse Key at the start point of the link referent.  The process
-becomes quite simple with a little practice. (See <a class="xref" 
href="#By-Menu">Creation
-Via Menus</a>, for a more detailed explanation of the explicit button
-creation process).
+Depress the Action Mouse Key at the source point for the button (anywhere
+but on a paired delimiter such as double quotes or parentheses).  Then
+drag to the other window and release the Action Mouse Key at the start
+point of the link referent.  The process becomes quite simple with a
+little practice. (See <a class="xref" href="#By-Menu">Creation Via Menus</a>, 
for a more detailed
+explanation of the explicit button creation process).
 </p>
 <p>If a region was selected prior to the start of the drag, it is used as
 the button label, otherwise, you are prompted for the label.  Then
@@ -3465,54 +3600,6 @@ Buffer without File      link-to-buffer-tmp
 </div>
 
 
-<hr>
-</div>
-<div class="subsubsection-level-extent" id="By-Menu">
-<div class="nav-panel">
-<p>
-Previous: <a href="#By-Dragging" accesskey="p" rel="prev">Creation Via Action 
Key Drags</a>, Up: <a href="#Creation" accesskey="u" rel="up">Creation</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Key-Index" title="Index" 
rel="index">Index</a>]</p>
-</div>
-<h4 class="subsubsection" id="Creation-Via-Menus">4.7.1.2 Creation Via 
Menus</h4>
-
-<p>You may instead use the Hyperbole menus to create explicit buttons.
-First, mark a short region of text in any fashion allowed by Emacs
-and then select the Hyperbole menu item sequence, Ebut/Create.  You will
-be prompted for the button&rsquo;s label with the marked region as the
-default.  If you accept the default and enter the rest of the
-information you are prompted for, the button will be created within the
-current buffer and Hyperbole will surround the marked region with
-explicit button delimiters to indicate success.
-</p>
-<p>If you do not mark a region before invoking the button create command,
-you will be prompted for both a label and a target buffer for the button
-and the delimited label text will be inserted into the target buffer
-after a successful button creation.
-</p>
-<p>After Hyperbole has the button label and its target buffer, it will
-prompt you for an action type for the button.  Use the <kbd 
class="kbd">{?}</kbd>
-completion list key to see the available types.  The type selected
-determines any following values for which you are prompted.
-</p>
-<a class="index-entry-id" id="index-button-instance"></a>
-<a class="index-entry-id" id="index-instance-number"></a>
-<p>If a previous button with the same label exists in the same buffer,
-Hyperbole will add an <em class="dfn">instance number</em> to the label when 
it adds
-the delimiters so that the name is unique.  Thus, you don&rsquo;t have to
-worry about accidental button name conflicts.  If you want the same
-button to appear in multiple places within the buffer, just enter the
-label again and delimit it yourself or copy and paste the button with
-its delimiters.  Hyperbole will interpret all occurrences of the same
-delimited label within a buffer as the same button.
-</p>
-<a class="index-entry-id" id="index-link_002c-creation"></a>
-<p>If you create link buttons using the Hyperbole menus, the best
-technique is to place on screen both the source buffer for the button
-and the buffer to which it will link.  Mark the region of text to use
-as your button label, invoke the button create command from the menu,
-choose an action type which begins with <code class="code">link-to-</code> and 
then use
-the direct selection techniques mentioned in <a class="ref" 
href="#Smart-Key-Argument-Selection">Smart Key Argument Selection</a>, to 
select the link referent.
-</p>
-
 <hr>
 </div>
 </div>
@@ -4038,7 +4125,7 @@ access to popular web search engines.
 </li><li>RemoveLines -      Following point, remove all lines that match 
regexp.
 
 </li><li>SaveLines -        Following point, keep only lines that match regexp.
-<a class="index-entry-id" id="index-menu_002c-Find_002fWeb"></a>
+<a class="index-entry-id" id="index-menu-item_002c-Find_002fWeb"></a>
 <a class="index-entry-id" id="index-menu_002c-Web"></a>
 <a class="index-entry-id" id="index-searching-the-web"></a>
 <a class="index-entry-id" id="index-web-search"></a>
@@ -4743,7 +4830,7 @@ See <a class="xref" 
href="#Autonumbering">Autonumbering</a>.
 cell.  User-defined attributes may also be added to cells.  See <a 
class="xref" href="#Cell-Attributes">Cell Attributes</a>.
 </p>
 <a class="index-entry-id" id="index-file_002c-EXAMPLE_002ekotl"></a>
-<a class="index-entry-id" id="index-menu_002c-Outline_002fExample"></a>
+<a class="index-entry-id" id="index-menu-item_002c-Kotl_002fExample"></a>
 <a class="index-entry-id" id="index-C_002dh-h-k-e"></a>
 <p>This chapter expands on the information given in the <samp 
class="file">EXAMPLE.kotl</samp>
 file included with Hyperbole.  Use <kbd class="kbd">{C-h h k e}</kbd> to 
display that
@@ -6543,7 +6630,7 @@ move to the end of the entire subtree.
 <a class="index-entry-id" id="index-datestamps"></a>
 <a class="index-entry-id" id="index-rolo_002c-datestamps"></a>
 <a class="index-entry-id" id="index-customize_002c-rolo-datestamps"></a>
-<a class="index-entry-id" id="index-menu_002c-Toggle_002dRolo_002dDates"></a>
+<a class="index-entry-id" 
id="index-menu-item_002c-Rolo_002fToggle_002dRolo_002dDates"></a>
 <a class="index-entry-id" id="index-customize_002c-rolo-edits"></a>
 <a class="index-entry-id" id="index-customize_002c-rolo-additions"></a>
 <a class="index-entry-id" id="index-hyrolo_002dedit_002dhook"></a>
@@ -7358,14 +7445,12 @@ type.
 <a class="index-entry-id" id="index-ibtype_002c-return-val"></a>
 <a class="index-entry-id" id="index-ibtype_002c-actype"></a>
 <p>The body of an implicit button type is a predicate which determines
-whether or not point is within an implicit button of the type.  If not,
-the predicate returns &lsquo;<samp class="samp">nil</samp>&rsquo;.  If so, it 
may optionally setup to
-flash the button and then to perform one or more actions.  A call of the
-form: <code class="code">(ibut:label-set label start-pos end-pos)</code> is 
used to setup
-the button flashing, if desired.  This is then typically immediately
-followed by an action invocation of the form:
-<code class="code">(hact 'actype &amp;rest actype-arguments)</code> where 
<code class="code">actype</code> is a
-Hyperbole action type symbol or an Emacs Lisp function name or lambda;
+whether or not point is within an implicit button of the type.  If
+not, the predicate returns &lsquo;<samp class="samp">nil</samp>&rsquo;.  If 
the type is delimited,
+Hyperbole automatically sets up to flash the button when activated.
+Action invocations have the form: <code class="code">(hact 'actype &amp;rest
+actype-arguments)</code> where <code class="code">actype</code> is a Hyperbole 
action type
+symbol or an Emacs Lisp function name or lambda;
 <code class="code">actype-arguments</code> are the arguments fed to the action 
invocation
 when an implicit button of the type is activated.
 </p>
@@ -8807,7 +8892,7 @@ Next: <a href="#Using-URLs-with-Find_002dFile" 
accesskey="n" rel="next">Using UR
 </div>
 <h4 class="subsection" id="Web-Search-Engines-1">B.2.5 Web Search Engines</h4>
 
-<a class="index-entry-id" id="index-menu_002c-Find_002fWeb-1"></a>
+<a class="index-entry-id" id="index-menu_002c-Find_002fWeb"></a>
 <a class="index-entry-id" id="index-menu_002c-Web-1"></a>
 <a class="index-entry-id" id="index-menu_002c-Cust_002fWeb_002dSearch"></a>
 <a class="index-entry-id" id="index-C_002dh-h-c-w"></a>
@@ -9072,7 +9157,7 @@ is made only if the key is not bound prior to 
initializing Hyperbole.
 </p>
 <a class="index-entry-id" id="index-C_002dc-_002f-1"></a>
 <a class="index-entry-id" id="index-C_002dh-h-f-w-1"></a>
-<a class="index-entry-id" id="index-menu_002c-Find_002fWeb-2"></a>
+<a class="index-entry-id" id="index-menu_002c-Find_002fWeb-1"></a>
 <a class="index-entry-id" id="index-menu_002c-Web-2"></a>
 <a class="index-entry-id" id="index-searching-the-web-1"></a>
 <a class="index-entry-id" id="index-web-search-menu-1"></a>
@@ -10072,7 +10157,7 @@ the thing.
 <a class="index-entry-id" id="index-Smart-Mouse-Key"></a>
 <a class="index-entry-id" id="index-Action-Mouse-Key"></a>
 <a class="index-entry-id" id="index-Assist-Mouse-Key"></a>
-<a class="index-entry-id" id="index-drag-1"></a>
+<a class="index-entry-id" id="index-drag-3"></a>
 <a class="index-entry-id" id="index-copy-and-yank"></a>
 <a class="index-entry-id" id="index-kill-and-yank"></a>
 <a class="index-entry-id" id="index-yanking"></a>
@@ -10229,16 +10314,20 @@ Next: <a href="#Smart-Mouse-Drags-within-a-Window" 
accesskey="n" rel="next">Smar
 
 <div class="format">
 <div class="group"><pre class="format-preformatted">Otherwise, if dragged from 
inside one window to another:
-  ACTION KEY
+  ACTION AND ASSIST KEYS
      (1) If depress was on a buffer name in Buffer-menu/ibuffer mode or on
          a file/directory in dired mode, displays the item in window of 
release.
+         If the drag start position is within a button, displays the button
+         referent in window of release.
          See <code class="code">hmouse-drag-item-mode-forms</code> for how to 
allow for draggable
          items in other modes.
-     (2) Otherwise, creates a new link button at the drag start location, 
linked
-         to the drag end location.  If the drag start position is within a 
button,
-         this modifies the button to link to the drag end location.
-  ASSIST KEY
-     Swap buffers in the two windows.
+     (2) Otherwise, creates a new link button at the drag start location,
+         linked to the drag end location.  Action Key creates an explicit 
button;
+         Assist Key creates an implicit button.
+
+         In Hyperbole versions prior to 9, Assist Key drags between windows 
would
+         swap buffers.  In version 9 and above, start or end the drag between
+         windows on a modeline to get this same behavior.
 </pre></div></div>
 
 <hr>
@@ -10373,7 +10462,6 @@ Previous: <a href="#Smart-Mouse-Keys" accesskey="p" 
rel="prev">Smart Mouse Keys<
 <li><a href="#Smart-Key-_002d-Bookmark-Mode">Smart Key - Bookmark Mode</a></li>
 <li><a href="#Smart-Key-_002d-Pages-Directory-Mode">Smart Key - Pages 
Directory Mode</a></li>
 <li><a href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source 
Code</a></li>
-<li><a href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier 
Menu Mode</a></li>
 <li><a href="#Smart-Key-_002d-C-Source-Code">Smart Key - C Source Code</a></li>
 <li><a href="#Smart-Key-_002d-C_002b_002b-Source-Code">Smart Key - C++ Source 
Code</a></li>
 <li><a href="#Smart-Key-_002d-Assembly-Source-Code">Smart Key - Assembly 
Source Code</a></li>
@@ -10382,6 +10470,7 @@ Previous: <a href="#Smart-Mouse-Keys" accesskey="p" 
rel="prev">Smart Mouse Keys<
 <li><a href="#Smart-Key-_002d-JavaScript-Source-Code">Smart Key - JavaScript 
Source Code</a></li>
 <li><a href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key - 
Objective-C Source Code</a></li>
 <li><a href="#Smart-Key-_002d-Fortran-Source-Code">Smart Key - Fortran Source 
Code</a></li>
+<li><a href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier 
Menu Mode</a></li>
 <li><a href="#Smart-Key-_002d-Occurrence-Matches">Smart Key - Occurrence 
Matches</a></li>
 <li><a href="#Smart-Key-_002d-Calendar-Mode">Smart Key - Calendar Mode</a></li>
 <li><a href="#Smart-Key-_002d-Man-Page-Apropos">Smart Key - Man Page 
Apropos</a></li>
@@ -10461,8 +10550,10 @@ Next: <a href="#Smart-Key-_002d-Ivy" accesskey="n" 
rel="next">Smart Key - Ivy</a
 
      (10) In any other context besides the end of a line, invoke the Org mode
           standard binding of <kbd class="kbd">{M-<kbd 
class="key">RET</kbd>}</kbd>, <code class="code">org-meta-return</code>.
+</pre></div></div>
 
-   When the ASSIST KEY is pressed, it behaves just like the Action Key except
+<div class="format">
+<div class="group"><pre class="format-preformatted">   When the ASSIST KEY is 
pressed, it behaves just like the Action Key except
    in these contexts:
 
      (1) If on an Org todo keyword, move to the first todo keyword in
@@ -10523,7 +10614,7 @@ programming tags within files.  Use the Emacs package 
manager to install it and
 then invoke it with <kbd class="kbd">{M-x treemacs <kbd 
class="key">RET</kbd>}</kbd> and quit with <kbd class="kbd">{q}</kbd>.
 </p>
 <p>Treemacs items may be dragged with the Action Key to other windows for 
display.
-See <a class="xref" href="#Displaying-File-and-Buffer-Items">Displaying File 
and Buffer Items</a>.
+See <a class="xref" href="#Displaying-Items">Displaying Items</a>.
 </p>
 <div class="format">
 <div class="group"><pre class="format-preformatted">When in a Treemacs file 
browser buffer:
@@ -10886,7 +10977,7 @@ markup language), and not at the end of a line:
 Note that the press must be on the first character of the delimiter of
 the thing.
 
-<a class="index-entry-id" id="index-Smart-Mouse-Key-1"></a><a 
class="index-entry-id" id="index-Action-Mouse-Key-1"></a><a 
class="index-entry-id" id="index-Assist-Mouse-Key-1"></a><a 
class="index-entry-id" id="index-drag-2"></a><a class="index-entry-id" 
id="index-copy-and-yank-2"></a><a class="index-entry-id" 
id="index-kill-and-yank-2"></a><a class="index-entry-id" 
id="index-yanking-2"></a><a class="index-entry-id" 
id="index-pasting-a-region-2"></a>There are also drag actions that work on [...]
+<a class="index-entry-id" id="index-Smart-Mouse-Key-1"></a><a 
class="index-entry-id" id="index-Action-Mouse-Key-1"></a><a 
class="index-entry-id" id="index-Assist-Mouse-Key-1"></a><a 
class="index-entry-id" id="index-drag-4"></a><a class="index-entry-id" 
id="index-copy-and-yank-2"></a><a class="index-entry-id" 
id="index-kill-and-yank-2"></a><a class="index-entry-id" 
id="index-yanking-2"></a><a class="index-entry-id" 
id="index-pasting-a-region-2"></a>There are also drag actions that work on [...]
 region is selected, when the Action Mouse Key is dragged from a thing
 delimiter to another location, it copies the thing and yanks it at the
 new location.  Similarly, the Assist Mouse Key kills the thing at its
@@ -11046,7 +11137,7 @@ When pressed on a pages-directory-mode entry line:
 <div class="subsection-level-extent" id="Smart-Key-_002d-Python-Source-Code">
 <div class="nav-panel">
 <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>
+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>
 </div>
 <h4 class="subsection" id="Smart-Key-_002d-Python-Source-Code-1">E.2.23 Smart 
Key - Python Source Code</h4>
 <div class="format">
@@ -11072,38 +11163,14 @@ within a Python buffer:
      Jumps to the next tag matching an identifier at point.
 </pre></div></div>
 
-<hr>
-</div>
-<div class="subsection-level-extent" id="Smart-Key-_002d-Identifier-Menu-Mode">
-<div class="nav-panel">
-<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>
-<h4 class="subsection" id="Smart-Key-_002d-Identifier-Menu-Mode-1">E.2.24 
Smart Key - Identifier Menu Mode</h4>
-
-<div class="format">
-<div class="group"><pre class="format-preformatted">This works only for 
identifiers defined within the same source file in
-which they are referenced.  It requires either Emacs&rsquo; imenu 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
-     Jumps to the source definition within the current buffer of the 
identifier at point.
-  ASSIST KEY
-     Prompts with completion for an identifier defined within the buffer and 
then jumps
-     to the its source definition.
-</pre></div></div>
-
 <hr>
 </div>
 <div class="subsection-level-extent" id="Smart-Key-_002d-C-Source-Code">
 <div class="nav-panel">
 <p>
-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>
+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-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>
-<h4 class="subsection" id="Smart-Key-_002d-C-Source-Code-1">E.2.25 Smart Key - 
C Source Code</h4>
+<h4 class="subsection" id="Smart-Key-_002d-C-Source-Code-1">E.2.24 Smart Key - 
C Source Code</h4>
 
 <a class="index-entry-id" 
id="index-smart_002dc_002dcpp_002dinclude_002dpath"></a>
 <a class="index-entry-id" id="index-smart_002dc_002dinclude_002dpath"></a>
@@ -11135,7 +11202,7 @@ Next: <a 
href="#Smart-Key-_002d-C_002b_002b-Source-Code" accesskey="n" rel="next
 <p>
 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>
-<h4 class="subsection" id="Smart-Key-_002d-C_002b_002b-Source-Code-1">E.2.26 
Smart Key - C++ Source Code</h4>
+<h4 class="subsection" id="Smart-Key-_002d-C_002b_002b-Source-Code-1">E.2.25 
Smart Key - C++ Source Code</h4>
 
 <a class="index-entry-id" 
id="index-c_002b_002b_002dcpp_002dinclude_002dpath"></a>
 <a class="index-entry-id" id="index-c_002b_002b_002dinclude_002dpath"></a>
@@ -11188,7 +11255,7 @@ buffer:
 <p>
 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>
-<h4 class="subsection" id="Smart-Key-_002d-Assembly-Source-Code-1">E.2.27 
Smart Key - Assembly Source Code</h4>
+<h4 class="subsection" id="Smart-Key-_002d-Assembly-Source-Code-1">E.2.26 
Smart Key - Assembly Source Code</h4>
 
 <a class="index-entry-id" id="index-smart_002dasm_002dinclude_002dpath"></a>
 <div class="format">
@@ -11213,7 +11280,7 @@ Next: <a href="#Smart-Key-_002d-Lisp-Source-Code" 
accesskey="n" rel="next">Smart
 <p>
 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>
-<h4 class="subsection" id="Smart-Key-_002d-Lisp-Source-Code-1">E.2.28 Smart 
Key - Lisp Source Code</h4>
+<h4 class="subsection" id="Smart-Key-_002d-Lisp-Source-Code-1">E.2.27 Smart 
Key - Lisp Source Code</h4>
 
 <div class="format">
 <div class="group"><pre class="format-preformatted"><a class="index-entry-id" 
id="index-change_002dlog_002dmode"></a><a class="index-entry-id" 
id="index-lisp-identifier"></a><a class="index-entry-id" 
id="index-elisp-identifier"></a>When pressed on a Lisp symbol within any of 
these types of buffers
@@ -11238,7 +11305,7 @@ identifier:
 <p>
 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>
-<h4 class="subsection" id="Smart-Key-_002d-Java-Source-Code-1">E.2.29 Smart 
Key - Java Source Code</h4>
+<h4 class="subsection" id="Smart-Key-_002d-Java-Source-Code-1">E.2.28 Smart 
Key - Java Source Code</h4>
 
 <a class="index-entry-id" id="index-smart_002djava_002dpackage_002dpath"></a>
 <div class="format">
@@ -11281,7 +11348,7 @@ buffer:
 <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>
-<h4 class="subsection" id="Smart-Key-_002d-JavaScript-Source-Code-1">E.2.30 
Smart Key - JavaScript Source Code</h4>
+<h4 class="subsection" id="Smart-Key-_002d-JavaScript-Source-Code-1">E.2.29 
Smart Key - JavaScript Source Code</h4>
 
 <div class="format">
 <div class="group"><pre class="format-preformatted">When pressed within a 
JavaScript source code file:
@@ -11302,7 +11369,7 @@ Next: <a 
href="#Smart-Key-_002d-Objective_002dC-Source-Code" accesskey="n" rel="
 <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>
-<h4 class="subsection" 
id="Smart-Key-_002d-Objective_002dC-Source-Code-1">E.2.31 Smart Key - 
Objective-C Source Code</h4>
+<h4 class="subsection" 
id="Smart-Key-_002d-Objective_002dC-Source-Code-1">E.2.30 Smart Key - 
Objective-C Source Code</h4>
 
 <a class="index-entry-id" id="index-objc_002dcpp_002dinclude_002dpath"></a>
 <a class="index-entry-id" id="index-objc_002dinclude_002dpath"></a>
@@ -11351,9 +11418,9 @@ OO-Browser):
 <div class="subsection-level-extent" id="Smart-Key-_002d-Fortran-Source-Code">
 <div class="nav-panel">
 <p>
-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>
+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-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>
-<h4 class="subsection" id="Smart-Key-_002d-Fortran-Source-Code-1">E.2.32 Smart 
Key - Fortran Source Code</h4>
+<h4 class="subsection" id="Smart-Key-_002d-Fortran-Source-Code-1">E.2.31 Smart 
Key - Fortran Source Code</h4>
 
 <div class="format">
 <div class="group"><pre class="format-preformatted">When pressed within a 
Fortran source code file:
@@ -11364,12 +11431,36 @@ Next: <a href="#Smart-Key-_002d-Occurrence-Matches" 
accesskey="n" rel="next">Sma
      directory or any of its ancestor directories.
 </pre></div></div>
 
+<hr>
+</div>
+<div class="subsection-level-extent" id="Smart-Key-_002d-Identifier-Menu-Mode">
+<div class="nav-panel">
+<p>
+Next: <a href="#Smart-Key-_002d-Occurrence-Matches" accesskey="n" 
rel="next">Smart Key - Occurrence Matches</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>
+<h4 class="subsection" id="Smart-Key-_002d-Identifier-Menu-Mode-1">E.2.32 
Smart Key - Identifier Menu Mode</h4>
+
+<div class="format">
+<div class="group"><pre class="format-preformatted">This works only for 
identifiers defined within the same source file in
+which they are referenced.  It requires either Emacs&rsquo; imenu 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
+     Jumps to the source definition within the current buffer of the 
identifier at point.
+  ASSIST KEY
+     Prompts with completion for an identifier defined within the buffer and 
then jumps
+     to the its source definition.
+</pre></div></div>
+
 <hr>
 </div>
 <div class="subsection-level-extent" id="Smart-Key-_002d-Occurrence-Matches">
 <div class="nav-panel">
 <p>
-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>
+Next: <a href="#Smart-Key-_002d-Calendar-Mode" accesskey="n" rel="next">Smart 
Key - Calendar Mode</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>
 <h4 class="subsection" id="Smart-Key-_002d-Occurrence-Matches-1">E.2.33 Smart 
Key - Occurrence Matches</h4>
 
@@ -12628,6 +12719,10 @@ Next: <a href="#Function" accesskey="n" 
rel="next">Function, Variable and File I
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-C_002dt"><code>C-h h 
C-t</code></a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-d-d"><code>C-h h d d</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Hyperbole-Overview">Hyperbole 
Overview</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-d-i"><code>C-h h d i</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Documentation">Documentation</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-e"><code>C-h h e</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Menu">By Menu</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-e-c"><code>C-h h e c</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Menu">By Menu</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-e-e"><code>C-h h e e</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Menu">By Menu</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-e-l"><code>C-h h e l</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Link">By Link</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-f-w"><code>C-h h f w</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Web-Search-Engines">Web Search 
Engines</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-f-w-1"><code>C-h h f 
w</code></a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Default-Hyperbole-Bindings">Default Hyperbole Bindings</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-g"><code>C-h h g</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Global-Buttons">Global 
Buttons</a></td></tr>
@@ -12637,6 +12732,8 @@ Next: <a href="#Function" accesskey="n" 
rel="next">Function, Variable and File I
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-i-c"><code>C-h h i c</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Buttons">Implicit 
Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-i-e"><code>C-h h i e</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Buttons">Implicit 
Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-i-l"><code>C-h h i l</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Buttons">Implicit 
Buttons</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-i-n"><code>C-h h i n</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Buttons">Implicit 
Buttons</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-i-r"><code>C-h h i r</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Buttons">Implicit 
Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-k-e"><code>C-h h k e</code></a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Koutliner">Koutliner</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-k-f-d"><code>C-h h k f 
d</code></a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Exporting">Exporting</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-C_002dh-h-k-f-f"><code>C-h h k f 
f</code></a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Inserting-and-Importing">Inserting and Importing</a></td></tr>
@@ -13285,6 +13382,7 @@ Next: <a href="#Concept-Index" accesskey="n" 
rel="next">Concept Index</a>, Previ
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-hui_002dselect_002dgoto_002dmatching_002dtag"><code>hui-select-goto-matching-tag</code></a>:</td><td>&nbsp;</td><td
 class="printindex-index-section"><a href="#Smart-Key-Thing-Selection">Smart 
Key Thing Selection</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-hui_002dselect_002dthing"><code>hui-select-thing</code></a>:</td><td>&nbsp;</td><td
 class="printindex-index-section"><a href="#Smart-Key-Thing-Selection">Smart 
Key Thing Selection</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-hui_002dselect_002dthing_002dwith_002dmouse"><code>hui-select-thing-with-mouse</code></a>:</td><td>&nbsp;</td><td
 class="printindex-index-section"><a href="#Smart-Key-Thing-Selection">Smart 
Key Thing Selection</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-hui_003aebut_002dlink_002ddirectly"><code>hui:ebut-link-directly</code></a>:</td><td>&nbsp;</td><td
 class="printindex-index-section"><a href="#Keyboard-Drags">Keyboard 
Drags</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-hui_003aebut_002dprompt_002dfor_002daction">hui:ebut-prompt-for-action</a>:</td><td>&nbsp;</td><td
 class="printindex-index-section"><a href="#Action-Types">Action 
Types</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-hui_003aebut_002drename"><code>hui:ebut-rename</code></a>:</td><td>&nbsp;</td><td
 class="printindex-index-section"><a href="#Renaming">Renaming</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-hui_003ahbut_002ddelete_002dconfirm_002dflag">hui:hbut-delete-confirm-flag</a>:</td><td>&nbsp;</td><td
 class="printindex-index-section"><a href="#Deletion">Deletion</a></td></tr>
@@ -13755,6 +13853,8 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-array">array</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Thing-Selection">Thing 
Selection</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-array-1">array</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited 
Things</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-Assist-Key">Assist Key</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Smart-Keys">Smart Keys</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-Assist-Key-drag">Assist Key drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Buttons">Implicit 
Buttons</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-Assist-Key-drag-1">Assist Key drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Dragging">By 
Dragging</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-Assist-Key_002c-listing-attributes">Assist Key, listing 
attributes</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Cell-Attributes">Cell Attributes</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-Assist-Mouse-Key">Assist Mouse Key</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Thing-Selection">Thing 
Selection</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-Assist-Mouse-Key-1">Assist Mouse Key</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited 
Things</a></td></tr>
@@ -13790,7 +13890,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-buffer-menu">buffer menu</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline 
Clicks</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-buffer-menu-1">buffer menu</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Minibuffer-Menu-Activation">Minibuffer Menu Activation</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-buffer-menu-2">buffer menu</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Smart-Key-_002d-Buffer-Menus">Smart 
Key - Buffer Menus</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-buffer-menu-item-drag">buffer menu item 
drag</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer 
Items</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-buffer-menu-item-drag">buffer menu item 
drag</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Displaying-Items">Displaying Items</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-buffer-replace">buffer replace</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Keyboard-Drags">Keyboard 
Drags</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-buffer_002c-bury">buffer, bury</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#HyControl">HyControl</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-buffer_002c-copy">buffer, copy</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Displaying-Buffers">Displaying 
Buffers</a></td></tr>
@@ -13809,7 +13909,6 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-button-attributes-1">button attributes</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Operational-and-Storage-Formats">Operational and Storage 
Formats</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-button-category">button category</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Buttons">Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-button-click">button click</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Smart-Key-_002d-Hyperbole-Buttons">Smart Key - Hyperbole 
Buttons</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-button-creation">button creation</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Dragging">By 
Dragging</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-button-data">button data</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Explicit-Buttons">Explicit 
Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-button-data-saving">button data saving</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Hook-Variables">Hook 
Variables</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-button-deletion">button deletion</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Deletion">Deletion</a></td></tr>
@@ -13940,8 +14039,9 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-copying-things-to-registers">copying things to 
registers</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Default-Hyperbole-Bindings">Default Hyperbole Bindings</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-create-link-button">create link button</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Keyboard-Drags">Keyboard 
Drags</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-create_002dtime-attribute">create-time 
attribute</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Cell-Attributes">Cell Attributes</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-creating-buttons">creating buttons</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Dragging">By 
Dragging</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-creating-links">creating links</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Dragging">By 
Dragging</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-creating-explicit-links">creating explicit 
links</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#By-Menu">By Menu</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-creating-explicit-links-1">creating explicit 
links</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#By-Dragging">By Dragging</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-creating-implicit-links">creating implicit 
links</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-creator-attribute">creator attribute</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Cell-Attributes">Cell 
Attributes</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-credits">credits</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Top">Top</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-cross-referencing">cross referencing</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Koutliner-History">Koutliner 
History</a></td></tr>
@@ -13976,12 +14076,11 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-diagonal-drag">diagonal drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Saving-and-Restoring-Window-Configurations">Saving and Restoring Window 
Configurations</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-diagonal-drag-1">diagonal drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Smart-Mouse-Drags-within-a-Window">Smart Mouse Drags within a 
Window</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-digital-signature">digital signature</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Glossary">Glossary</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-direct-link-creation">direct link 
creation</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#By-Dragging">By Dragging</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-direct-selection">direct selection</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Smart-Key-Argument-Selection">Smart 
Key Argument Selection</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-directory-editor">directory editor</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline 
Clicks</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-dired">dired</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline 
Clicks</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-dired-browsing">dired browsing</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Smart-Key-_002d-Dired-Mode">Smart 
Key - Dired Mode</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-dired-item-drag">dired item drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer 
Items</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-dired-item-drag">dired item drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Displaying-Items">Displaying 
Items</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-dired_002c-images">dired, images</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Smart-Key-_002d-Image-Thumbnails">Smart Key - Image 
Thumbnails</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-dired_002dsidebar_002dmode">dired-sidebar-mode</a>:</td><td>&nbsp;</td><td
 class="printindex-index-section"><a 
href="#Smart-Key-_002d-Dired-Sidebar-Mode">Smart Key - Dired Sidebar 
Mode</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-disable-Hyperbole">disable Hyperbole</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Invocation">Invocation</a></td></tr>
@@ -13998,26 +14097,29 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-distributed-collaboration">distributed 
collaboration</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Koutliner-History">Koutliner History</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-document-identifier">document 
identifier</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-double-click">double click</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Smart-Key-Argument-Selection">Smart 
Key Argument Selection</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag">drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Dragging">By 
Dragging</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag-1">drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Thing-Selection">Thing 
Selection</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag-2">drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited 
Things</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag">drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Buttons">Implicit 
Buttons</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag-1">drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Dragging">By 
Dragging</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag-2">drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Dragging">By 
Dragging</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag-3">drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Thing-Selection">Thing 
Selection</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag-4">drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited 
Things</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag-emulation">drag emulation</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Keyboard-Drags">Keyboard 
Drags</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag-item">drag item</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Keyboard-Drags">Keyboard 
Drags</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-buffer-menu-item">drag, buffer menu 
item</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer 
Items</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-buffer-menu-item">drag, buffer menu 
item</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Displaying-Items">Displaying Items</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-buffer-swap">drag, buffer 
swap</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Swapping-Buffers">Swapping Buffers</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-clone-window">drag, clone 
window</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Cloning-Windows">Cloning Windows</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-copy-buffer">drag, copy 
buffer</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Displaying-Buffers">Displaying Buffers</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-diagonal">drag, diagonal</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Saving-and-Restoring-Window-Configurations">Saving and Restoring Window 
Configurations</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-diagonal-1">drag, diagonal</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Smart-Mouse-Drags-within-a-Window">Smart Mouse Drags within a 
Window</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-dired">drag, dired</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Smart-Key-_002d-Dired-Mode">Smart 
Key - Dired Mode</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-dired-item">drag, dired item</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer 
Items</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-dired-item">drag, dired item</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Displaying-Items">Displaying 
Items</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-horizontal">drag, horizontal</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Creating-and-Deleting-Windows">Creating and Deleting 
Windows</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-horizontal-1">drag, 
horizontal</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Smart-Mouse-Drags-within-a-Window">Smart Mouse Drags within a 
Window</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-Hyperbole-button-referent">drag, Hyperbole button 
referent</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Displaying-Items">Displaying Items</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-move-frame">drag, move frame</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Moving-Frames">Moving 
Frames</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-resize-window">drag, resize 
window</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Resizing-Windows">Resizing Windows</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-side-edge">drag, side edge</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Side_002dby_002dSide-Window-Resizing">Side-by-Side Window 
Resizing</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-Smart-Mouse-Key">drag, Smart Mouse 
Key</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Smart-Mouse-Key-Drags">Smart Mouse Key Drags</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-Treemacs-item">drag, Treemacs 
item</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer 
Items</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-Treemacs-item">drag, Treemacs 
item</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Displaying-Items">Displaying Items</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-vertical">drag, vertical</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Creating-and-Deleting-Windows">Creating and Deleting 
Windows</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-vertical-1">drag, vertical</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Smart-Mouse-Drags-within-a-Window">Smart Mouse Drags within a 
Window</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-drag_002c-window-configuration">drag, window 
configuration</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Saving-and-Restoring-Window-Configurations">Saving and Restoring Window 
Configurations</a></td></tr>
@@ -14068,7 +14170,8 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-expanding">expanding</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Hiding-and-Showing">Hiding and 
Showing</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-explicit-button">explicit button</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Buttons">Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-explicit-button-1">explicit button</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Explicit-Buttons">Explicit 
Buttons</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-explicit-button-creation">explicit button 
creation</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#By-Dragging">By Dragging</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-explicit-button-creation">explicit button 
creation</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#By-Menu">By Menu</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-explicit-button-creation-1">explicit button 
creation</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#By-Dragging">By Dragging</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-explicit-button-deletion">explicit button 
deletion</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Deletion">Deletion</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-explicit-button-editing">explicit button 
editing</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Editing">Editing</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-explicit-button-formats">explicit button 
formats</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Operational-and-Storage-Formats">Operational and Storage 
Formats</a></td></tr>
@@ -14078,6 +14181,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-explicit-button-storage">explicit button 
storage</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Operational-and-Storage-Formats">Operational and Storage 
Formats</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-explicit-button-summary">explicit button 
summary</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Searching-and-Summarizing">Searching and Summarizing</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-explicit-button_002c-programmatic-creation">explicit button, 
programmatic creation</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Programmatic-Button-Creation">Programmatic Button Creation</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-explicit-link-creation">explicit link 
creation</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#By-Link">By Link</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-exporting">exporting</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Exporting">Exporting</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-exporting-an-outline">exporting an 
outline</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Relocating-and-Copying">Relocating and Copying</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-exporting_002c-Koutliner">exporting, 
Koutliner</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menu-Commands">Menu Commands</a></td></tr>
@@ -14191,6 +14295,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-Hyperbole">Hyperbole</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Hyperbole-Overview">Hyperbole 
Overview</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-Hyperbole-API">Hyperbole API</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Embedding-Hyperbole">Embedding 
Hyperbole</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-Hyperbole-applications">Hyperbole 
applications</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Hyperbole-Overview">Hyperbole Overview</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-Hyperbole-button-drag">Hyperbole button 
drag</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Displaying-Items">Displaying Items</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-Hyperbole-data-model">Hyperbole data 
model</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Explicit-Buttons">Explicit Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-Hyperbole-demo">Hyperbole demo</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Manual-Overview">Manual 
Overview</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-Hyperbole-features">Hyperbole features</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Hyperbole-Overview">Hyperbole 
Overview</a></td></tr>
@@ -14248,12 +14353,14 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-implicit-action-button">implicit action 
button</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Action-Buttons">Action Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-implicit-button">implicit button</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Buttons">Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-implicit-button-1">implicit button</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Buttons">Implicit 
Buttons</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-implicit-button-creation">implicit button 
creation</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-implicit-button-labels">implicit button 
labels</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-implicit-button-link">implicit button 
link</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-implicit-button-names">implicit button 
names</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-implicit-button-type">implicit button 
type</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-implicit-button-type-1">implicit button 
type</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Programmatic-Implicit-Button-Types">Programmatic Implicit Button 
Types</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-implicit-button-types">implicit button 
types</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-implicit-link-creation">implicit link 
creation</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-importing">importing</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Inserting-and-Importing">Inserting 
and Importing</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-importing-a-file">importing a file</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Inserting-and-Importing">Inserting 
and Importing</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-importing_002c-Koutliner">importing, 
Koutliner</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menu-Commands">Menu Commands</a></td></tr>
@@ -14378,12 +14485,13 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-link-action-types">link action types</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Action-Types">Action 
Types</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-link-button">link button</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Keyboard-Drags">Keyboard 
Drags</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-link-button-1">link button</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Explicit-Buttons">Explicit 
Buttons</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-link-creation">link creation</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Dragging">By 
Dragging</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-link-creation">link creation</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Buttons">Implicit 
Buttons</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-link-creation-1">link creation</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Menu">By Menu</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-link-creation-2">link creation</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Dragging">By 
Dragging</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-link-display">link display</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Referent-Display">Referent 
Display</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-link-to-explicit-button">link to explicit 
button</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-link-to-global-button">link to global 
button</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-link-to-implicit-button">link to implicit 
button</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-link_002c-creation">link, creation</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Menu">By Menu</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-link_002c-display-function">link, display 
function</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Internal-Viewers">Internal Viewers</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-link_002c-pathname">link, pathname</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Button-Types">Implicit 
Button Types</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-link_002c-pathname-line-and-column">link, pathname line and 
column</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
@@ -14438,19 +14546,31 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts">menu item, 
Cust/Msg-Toggle-Ebuts</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Buttons-in-Mail">Buttons in 
Mail</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Cust_002fMsg_002dToggle_002dEbuts-1">menu item, 
Cust/Msg-Toggle-Ebuts</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Buttons-in-News">Buttons in 
News</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Doc_002fSmartKeys">menu item, 
Doc/SmartKeys</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Smart-Key-Operations">Smart Key Operations</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Ebut_002fCreate">menu item, 
Ebut/Create</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#By-Menu">By Menu</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Ebut_002fEdit">menu item, 
Ebut/Edit</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#By-Menu">By Menu</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Ebut_002fLink">menu item, 
Ebut/Link</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#By-Link">By Link</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Explicit_002dButton">menu item, 
Explicit-Button</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#By-Menu">By Menu</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Find_002dFile_002dAccepts_002dURLs">menu item, 
Find-File-Accepts-URLs</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Using-URLs-with-Find_002dFile">Using 
URLs with Find-File</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Find_002dFile_002dURLs">menu item, 
Find-File-URLs</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Using-URLs-with-Find_002dFile">Using URLs with Find-File</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Find_002fWeb">menu item, 
Find/Web</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-FramesControl">menu item, 
FramesControl</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#HyControl">HyControl</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-GrepFile">menu item, 
GrepFile</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Hist">menu item, Hist</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Ibut_002fAct">menu item, 
Ibut/Act</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Ibut_002fActivate">menu item, 
Ibut/Activate</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Ibut_002fCreate">menu item, 
Ibut/Create</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Ibut_002fEdit">menu item, 
Ibut/Edit</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Ibut_002fName">menu item, 
Ibut/Name</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Ibut_002fRename">menu item, 
Ibut/Rename</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Isearch_002dInvisible">menu item, 
Isearch-Invisible</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Invisible-Text-Searches">Invisible 
Text Searches</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Kotl_002fExample">menu item, 
Kotl/Example</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Koutliner">Koutliner</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-LocateFiles">menu item, 
LocateFiles</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-MatchFileBuffers">menu item, 
MatchFileBuffers</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-OccurHere">menu item, 
OccurHere</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-RegexFind">menu item, 
RegexFind</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#HyRolo-Searching">HyRolo Searching</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Remove_002dThis_002dMenu">menu item, 
Remove-This-Menu</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-RemoveLines">menu item, 
RemoveLines</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Rolo_002fToggle_002dRolo_002dDates">menu item, 
Rolo/Toggle-Rolo-Dates</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#HyRolo-Keys">HyRolo 
Keys</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-SaveLines">menu item, 
SaveLines</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-StringFind">menu item, 
StringFind</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#HyRolo-Searching">HyRolo Searching</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu-item_002c-Toggle_002dIsearch_002dInvisible">menu item, 
Toggle-Isearch-Invisible</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Invisible-Text-Searches">Invisible 
Text Searches</a></td></tr>
@@ -14470,13 +14590,13 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Customize">menu, Customize</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Doc">menu, Doc</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Documentation">menu, 
Documentation</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Ebut">menu, Ebut</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Menu">By Menu</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-EBut">menu, EBut</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-entry_002fexit-commands">menu, entry/exit 
commands</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Explicit_002dButton">menu, 
Explicit-Button</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Find">menu, Find</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Find_002fWeb">menu, Find/Web</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Find_002fWeb-1">menu, 
Find/Web</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Web-Search-Engines">Web Search Engines</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Find_002fWeb-2">menu, 
Find/Web</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Default-Hyperbole-Bindings">Default Hyperbole Bindings</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Find_002fWeb">menu, Find/Web</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Web-Search-Engines">Web Search 
Engines</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Find_002fWeb-1">menu, 
Find/Web</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Default-Hyperbole-Bindings">Default Hyperbole Bindings</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Gbut">menu, Gbut</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Global-Buttons">Global 
Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Gbut-1">menu, Gbut</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Global_002dButton">menu, 
Global-Button</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Global-Buttons">Global Buttons</a></td></tr>
@@ -14484,10 +14604,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-HyRolo">menu, HyRolo</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#HyRolo-Menu">HyRolo 
Menu</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Ibut">menu, Ibut</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Buttons">Implicit 
Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Ibut-1">menu, Ibut</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Ibut_002fActivate">menu, 
Ibut/Activate</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Ibut_002fCreate">menu, 
Ibut/Create</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Ibut_002fEdit">menu, 
Ibut/Edit</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Ibut_002fLabel">menu, 
Ibut/Label</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Ibut_002fLink">menu, 
Ibut/Link</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Implicit_002dButton">menu, 
Implicit-Button</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Implicit_002dButton-1">menu, 
Implicit-Button</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-KeyBindings">menu, 
KeyBindings</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
@@ -14496,13 +14613,11 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Koutliner">menu, Koutliner</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menu-Commands">Menu 
Commands</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Mail_002dLists">menu, 
Mail-Lists</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Msg">menu, Msg</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Outline_002fExample">menu, 
Outline/Example</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Koutliner">Koutliner</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Outliner">menu, Outliner</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-reload">menu, reload</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Rolo">menu, Rolo</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Rolo-1">menu, Rolo</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#HyRolo-Menu">HyRolo 
Menu</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Screen">menu, Screen</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Toggle_002dRolo_002dDates">menu, 
Toggle-Rolo-Dates</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#HyRolo-Keys">HyRolo 
Keys</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-top_002dlevel">menu, 
top-level</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Menus">Menus</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-top_002dlevel-1">menu, 
top-level</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Minibuffer-Menu-Activation">Minibuffer Menu Activation</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-menu_002c-Types">menu, Types</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
@@ -14547,6 +14662,8 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-modes-to-ignore-klinks">modes to ignore 
klinks</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Klinks">Klinks</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-mouse">mouse</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Glossary">Glossary</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-mouse-bindings">mouse bindings</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Menus">Menus</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-mouse-drag_002c-explicit-link-creation">mouse drag, explicit link 
creation</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#By-Dragging">By Dragging</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-mouse-drag_002c-implicit-link-creation">mouse drag, implicit link 
creation</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-mouse-drag_002c-link-creation">mouse drag, link 
creation</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#By-Dragging">By Dragging</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-mouse-key-bindings">mouse key bindings</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Questions-and-Answers">Questions and 
Answers</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-mouse-key-toggle">mouse key toggle</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Default-Hyperbole-Bindings">Default 
Hyperbole Bindings</a></td></tr>
@@ -14666,6 +14783,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-reference">reference</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Button-Types">Implicit 
Button Types</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-referent">referent</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Explicit-Buttons">Explicit 
Buttons</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-referent-display">referent display</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Referent-Display">Referent 
Display</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-referent-point">referent point</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Link">By Link</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-refilling">refilling</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Filling">Filling</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-region-selection">region selection</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Smart-Key-Thing-Selection">Smart Key 
Thing Selection</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-region-throw">region throw</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Keyboard-Drags">Keyboard 
Drags</a></td></tr>
@@ -14779,6 +14897,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-social-media">social media</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Button-Types">Implicit 
Button Types</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-social-reference">social reference</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Button-Types">Implicit 
Button Types</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-source-line">source line</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Button-Types">Implicit 
Button Types</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-source-point">source point</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#By-Link">By Link</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-splitting-a-cell">splitting a cell</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Splitting-and-Appending">Splitting 
and Appending</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-stable-release-installation">stable release 
installation</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Elpa-Stable-Package-Installation">Elpa Stable Package 
Installation</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-stack-frame">stack frame</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Implicit-Button-Types">Implicit 
Button Types</a></td></tr>
@@ -14846,7 +14965,7 @@ Previous: <a href="#Function" accesskey="p" 
rel="prev">Function, Variable and Fi
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-tree_002c-show-subtree">tree, show 
subtree</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Hiding-and-Showing">Hiding and Showing</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-Treemacs">Treemacs</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline 
Clicks</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-Treemacs-1">Treemacs</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Smart-Key-_002d-Treemacs">Smart Key 
- Treemacs</a></td></tr>
-<tr><td></td><td class="printindex-index-entry"><a 
href="#index-Treemacs-item-drag">Treemacs item drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a 
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer 
Items</a></td></tr>
+<tr><td></td><td class="printindex-index-entry"><a 
href="#index-Treemacs-item-drag">Treemacs item drag</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Displaying-Items">Displaying 
Items</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-troubleshooting-Smart-Keys">troubleshooting Smart 
Keys</a>:</td><td>&nbsp;</td><td class="printindex-index-section"><a 
href="#Smart-Key-Debugging">Smart Key Debugging</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-tutorial">tutorial</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Manual-Overview">Manual 
Overview</a></td></tr>
 <tr><td></td><td class="printindex-index-entry"><a 
href="#index-type-definition">type definition</a>:</td><td>&nbsp;</td><td 
class="printindex-index-section"><a href="#Creating-Types">Creating 
Types</a></td></tr>
diff --git a/man/hyperbole.info b/man/hyperbole.info
index f6c647cadc..0c2081bdd8 100644
Binary files a/man/hyperbole.info and b/man/hyperbole.info differ
diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf
index 0dcaaf9649..bbd35c4232 100644
Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index 852edf3ead..ef5b30b5b8 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -7,7 +7,7 @@
 @c Author:       Bob Weiner
 @c
 @c Orig-Date:     6-Nov-91 at 11:18:03
-@c Last-Mod:     11-Jun-23 at 13:21:00 by Bob Weiner
+@c Last-Mod:     22-Jun-23 at 17:39:17 by Bob Weiner
 
 @c %**start of header (This is for running Texinfo on a region.)
 @setfilename hyperbole.info
@@ -156,7 +156,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
 
 <PRE>
 Edition 8.0.1pre
-Printed June 11, 2023.
+Printed June 22, 2023.
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -198,7 +198,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 @example
 Edition 8.0.1pre
-June 11, 2023
+June 22, 2023
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -342,8 +342,9 @@ Utilizing Explicit Buttons
 
 Creation
 
-* By Dragging::                 Creation Via Action Key Drags
 * By Menu::                     Creation Via Menus
+* By Link::                     Creation Via Buffer Link
+* By Dragging::                 Creation Via Action Key Drags
 
 Koutliner
 
@@ -2066,47 +2067,63 @@ directory, typically in another window.  An explicit 
button could do
 the same thing but has to be created manually, rather than recognized
 as part of the buffer text.
 
-@kindex C-h h i
+@cindex link creation
+@cindex creating implicit links
 @cindex implicit button creation
-@cindex activating implicit button
-@cindex menu item, Ibut/Act
 @cindex menu, Ibut
 @cindex menu, Implicit-Button
-@cindex menu, Ibut/Activate
-@cindex menu, Ibut/Create
-@cindex menu, Ibut/Edit
-@cindex menu, Ibut/Label
-@cindex menu, Ibut/Rename
-@kindex C-h h i a
+@cindex menu item, Ibut/Create
+@cindex menu item, Ibut/Edit
+@kindex C-h h i
 @kindex C-h h i c
 @kindex C-h h i e
-@kindex C-h h i l
-@kindex C-h h i r
-Implicit buttons are managed with the Hyperbole Ibut/ menu accessed with
-@bkbd{C-h h i}.  The Create item, @bkbd{C-h h i c}, prompts for an
-implicit button label (default is any selected region), an action type,
-and the action's associated arguments, such as a file to which to link.
-It then creates the button at point.
-
-@cindex link creation
-@cindex creating implicit links
-@cindex mouse drag, link creation
+Implicit buttons are managed with the Hyperbole Ibut/ menu accessed
+with @bkbd{C-h h i}.  The Create item, @bkbd{C-h h i c}, prompts for
+an implicit button name (default is any selected region), an action
+type, and the action's associated arguments.  It then creates the
+button at point.  Use this to create a button with any implicit button
+type, not just links.
+
+@cindex mouse drag, implicit link creation
 @cindex drag
 @cindex Assist Key drag
-Alternatively, to create an implicit link button to something displayed
-within an Emacs window, simply drag with the Assist (not the Action) Mouse
-Key from an editable source window to another window with the desired link
-referent.  The drag must start outside of a draggable item,
-@pxref{Displaying Items}.  Hyperbole will either automatically select the
-button action type based on the referent context or will prompt you to
+Alternatively, to create an implicit link button to something
+displayed within an Emacs window (the referent), simply drag with the
+Assist (not the Action) Mouse Key depressed from an editable source
+window to another window with the desired link referent and then
+release.  The drag must start outside of a draggable item,
+@pxref{Displaying Items}.  Hyperbole will either automatically select
+the button type based on the referent context or will prompt you to
 select from one of a few possible link types.
 
-To activate the button with point on its label or button text, use the Act
-menu item, @bkbd{C-h h i a} or press the Action Key.  You can use
-@bkbd{C-h h i e} to edit an implicit button (or simply edit it manually).
-If you want to add a label to an existing implicit button without one, use
-@bkbd{C-h h i l} to label it.  Rename an existing named implicit button
-with @bkbd{C-h h i r}.
+@cindex implicit link creation
+@cindex menu, Ibut/Link
+@kindex C-h h i l
+If you have exactly two Emacs windows in your current frame or exactly
+two windows visible across two Emacs frames, this is even easier.
+Simply use the Link menu item, @bkbd{C-h h i l}, to create a new
+unnamed implicit link button or to edit the one at point.  @bkbd{C-u
+C-h h i l} will additionally prompt to add a name or rename the button
+at point.  With more than two windows, Hyperbole will prompt you to
+choose the referent window and its associated point to which to link.
+If the Ace Window package is installed and active, this will be used
+to choose the window; otherwise, you will be prompted to select it by
+mouse.
+
+@cindex activating implicit button
+@cindex menu item, Ibut/Act
+@cindex menu item, Ibut/Activate
+@cindex menu item, Ibut/Name
+@cindex menu item, Ibut/Rename
+@kindex C-h h i a
+@kindex C-h h i n
+@kindex C-h h i r
+To activate an implicit button with point on its name or button text,
+use the Act menu item, @bkbd{C-h h i a} or press the Action Key.  You
+can use @bkbd{C-h h i e} to edit an implicit button (or simply edit it
+manually).  If you want to add a name to an existing implicit button
+without one, use @bkbd{C-h h i n} to name it.  Rename an existing
+named implicit button with @bkbd{C-h h i r}.
 
 @vindex file, hibtypes.el
 @cindex context
@@ -3385,19 +3402,96 @@ what buttons do.
 
 If you want to create an explicit link button to somewhere within an Emacs
 window, then simply drag with the Action Mouse Key from an editable buffer
-to the target buffer.
+(outside of a draggable item) to the target buffer.
 
 Alternatively, the Hyperbole minibuffer menu item, Ebut/Create, will
 create any type of explicit button, but requires a few steps.
 
+The next two subsections examine explicit button creation and
+modification in detail.
+
 @menu
-* By Dragging::                 Creation Via Action Key Drags
 * By Menu::                     Creation Via Menus
+* By Link::                     Creation Via Buffer Link
+* By Dragging::                 Creation Via Action Key Drags
 @end menu
 
-@node By Dragging, By Menu, Creation, Creation
+@node By Menu, By Link, Creation, Creation
+@subsubsection Creation Via Menus
+
+@cindex link creation
+@cindex creating explicit links
+@cindex explicit button creation
+@cindex menu, Ebut
+@cindex menu item, Explicit-Button
+@cindex menu item, Ebut/Create
+@cindex menu item, Ebut/Edit
+@kindex C-h h e
+@kindex C-h h e c
+@kindex C-h h e e
+Explicit buttons are managed with the Hyperbole Ebut/ menu accessed with
+@bkbd{C-h h e}.  The Create item, @bkbd{C-h h e c}, creates any type of
+explicit button.  It prompts for an explicit button label (default is any
+selected region), an action type, and the action's associated arguments.
+It then creates the button at point and surrounds the label with
+<(explicit button delimiters)> like so, to indicate success.
+
+You can use the direct selection techniques mentioned in @ref{Smart Key
+Argument Selection}, to select any completion-based arguments.  If you do
+not mark a region before invoking the button create command, you will be
+prompted for both a label and a target buffer for the button and the
+delimited label text will be inserted into the target buffer after a
+successful button creation.
+
+@cindex button instance
+@cindex instance number
+If a previous button with the same label exists in the same buffer,
+Hyperbole will add an @dfn{instance number} to the label when it adds
+the delimiters so that the name is unique.  Thus, you don't have to
+worry about accidental button name conflicts.  If you want the same
+button to appear in multiple places within the buffer, just enter the
+label again and delimit it yourself or copy and paste the button with
+its delimiters.  Hyperbole will interpret all occurrences of the same
+delimited label within a buffer as the same button.
+
+@node By Link, By Dragging, By Menu, Creation
+@subsubsection Creation Via Buffer Link
+
+@cindex explicit link creation
+@cindex menu item, Ebut/Link
+@cindex source point
+@cindex referent point
+@kindex C-h h e l
+If you have exactly two Emacs windows in your current frame or exactly
+two windows visible across two Emacs frames, you can quickly create
+explicit link buttons from your current point (source) to the point in
+the other window (referent).  Simply use the Link menu item, @bkbd{C-h h
+e l}, to create a new explicit link button or to rename the one at point.
+Hyperbole will either use the selected region as the new button label or
+will prompt you for it.  It will then automatically choose the link type
+based on the referent location and will either update the button at point
+or create a new one.
+
+With more than two windows on screen, Hyperbole will prompt you to choose
+the referent window and its associated point to which to link.  If the
+Ace Window package is installed and active, this will be used to choose
+the window; otherwise, you will be prompted to select it by mouse.
+
+@node By Dragging,  , By Link, Creation
 @subsubsection Creation Via Action Key Drags
 
+@cindex mouse drag, explicit link creation
+@cindex drag
+@cindex Assist Key drag
+Alternatively, to create an explicit link button to something
+displayed within an Emacs window (the referent), simply drag with the
+Assist (not the Action) Mouse Key depressed from an editable source
+window to another window with the desired link referent and then
+release.  The drag must start outside of a draggable item,
+@pxref{Displaying Items}.  Hyperbole will either automatically select
+the button type based on the referent context or will prompt you to
+select from one of a few possible link types.
+
 @cindex explicit button creation
 @cindex link creation
 @cindex creating explicit links
@@ -3407,10 +3501,11 @@ create any type of explicit button, but requires a few 
steps.
 The most efficient way to create an explicit link button to something
 within an Emacs window is to use the Action Mouse Key to drag from an
 editable source window to another window with the desired link referent.
-The drag must start outside of a draggable item, @pxref{Displaying Items}.
-Hyperbole will either automatically select the button action type based on
-the referent context or will prompt you to select from one of a few
-possible link types.
+The drag must start outside of a draggable item, @pxref{Displaying
+Items}.  Hyperbole will prompt for the button text label and then will
+either automatically select the button action type based on the referent
+context or will prompt you to select from one of a few possible link
+types.
 
 In detail, you should split your current Emacs frame into two
 windows: one which contains the point at which you want a button to be
@@ -3459,49 +3554,6 @@ Buffer without File      link-to-buffer-tmp
 @end format
 
 
-@node By Menu,  , By Dragging, Creation
-@subsubsection Creation Via Menus
-
-Use the Hyperbole minibuffer menu to create any type of explicit button.
-First, mark a short region of text for the button label in any fashion
-allowed by Emacs; then select the Hyperbole menu item sequence,
-Ebut/Create.  You will be prompted for the button's label with the marked
-region as the default.  If you accept the default and enter the rest of
-the information you are prompted for, the button will be created within
-the current buffer and Hyperbole will surround the marked region with
-explicit button delimiters to indicate success.
-
-If you do not mark a region before invoking the button create command,
-you will be prompted for both a label and a target buffer for the button
-and the delimited label text will be inserted into the target buffer
-after a successful button creation.
-
-After Hyperbole has the button label and its target buffer, it will
-prompt you for an action type for the button.  Use the @bkbd{?}
-completion list key to see the available types.  The type selected
-determines any following values for which you are prompted.
-
-@cindex button instance
-@cindex instance number
-If a previous button with the same label exists in the same buffer,
-Hyperbole will add an @dfn{instance number} to the label when it adds
-the delimiters so that the name is unique.  Thus, you don't have to
-worry about accidental button name conflicts.  If you want the same
-button to appear in multiple places within the buffer, just enter the
-label again and delimit it yourself or copy and paste the button with
-its delimiters.  Hyperbole will interpret all occurrences of the same
-delimited label within a buffer as the same button.
-
-@cindex link, creation
-If you create link buttons using the Hyperbole menus, the best
-technique is to place on screen both the source buffer for the button
-and the buffer to which it will link.  Mark the region of text to use
-as your button label, invoke the button create command from the menu,
-choose an action type which begins with @code{link-to-} and then use
-the direct selection techniques mentioned in @ref{Smart Key Argument
-Selection}, to select the link referent.
-
-
 @node Renaming, Deletion, Creation, Utilizing Explicit Buttons
 @subsection  Renaming
 
@@ -3991,7 +4043,7 @@ RemoveLines -      Following point, remove all lines that 
match regexp.
 
 @item
 SaveLines -        Following point, keep only lines that match regexp.
-@cindex menu, Find/Web
+@cindex menu item, Find/Web
 @cindex menu, Web
 @cindex searching the web
 @cindex web search
@@ -4587,7 +4639,7 @@ cell.  User-defined attributes may also be added to 
cells.  @xref{Cell
 Attributes}.
 
 @vindex file, EXAMPLE.kotl
-@cindex menu, Outline/Example
+@cindex menu item, Kotl/Example
 @kindex C-h h k e
 This chapter expands on the information given in the @file{EXAMPLE.kotl}
 file included with Hyperbole.  Use @bkbd{C-h h k e} to display that
@@ -6172,7 +6224,7 @@ Scroll forward a windowful.
 @cindex datestamps
 @cindex rolo, datestamps
 @cindex customize, rolo datestamps
-@cindex menu, Toggle-Rolo-Dates
+@cindex menu item, Rolo/Toggle-Rolo-Dates
 @cindex customize, rolo edits
 @cindex customize, rolo additions
 @vindex hyrolo-edit-hook
@@ -9430,44 +9482,8 @@ Otherwise, if dragged from inside one window to another:
          Assist Key creates an implicit button.
 
          In Hyperbole versions prior to 9, Assist Key drags between windows 
would
-         swap buffers.  In version 9 and above, start or end the between window
-         drag on a modeline to get this same behavior.
-@end group
-@end format
-
-@node Smart Mouse Drags within a Window, Smart Mouse Drags outside a Window, 
Smart Mouse Drags between Windows, Smart Mouse Keys
-@subsection Smart Mouse Drags between Windows
-
-@cindex active region
-@cindex copy and yank
-@cindex kill and yank
-@cindex yanking
-@cindex pasting a region
-@format
-@group
-If an active (highlighted) region exists within the editor:
-  ACTION KEY
-     Copies and yanks (pastes) the region to the release point in a
-     different window.
-  ASSIST KEY
-     Kills (cuts) and yanks (pastes) the region to the release point
-     in a different window.
-@end group
-@end format
-
-@format
-@group
-Otherwise, if dragged from inside one window to another:
-  ACTION KEY
-     (1) If depress was on a buffer name in Buffer-menu/ibuffer mode or on
-         a file/directory in dired mode, displays the item in window of 
release.
-         See @code{hmouse-drag-item-mode-forms} for how to allow for draggable
-         items in other modes.
-     (2) Otherwise, creates a new link button at the drag start location, 
linked
-         to the drag end location.  If the drag start position is within a 
button,
-         this modifies the button to link to the drag end location.
-  ASSIST KEY
-     Swap buffers in the two windows.
+         swap buffers.  In version 9 and above, start or end the drag between
+         windows on a modeline to get this same behavior.
 @end group
 @end format
 
@@ -9639,7 +9655,6 @@ When company-mode is active:
 @end group
 @end format
 
-@page
 @node Smart Key - Org Mode, Smart Key - Ivy, Smart Key - Company Mode, Smart 
Keyboard Keys
 @subsection Smart Key - Org Mode
 
@@ -9675,7 +9690,11 @@ When in an Org mode context and 
@code{hsys-org-enable-smart-keys} is non-nil:
 
      (10) In any other context besides the end of a line, invoke the Org mode
           standard binding of @bkbd{M-@key{RET}}, @code{org-meta-return}.
+@end group
+@end format
 
+@format
+@group
    When the ASSIST KEY is pressed, it behaves just like the Action Key except
    in these contexts:
 
@@ -9917,7 +9936,6 @@ If the Smart Menu package (part of InfoDock) has been 
loaded and
 @end group
 @end format
 
-@page
 @node Smart Key - Dired Mode, Smart Key - Hyperbole Buttons, Smart Key - Smart 
Menus, Smart Keyboard Keys
 @subsection Smart Key - Dired Mode
 @cindex click, dired
@@ -9986,7 +10004,6 @@ If pressed within a buffer in View major or minor mode:
 @end group
 @end format
 
-@page
 @node Smart Key - Helm Mode, Smart Key - Delimited Things, Smart Key - View 
Mode, Smart Keyboard Keys
 @subsection Smart Key - Helm Mode
 
@@ -10029,7 +10046,6 @@ If pressed within a buffer in helm major mode:
 @end group
 @end format
 
-@page
 @node Smart Key - Delimited Things, Smart Key - The Koutliner, Smart Key - 
Helm Mode, Smart Keyboard Keys
 @subsection Smart Key - Delimited Things
 
@@ -10105,7 +10121,6 @@ When pressed within a Hyperbole Koutliner buffer 
(kotl-mode):
 @end group
 @end format
 
-@page
 @node Smart Key - RDB Mode, Smart Key - Help Buffers, Smart Key - The 
Koutliner, Smart Keyboard Keys
 @subsection Smart Key - RDB Mode
 @cindex rdb-mode
@@ -10184,7 +10199,6 @@ When pressed on a bookmark-bmenu-mode entry line:
 @end group
 @end format
 
-@page
 @node Smart Key - Pages Directory Mode, Smart Key - Python Source Code, Smart 
Key - Bookmark Mode, Smart Keyboard Keys
 @subsection Smart Key - Pages Directory Mode
 
@@ -10230,7 +10244,6 @@ When pressed within a Python source code file (without 
the OO-Browser):
 @end group
 @end format
 
-@page
 @node Smart Key - C Source Code, Smart Key - C++ Source Code, Smart Key - 
Python Source Code, Smart Keyboard Keys
 @subsection Smart Key - C Source Code
 
@@ -10288,7 +10301,6 @@ buffer:
 @end group
 @end format
 
-@page
 @format
 @group
 When pressed within a C++ source code file (without the OO-Browser):
@@ -10550,7 +10562,6 @@ When pressed within a man page apropos buffer or 
listing:
 @end group
 @end format
 
-@page
 @node Smart Key - Emacs Outline Mode, Smart Key - Info Manuals, Smart Key - 
Man Page Apropos, Smart Keyboard Keys
 @subsection Smart Key - Emacs Outline Mode
 @vindex selective-display
@@ -10969,7 +10980,6 @@ When pressed within an OO-Browser listing window:
 @end group
 @end format
 
-@page
 @format
 @group
   ASSIST KEY
diff --git a/set.el b/set.el
index 954cd21774..a7dc4a893c 100644
--- a/set.el
+++ b/set.el
@@ -90,7 +90,7 @@ valid set.  With optional ARITY, return only subsets with 
ARITY
 members."
   (cond ((null arity) 
         (setq arity 0)
-        (cons nil (apply 'nconc (mapcar (lambda (_elt) (setq arity (1+ arity)) 
(set:combinations set arity))
+        (cons nil (apply #'nconc (mapcar (lambda (_elt) (setq arity (1+ 
arity)) (set:combinations set arity))
                                         set))))
        ((= arity 1) set)
        ((<= arity 0) '(nil))
@@ -120,7 +120,7 @@ for comparison."
               elements)
         (nreverse set)))))
 
-(defalias 'set:delete 'set:remove)
+(defalias 'set:delete #'set:remove)
 (defun set:difference (&rest sets)
   "Return difference of any number of SETS.
 Difference is the set of elements in the first set that are not in any of the
@@ -132,7 +132,7 @@ other sets.  Uses `set:equal-op' for comparison."
      (cdr sets))
     rtn-set))
 
-(defalias 'set:size 'length)
+(defalias 'set:size #'length)
 
 (defun set:empty (set)
   "Return t if SET is empty."
@@ -170,7 +170,7 @@ Uses `set:equal-op' for comparison."
                     (setq lst (cdr lst))))
         (null lst))))
 
-(defalias 'set:map 'mapcar)
+(defalias 'set:map #'mapcar)
 
 (defun set:members (list)
   "Return set of unique elements of LIST.
diff --git a/test/hy-test-dependencies.el b/test/hy-test-dependencies.el
index 869dfcb4e5..e3767ca876 100644
--- a/test/hy-test-dependencies.el
+++ b/test/hy-test-dependencies.el
@@ -3,7 +3,7 @@
 ;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
 ;; Orig-Date:    20-Feb-21 at 23:16:00
-;; Last-Mod:     13-May-23 at 10:12:36 by Bob Weiner
+;; Last-Mod:     21-Jun-23 at 21:19:45 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -18,6 +18,9 @@
 
 ;;; Code:
 
+(require 'hload-path)
+(add-to-list 'load-path (expand-file-name "test" hyperb:dir))
+
 (package-initialize)
 (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/";))
 
diff --git a/test/kcell-tests.el b/test/kcell-tests.el
index 0ec633a26c..3187be79e2 100644
--- a/test/kcell-tests.el
+++ b/test/kcell-tests.el
@@ -24,7 +24,7 @@
 
 ;;; Code:
 
-(require 'kcell)
+(require 'kcell "kotl/kcell")
 (require 'kotl-mode)
 (require 'hy-test-helpers "test/hy-test-helpers")
 



reply via email to

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