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

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

[elpa] externals/hyperbole 537ae5d286 2/2: Merge branch 'master' of hype


From: ELPA Syncer
Subject: [elpa] externals/hyperbole 537ae5d286 2/2: Merge branch 'master' of hyperbole
Date: Tue, 25 Jan 2022 16:57:34 -0500 (EST)

branch: externals/hyperbole
commit 537ae5d2865c61515cd2e911b7f5abebdc4c4f56
Merge: e0c9803045 f24b11df51
Author: Robert Weiner <rsw@gnu.org>
Commit: Robert Weiner <rsw@gnu.org>

    Merge branch 'master' of hyperbole
---
 ChangeLog                    |  33 ++++++++++++
 INSTALL                      |   1 +
 Makefile                     |  14 +++--
 README                       |   1 +
 hact.el                      |   5 +-
 hactypes.el                  |   1 +
 hargs.el                     |   1 +
 hbdata.el                    |   1 +
 hbmap.el                     |   1 +
 hbut.el                      |  50 +++++++++++------
 hgnus.el                     |   3 +-
 hhist.el                     |   1 +
 hib-debbugs.el               |   1 +
 hib-doc-id.el                |   1 +
 hib-kbd.el                   |   1 +
 hib-social.el                |   1 +
 hibtypes.el                  |   5 +-
 hinit.el                     |   1 +
 hload-path.el                |   1 +
 hmail.el                     |   1 +
 hmh.el                       |   1 +
 hmoccur.el                   |   1 +
 hmouse-drv.el                |   1 +
 hmouse-info.el               |   1 +
 hmouse-key.el                |   1 +
 hmouse-mod.el                |   1 +
 hmouse-sh.el                 |   1 +
 hmouse-tag.el                |   1 +
 hpath.el                     |   1 +
 hrmail.el                    |   1 +
 hsettings.el                 |   1 +
 hsmail.el                    |   1 +
 hsys-org.el                  |   1 +
 hsys-www.el                  |   1 +
 htz.el                       |   1 +
 hui-dired-sidebar.el         |   1 +
 hui-em-but.el                |   1 +
 hui-jmenu.el                 |   1 +
 hui-menu.el                  |   3 ++
 hui-mini.el                  |   5 +-
 hui-mouse.el                 |   1 +
 hui-select.el                |   1 +
 hui-treemacs.el              |   1 +
 hui-window.el                |   1 +
 hui.el                       | 124 ++++++++++++++++++++++++++++++++++++-------
 hvar.el                      |   1 +
 hversion.el                  |   1 +
 hvm.el                       |   1 +
 hycontrol.el                 |   1 +
 hypb-ert.el                  |   5 +-
 hypb-maintenance.el          |   5 ++
 hypb.el                      |   1 +
 hyperbole.el                 |   1 +
 hyrolo-demo.el               |   1 +
 hyrolo-logic.el              |   1 +
 hyrolo-menu.el               |   1 +
 hyrolo.el                    |   1 +
 hywconfig.el                 |   1 +
 kotl/kcell.el                |   1 +
 kotl/kexport.el              |   1 +
 kotl/kfile.el                |   1 +
 kotl/kfill.el                |   1 +
 kotl/kimport.el              |   1 +
 kotl/klabel.el               |   1 +
 kotl/klink.el                |   1 +
 kotl/kmenu.el                |   1 +
 kotl/kotl-mode.el            |   1 +
 kotl/kotl-orgtbl.el          |   1 +
 kotl/kproperty.el            |   1 +
 kotl/kview.el                |   1 +
 kotl/kvspec.el               |   1 +
 man/hyperbole.texi           |  34 +++++++-----
 set.el                       |   1 +
 smart-clib-sym               |   1 +
 test/demo-tests.el           |   5 +-
 test/hactypes-tests.el       |   5 +-
 test/hbut-tests.el           |  65 ++++++++++++++++++++++-
 test/hib-kbd-tests.el        |   5 +-
 test/hib-social-tests.el     |   5 +-
 test/hibtypes-tests.el       |  15 +++---
 test/hmouse-drv-tests.el     |  15 +++---
 test/hmouse-info-tests.el    |   5 +-
 test/hpath-tests.el          |   5 +-
 test/hsys-org-tests.el       |   7 ++-
 test/hui-tests.el            |  67 ++++++++++++++++++++++-
 test/hy-test-dependencies.el |   7 ++-
 test/hy-test-helpers.el      |   5 +-
 test/hypb-tests.el           |   5 +-
 test/hyperbole-tests.el      |   5 +-
 test/hyrolo-tests.el         |   5 +-
 test/kexport-tests.el        |   5 +-
 test/kotl-mode-tests.el      |   5 +-
 test/kotl-orgtbl-tests.el    |   5 +-
 test/smart-org-tests.el      |   5 +-
 topwin.py                    |   1 +
 95 files changed, 482 insertions(+), 113 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index e4c4885024..1bd6817590 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,6 +14,39 @@
 * hactypes.el (link-to-kcell): Fix to process cell-ref only after any non-nil
     file is displayed.
 
+2022-01-23  Bob Weiner  <rsw@gnu.org>
+
+* Makefile (TAGS): Include ert-deftest definitions in TAGS file.
+           (TEST_ERT_FILES): Add hy-test-*.el so indexed in TAGS file.
+
+* hbut.el (gbut:label-p): Add to return global button label point is on if nay.
+    Use in 'hui:gbut-modify'.
+
+* Makefile (test-all): Add conditionals to always run GUI Emacs if DISPLAY is 
set.
+
+* hui-menu.el (infodock-hyperbole-menu): Add Implicit-Button/{Edit, Modify}.
+  hui-mini.el (hui:menus): Add named Ibut/{Edit, Modify} (do the same thing).
+  hui.el (hui:ebut-modify, hui:gbut-modify): Interactively if on a button, 
still allow
+    choice of another button.
+         (hui:ibut-modify): Add named ibut modification.
+         (hui:ebut-modify, hui:gbut-modify): Add 2nd save-excursion so point 
does
+    not move within the source buffer.
+         (hui:gbut-create, hui:gibut-create): Move position of 'set-buffer' 
call after
+    'hui:buf-writable-err' call so they do not interfere with each other, 
causing buttons
+    to be written to the wrong buffer.
+
+2022-01-23  Mats Lidell  <matsl@gnu.org>
+
+* test/hui-tests.el (hui-gibut-create-link-to-file)
+    (hui-gibut-create-link-to-file-line)
+    (hui-gibut-create-link-to-file-line-and-column)
+    (hui-gibut-create-info-node): Test cases for global implicit buttons.
+
+* test/hbut-tests.el (gbut-program-eval-elisp)
+    (gbut-program-link-to-file, gbut-program-link-to-file-line)
+    (gbut-program-link-to-file-line-and-column): Test case for global
+    button programatically created button.
+
 2022-01-22  Bob Weiner  <rsw@gnu.org>
 
 * hycontrol.el (hycontrol-windows-grid-by-file-pattern): Add this command that 
creates
diff --git a/INSTALL b/INSTALL
index f0d7460e87..7fdca08a69 100644
--- a/INSTALL
+++ b/INSTALL
@@ -5,6 +5,7 @@
 # Author:       Bob Weiner
 #
 # Orig-Date:    25-Oct-16 at 09:10:12
+# Last-Mod:     24-Jan-22 at 00:19:12 by Bob Weiner
 #
 # Copyright (C) 2016-2021  Free Software Foundation, Inc.
 # See the "HY-COPY" file for license information.
diff --git a/Makefile b/Makefile
index 1efa720c3f..993c0d5102 100644
--- a/Makefile
+++ b/Makefile
@@ -3,6 +3,7 @@
 # Author:       Bob Weiner
 #
 # Orig-Date:    15-Jun-94 at 03:42:38
+# Last-Mod:     24-Jan-22 at 00:45:29 by Bob Weiner
 #
 # Copyright (C) 1994-2021  Free Software Foundation, Inc.
 # See the file HY-COPY for license information.
@@ -200,7 +201,7 @@ HYPERBOLE_FILES = dir info html $(EL_COMPILE) $(EL_KOTL) \
        topwin.py hyperbole-banner.png $(man_dir)/hkey-help.txt \
        $(man_dir)/hyperbole.texi $(man_dir)/hyperbole.css 
$(man_dir)/version.texi
 
-TEST_ERT_FILES = $(wildcard test/*tests.el)
+TEST_ERT_FILES = $(wildcard test/*tests.el) $(wildcard test/hy-test-*.el)
 
 EL_TAGS = $(EL_COMPILE) $(EL_KOTL) $(TEST_ERT_FILES)
 
@@ -314,7 +315,7 @@ bin-warn: src
 
 tags: TAGS
 TAGS: $(EL_TAGS)
-       $(ETAGS) $(EL_TAGS)
+       $(ETAGS) --regex='/(ert-deftest[ \t]+\([^ \t\n\r\f()]+\) ?/' $(EL_TAGS)
 
 clean:
        $(RM) hyperbole-autoloads.el kotl/kotl-autoloads.el $(ELC_COMPILE) 
$(ELC_KOTL) TAGS
@@ -437,8 +438,15 @@ all-tests: test-all
 test-all:
        @echo "# Tests: $(TEST_ERT_FILES)"
 ifeq ($(TERM), dumb)
-       TERM=vt100 DISPLAY=$(DISPLAY) $(EMACS) --quick $(PRELOADS) --eval 
"(load-file \"test/hy-test-dependencies.el\")" --eval "(let 
((auto-save-default)) $(LOAD_TEST_ERT_FILES) (ert-run-tests-interactively t))"
+ifneq (,$(findstring .apple.,$(DISPLAY)))
+        # Found, on MacOS, use graphical UI MacOS 'Emacs' script
+       TERM=xterm-256color EMACS=Emacs $(EMACS) --quick $(PRELOADS) --eval 
"(load-file \"test/hy-test-dependencies.el\")" --eval "(let 
((auto-save-default)) $(LOAD_TEST_ERT_FILES) (ert-run-tests-interactively t))"
 else
+        # Not found, set TERM so tests will at least run within parent Emacs 
session
+       TERM=vt100 $(EMACS) --quick $(PRELOADS) --eval "(load-file 
\"test/hy-test-dependencies.el\")" --eval "(let ((auto-save-default)) 
$(LOAD_TEST_ERT_FILES) (ert-run-tests-interactively t))"
+endif
+else
+        # Typical case, run emacs normally
        $(EMACS) --quick $(PRELOADS) --eval "(load-file 
\"test/hy-test-dependencies.el\")" --eval "(let ((auto-save-default)) 
$(LOAD_TEST_ERT_FILES) (ert-run-tests-interactively t))"
 endif
 
diff --git a/README b/README
index e901964c56..44bd4d29d9 100644
--- a/README
+++ b/README
@@ -3,6 +3,7 @@
 # Author:       Bob Weiner
 #
 # Orig-Date:    19-Oct-91 at 03:27:47
+# Last-Mod:     24-Jan-22 at 00:19:12 by Bob Weiner
 #
 # Copyright (C) 1989-2021  Free Software Foundation, Inc.
 # See the "HY-COPY" file for license information.
diff --git a/hact.el b/hact.el
index 16be088490..9bb4e821e3 100644
--- a/hact.el
+++ b/hact.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    18-Sep-91 at 02:57:09
+;; Last-Mod:     24-Jan-22 at 00:15:02 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -51,7 +52,7 @@ The type categories are either 'actypes or 'ibtypes.")
   "Inline the return of the symtable for TYPE-CATEGORY, one of 'actypes or 
'ibtypes."
   (plist-get symtable:category-plist type-category))
 
-(defun  symtable:operate (operation symbol-or-name symtable)
+(defun    symtable:operate (operation symbol-or-name symtable)
   "Call hash-table function OPERATION with Hyperbole SYMBOL-OR-NAME as key 
upon SYMTABLE.
 Trigger an error if SYMBOL-OR-NAME cannot be mapped to an existing Elisp
 symbol or if SYMTABLE is invalid."
@@ -423,7 +424,7 @@ performing ACTION."
          (hhist:add hist-elt))))))
 
 ;; Return the full Elisp symbol for ACTYPE, which may be a string or symbol.
-(defalias   'actype:elisp-symbol #'symtable:actype-p)
+(defalias 'actype:elisp-symbol #'symtable:actype-p)
 
 (defun    actype:def-symbol (actype)
   "Return the abbreviated symbol for ACTYPE used in its `defact'.
diff --git a/hactypes.el b/hactypes.el
index 6e55842165..57a69e4b9a 100644
--- a/hactypes.el
+++ b/hactypes.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    23-Sep-91 at 20:34:36
+;; Last-Mod:     24-Jan-22 at 00:16:30 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hargs.el b/hargs.el
index da5fc25f25..51e5b66267 100644
--- a/hargs.el
+++ b/hargs.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    31-Oct-91 at 23:17:35
+;; Last-Mod:     24-Jan-22 at 00:17:53 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hbdata.el b/hbdata.el
index c8854fca11..7c227e1b1a 100644
--- a/hbdata.el
+++ b/hbdata.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     2-Apr-91
+;; Last-Mod:     24-Jan-22 at 00:18:05 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hbmap.el b/hbmap.el
index d7a8ed169e..ce18a8235e 100644
--- a/hbmap.el
+++ b/hbmap.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     6-Oct-91 at 06:34:05
+;; Last-Mod:     24-Jan-22 at 00:18:23 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hbut.el b/hbut.el
index 232bee431a..034cf86582 100644
--- a/hbut.el
+++ b/hbut.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    18-Sep-91 at 02:57:09
+;; Last-Mod:     24-Jan-22 at 00:18:32 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -621,6 +622,25 @@ Insert INSTANCE-FLAG after END, before ending delimiter."
 Return entry deleted (a list of attribute values) or nil."
   (hbut:delete lbl-key nil gbut:file))
 
+(defun    gbut:ebut-program (label actype &rest args)
+  "Programmatically create a global explicit Hyperbole button at point from 
LABEL, ACTYPE (action type), and optional actype ARGS.
+Insert LABEL text at the end of the personal/global button file
+surrounded by <( )> delimiters, adding any necessary instance
+number of the button after the LABEL.  ACTYPE may be a Hyperbole
+action type name (from defact) or an Emacs Lisp function,
+followed by a list of arguments for the actype, aside from the
+button LABEL which is automatically provided as the first
+argument.
+
+For interactive creation, use `hui:gbut-create' instead."
+  (save-excursion
+    (with-current-buffer (find-file-noselect (expand-file-name hbmap:filename 
hbmap:dir-user))
+      (save-excursion
+       (goto-char (point-max))
+       (when (not (bolp))
+         (insert "\n"))
+       (eval `(ebut:program ',label ',actype ,@args))))))
+
 (defun    gbut:get (&optional lbl-key)
   "Return global Hyperbole button symbol given by optional LBL-KEY if found in 
gbut:file.
 
@@ -648,24 +668,20 @@ Return nil if no matching button is found."
   "Return list of global button labels."
   (mapcar #'hbut:key-to-label (gbut:key-list)))
 
-(defun    gbut:ebut-program (label actype &rest args)
-  "Programmatically create a global explicit Hyperbole button at point from 
LABEL, ACTYPE (action type), and optional actype ARGS.
-Insert LABEL text at the end of the personal/global button file
-surrounded by <( )> delimiters, adding any necessary instance
-number of the button after the LABEL.  ACTYPE may be a Hyperbole
-action type name (from defact) or an Emacs Lisp function,
-followed by a list of arguments for the actype, aside from the
-button LABEL which is automatically provided as the first
-argument.
+(defun    gbut:label-p (&optional as-label start-delim end-delim pos-flag 
two-lines-flag)
+  "Return key for the Hyperbole global button label that point is within, else 
nil.
+This is the normalized key form of the explicit button's label.
 
-For interactive creation, use `hui:gbut-create' instead."
-  (save-excursion
-    (with-current-buffer (find-file-noselect (expand-file-name hbmap:filename 
hbmap:dir-user))
-      (save-excursion
-       (goto-char (point-max))
-       (when (not (bolp))
-         (insert "\n"))
-       (eval `(ebut:program ',label ',actype ,@args))))))
+Assume point is within the first line of any button label.  All
+following arguments are optional.  If AS-LABEL is non-nil, return
+label rather than the key derived from the label.  START-DELIM
+and END-DELIM are strings that override default button
+delimiters.  With POS-FLAG non-nil, return the list of label-or-key,
+but-start-position, but-end-position.  Positions include
+delimiters.  With TWO-LINES-FLAG non-nil, constrain label search
+to two lines."
+  (when (equal buffer-file-name gbut:file)
+    (hbut:label-p as-label start-delim end-delim pos-flag two-lines-flag)))
 
 (defun    gbut:to (lbl-key)
   "Find the global button with LBL-KEY (a label or label key) within the 
visible portion of the global button file.
diff --git a/hgnus.el b/hgnus.el
index 7aad0e06d6..938f14f2dc 100644
--- a/hgnus.el
+++ b/hgnus.el
@@ -2,7 +2,8 @@
 ;;
 ;; Author:       Bob Weiner
 ;;
-;; Orig-Date:    24-Dec-91 at 22:29:28 by Bob Weiner
+;; Orig-Date:    24-Dec-91 at 22:29:28
+;; Last-Mod:     24-Jan-22 at 00:31:29 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2016  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hhist.el b/hhist.el
index b82a44eb5a..3df6b20405 100644
--- a/hhist.el
+++ b/hhist.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    24-Apr-91 at 03:36:23
+;; Last-Mod:     24-Jan-22 at 00:18:32 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hib-debbugs.el b/hib-debbugs.el
index e7021da39c..245ed8e140 100644
--- a/hib-debbugs.el
+++ b/hib-debbugs.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    21-Jun-16 at 14:24:53
+;; Last-Mod:     24-Jan-22 at 00:18:32 by Bob Weiner
 ;;
 ;; Copyright (C) 2016, 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hib-doc-id.el b/hib-doc-id.el
index a79c6f2d2e..b3acc50a98 100644
--- a/hib-doc-id.el
+++ b/hib-doc-id.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    30-Sep-92 at 19:39:59
+;; Last-Mod:     24-Jan-22 at 00:18:32 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hib-kbd.el b/hib-kbd.el
index 876d742a22..b3c0a620d1 100644
--- a/hib-kbd.el
+++ b/hib-kbd.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    22-Nov-91 at 01:37:57
+;; Last-Mod:     24-Jan-22 at 00:18:33 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hib-social.el b/hib-social.el
index 326c7831d4..766cfd8bda 100644
--- a/hib-social.el
+++ b/hib-social.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    20-Jul-16 at 22:41:34
+;; Last-Mod:     24-Jan-22 at 00:18:33 by Bob Weiner
 ;;
 ;; Copyright (C) 2016-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hibtypes.el b/hibtypes.el
index 9da2cd0f8d..1f9e290e82 100644
--- a/hibtypes.el
+++ b/hibtypes.el
@@ -1,8 +1,9 @@
 ;;; hibtypes.el --- GNU Hyperbole default implicit button types  -*- 
lexical-binding: t; -*-
 ;;
-;; Author: Bob Weiner
+;; Author:       Bob Weiner
 ;;
-;; Orig-Date: 19-Sep-91 at 20:45:31
+;; Orig-Date:    19-Sep-91 at 20:45:31
+;; Last-Mod:     24-Jan-22 at 00:31:57 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hinit.el b/hinit.el
index 41e48f9e45..536c76a856 100644
--- a/hinit.el
+++ b/hinit.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     1-Oct-91 at 02:32:51
+;; Last-Mod:     24-Jan-22 at 00:18:33 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hload-path.el b/hload-path.el
index f0342ece37..80f671a4c1 100644
--- a/hload-path.el
+++ b/hload-path.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    29-Jun-16 at 14:39:33
+;; Last-Mod:     24-Jan-22 at 00:18:33 by Bob Weiner
 ;;
 ;; Copyright (C) 1992-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hmail.el b/hmail.el
index 91d1d24467..993fa7c31d 100644
--- a/hmail.el
+++ b/hmail.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     9-Oct-91 at 18:38:05
+;; Last-Mod:     24-Jan-22 at 00:18:46 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the HY-COPY (Hyperbole) or BR-COPY (OO-Browser) file for license
diff --git a/hmh.el b/hmh.el
index 2a44c72bb1..31dfb1c7cf 100644
--- a/hmh.el
+++ b/hmh.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    21-May-91 at 17:06:36
+;; Last-Mod:     24-Jan-22 at 00:18:46 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2016  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hmoccur.el b/hmoccur.el
index 74c418d093..9ffa6ac21f 100644
--- a/hmoccur.el
+++ b/hmoccur.el
@@ -3,6 +3,7 @@
 ;; Author:       Markus Freericks <Mfx@cs.tu-berlin.de> / Bob Weiner
 ;;
 ;; Orig-Date:     1-Aug-91
+;; Last-Mod:     24-Jan-22 at 00:18:46 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hmouse-drv.el b/hmouse-drv.el
index 7c5c584986..e5152c6d47 100644
--- a/hmouse-drv.el
+++ b/hmouse-drv.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    04-Feb-90
+;; Last-Mod:     24-Jan-22 at 00:18:46 by Bob Weiner
 ;;
 ;; Copyright (C) 1989-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hmouse-info.el b/hmouse-info.el
index ff58469dc4..6b5d4954f9 100644
--- a/hmouse-info.el
+++ b/hmouse-info.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    04-Apr-89
+;; Last-Mod:     24-Jan-22 at 00:18:46 by Bob Weiner
 ;;
 ;; Copyright (C) 1989-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hmouse-key.el b/hmouse-key.el
index 1672fea7c7..73175ba458 100644
--- a/hmouse-key.el
+++ b/hmouse-key.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    30-May-94 at 00:11:57
+;; Last-Mod:     24-Jan-22 at 00:18:46 by Bob Weiner
 ;;
 ;; Copyright (C) 1994-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hmouse-mod.el b/hmouse-mod.el
index 9731a1e2f8..34a6da88a2 100644
--- a/hmouse-mod.el
+++ b/hmouse-mod.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     8-Oct-92 at 19:08:31
+;; Last-Mod:     24-Jan-22 at 00:18:46 by Bob Weiner
 ;;
 ;; Copyright (C) 1992-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hmouse-sh.el b/hmouse-sh.el
index e5e5c9cc12..d57bb222a0 100644
--- a/hmouse-sh.el
+++ b/hmouse-sh.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     3-Sep-91 at 21:40:58
+;; Last-Mod:     24-Jan-22 at 00:18:46 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hmouse-tag.el b/hmouse-tag.el
index 4ed5d973b9..9ec3887edb 100644
--- a/hmouse-tag.el
+++ b/hmouse-tag.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    24-Aug-91
+;; Last-Mod:     24-Jan-22 at 00:18:46 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hpath.el b/hpath.el
index cbc038edd6..88f4315c7d 100644
--- a/hpath.el
+++ b/hpath.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     1-Nov-91 at 00:44:23
+;; Last-Mod:     24-Jan-22 at 00:18:47 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hrmail.el b/hrmail.el
index 5a6c0045fa..958c8003bb 100644
--- a/hrmail.el
+++ b/hrmail.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     9-May-91 at 04:22:02
+;; Last-Mod:     24-Jan-22 at 00:18:47 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2016  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hsettings.el b/hsettings.el
index 5dd61e85a1..a063f1ccae 100644
--- a/hsettings.el
+++ b/hsettings.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    15-Apr-91 at 00:48:49
+;; Last-Mod:     24-Jan-22 at 00:18:47 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hsmail.el b/hsmail.el
index a035ca7e5b..1f6881d5c4 100644
--- a/hsmail.el
+++ b/hsmail.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     9-May-91 at 04:50:20
+;; Last-Mod:     24-Jan-22 at 00:18:47 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2022  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hsys-org.el b/hsys-org.el
index ead0519bd1..0d24e31873 100644
--- a/hsys-org.el
+++ b/hsys-org.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     2-Jul-16 at 14:54:14
+;; Last-Mod:     24-Jan-22 at 00:18:47 by Bob Weiner
 ;;
 ;; Copyright (C) 2016-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hsys-www.el b/hsys-www.el
index 3c0edbc622..9b53b57bc4 100644
--- a/hsys-www.el
+++ b/hsys-www.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     7-Apr-94 at 17:17:39 by Bob Weiner
+;; Last-Mod:     24-Jan-22 at 00:18:47 by Bob Weiner
 ;;
 ;; Copyright (C) 1994-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/htz.el b/htz.el
index d265aac6ad..ca750b4ed1 100644
--- a/htz.el
+++ b/htz.el
@@ -3,6 +3,7 @@
 ;; Author:       Masanobu Umeda             / Bob Weiner
 ;;
 ;; Orig-Date:    14-Oct-91 at 07:22:08
+;; Last-Mod:     24-Jan-22 at 00:18:47 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hui-dired-sidebar.el b/hui-dired-sidebar.el
index cad8deb9c4..db61382752 100644
--- a/hui-dired-sidebar.el
+++ b/hui-dired-sidebar.el
@@ -3,6 +3,7 @@
 ;; Author:       Mats Lidell
 ;;
 ;; Orig-Date:    25-Jul-20
+;; Last-Mod:     24-Jan-22 at 00:18:47 by Bob Weiner
 ;;
 ;; Copyright (C) 2020-2021 Free Software Foundation, Inc.  See the
 ;; "HY-COPY" file for license information.
diff --git a/hui-em-but.el b/hui-em-but.el
index b41c417144..4128cc8c3a 100644
--- a/hui-em-but.el
+++ b/hui-em-but.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    21-Aug-92
+;; Last-Mod:     24-Jan-22 at 00:18:47 by Bob Weiner
 ;;
 ;; Copyright (C) 1992-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hui-jmenu.el b/hui-jmenu.el
index 7fdb2cc40b..38bfb9b6da 100644
--- a/hui-jmenu.el
+++ b/hui-jmenu.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     9-Mar-94 at 23:37:28
+;; Last-Mod:     24-Jan-22 at 00:18:47 by Bob Weiner
 ;;
 ;; Copyright (C) 1994-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hui-menu.el b/hui-menu.el
index 3d3c6cca78..2222c636fc 100644
--- a/hui-menu.el
+++ b/hui-menu.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    28-Oct-94 at 10:59:44
+;; Last-Mod:     24-Jan-22 at 00:18:47 by Bob Weiner
 ;;
 ;; Copyright (C) 1994-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -411,8 +412,10 @@ REBUILD-FLAG is non-nil, in which case the menu is 
rebuilt."
                   "----"
                   ["Activate" hui:ibut-act t]
                   ["Delete-Type" (hui:htype-delete 'ibtypes) t]
+                  ["Edit"   hui:ibut-modify t]
                   ["Help"   hui:hbut-help t]
                   ["Label"  hui:ibut-label-create t]
+                  ["Modify" hui:ibut-modify 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 1295d9bb5d..2730817eab 100644
--- a/hui-mini.el
+++ b/hui-mini.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    15-Oct-91 at 20:13:17
+;; Last-Mod:     24-Jan-22 at 00:18:47 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -648,7 +649,7 @@ constructs.  If not given, the top level Hyperbole menu is 
used."
          ("Info"
           (id-info "(hyperbole)Explicit Buttons")
           "Displays manual section on explicit buttons.")
-         ("Modify" hui:ebut-modify "Modifies any desired button attributes.")
+         ("Modify" hui:ebut-modify "Modifies explicit button attributes.")
          ("Rename" hui:ebut-rename "Relabels an explicit button.")
          ("Search" hui:ebut-search
           "Locates and displays personally created buttons in context.")
@@ -688,11 +689,13 @@ constructs.  If not given, the top level Hyperbole menu 
is used."
            "Activates implicit button at point or prompts for labeled implicit 
button to activate.")
          ("DeleteIButType"   (hui:htype-delete 'ibtypes)
           "Deletes specified button type.")
+         ("Edit"   hui:ibut-modify "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.")
+         ("Modify" hui:ibut-modify "Modifies named implicit button 
attributes.")
          ("Rename" hui:ibut-rename
           "Modifies a label preceding an implicit button in the current 
buffer.")
          ("Types"  (hui:htype-help 'ibtypes 'no-sort)
diff --git a/hui-mouse.el b/hui-mouse.el
index b3be47f23b..acecd12f46 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    04-Feb-89
+;; Last-Mod:     24-Jan-22 at 00:18:48 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hui-select.el b/hui-select.el
index 408336b619..d8a896ce42 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    19-Oct-96 at 02:25:27
+;; Last-Mod:     24-Jan-22 at 00:18:48 by Bob Weiner
 ;;
 ;; Copyright (C) 1996-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hui-treemacs.el b/hui-treemacs.el
index 228c19c2b1..a107dac8b7 100644
--- a/hui-treemacs.el
+++ b/hui-treemacs.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    19-Nov-17
+;; Last-Mod:     24-Jan-22 at 00:18:48 by Bob Weiner
 ;;
 ;; Copyright (C) 2017-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hui-window.el b/hui-window.el
index 8d80455f6b..e7116af2fc 100644
--- a/hui-window.el
+++ b/hui-window.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    21-Sep-92
+;; Last-Mod:     24-Jan-22 at 00:18:52 by Bob Weiner
 ;;
 ;; Copyright (C) 1992-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hui.el b/hui.el
index a62b8ab1e2..2f6390800a 100644
--- a/hui.el
+++ b/hui.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    19-Sep-91 at 21:42:03
+;; Last-Mod:     24-Jan-22 at 00:18:52 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -195,11 +196,15 @@ a new button is created interactively with the region as 
the default label."
 Signal an error when no such button is found in the current buffer."
   (interactive (list (save-excursion
                       (hui:buf-writable-err (current-buffer) "ebut-modify")
-                      (or (ebut:label-p)
-                          (ebut:label-to-key
-                           (hargs:read-match "Button to modify: "
-                                             (ebut:alist) nil t
-                                             nil 'ebut))))))
+                      (ebut:label-to-key
+                       (hargs:read-match "Button to modify: "
+                                         (ebut:alist) nil t
+                                         (ebut:label-p t) 'ebut)))))
+  (unless (stringp lbl-key)
+    (if (called-interactively-p)
+       (error "(hui:ebut-modify): No explicit button to modify")
+      (error "(hui:ebut-modify): 'lbl-key' argument must be a string, not 
'%s'" lbl-key)))
+
   (let ((lbl (ebut:key-to-label lbl-key))
        (but-buf (current-buffer))
        actype but new-lbl)
@@ -227,8 +232,10 @@ Signal an error when no such button is found in the 
current buffer."
       (hattr:set 'hbut:current 'actype actype)
       (hattr:set 'hbut:current 'args (hargs:actype-get actype t))
       (hattr:set 'hbut:current 'action
-                (and hui:ebut-prompt-for-action (hui:action actype))))
-    (ebut:operate lbl new-lbl)
+                (and hui:ebut-prompt-for-action (hui:action actype)))
+      (set-buffer but-buf)
+      (save-excursion
+       (ebut:operate lbl new-lbl)))
     (when (called-interactively-p 'interactive)
       (hui:ebut-message t))))
 
@@ -344,9 +351,10 @@ See `hui:gibut-create' for details."
       (save-excursion
         (setq src-dir default-directory
              actype (hui:actype)
-             but-buf (set-buffer (find-file-noselect gbut:file)))
+             but-buf (find-file-noselect gbut:file))
         (hui:buf-writable-err but-buf "gbut-create")
         ;; This prevents movement of point which might be useful to user.
+       (set-buffer but-buf)
         (save-excursion
          (goto-char (point-max))
           (unless (bolp)
@@ -391,7 +399,13 @@ modification   Signal an error when no such button is 
found."
                       (hbut:label-to-key
                        (hargs:read-match "Global button to modify: "
                                          (mapcar #'list (gbut:label-list))
-                                         nil t nil 'gbut)))))
+                                         nil t (gbut:label-p t) 'gbut)))))
+  (unless (stringp lbl-key)
+    (if (called-interactively-p)
+       (error "(hui:gbut-modify): No global button to modify")
+      (error "(hui:gbut-modify): 'lbl-key' argument must be a string, not 
'%s'" lbl-key)))
+
+
   (let ((lbl (hbut:key-to-label lbl-key))
         (interactive-flag (called-interactively-p 'interactive))
        (but-buf (find-file-noselect gbut:file))
@@ -426,12 +440,13 @@ modification   Signal an error when no such button is 
found."
            (hattr:set 'hbut:current 'action
                       (and hui:ebut-prompt-for-action (hui:action actype)))
            (set-buffer but-buf)
-           (ebut:operate lbl new-lbl)
+           (save-excursion
+             (ebut:operate lbl new-lbl))
             (when interactive-flag
               (save-buffer)))
        ;; Implicit buttons
-       (save-excursion
-         (with-current-buffer but-buf
+       (with-current-buffer but-buf
+         (save-excursion
             (ibut:to lbl-key)
            (if (and interactive-flag (ibut:at-p))
                (progn
@@ -481,9 +496,10 @@ Use `hui:gbut-create' to create a global explicit button."
         delimited-label)
     (save-excursion
       (setq delimited-label (concat ibut:label-start lbl ibut:label-end)
-           but-buf (set-buffer (find-file-noselect gbut:file)))
+           but-buf (find-file-noselect gbut:file))
       (hui:buf-writable-err but-buf "gibut-create")
       ;; This prevents movement of point which might be useful to user.
+      (set-buffer but-buf)
       (save-excursion
        (goto-char (point-max))
         (unless (bolp)
@@ -690,6 +706,75 @@ its buttons, the label is simply inserted at point."
             (hui:ibut-message nil)))
          (t (error "(hui:ibut-label-create): To add a label, point must be 
within the text of an implicit button")))))
 
+(defun hui:ibut-modify (lbl-key)
+  "Modify a named implicit Hyperbole button given by LBL-KEY.
+Signal an error when no such button is found in the current buffer."
+  (interactive (list (save-excursion
+                      (hui:buf-writable-err (current-buffer) "ibut-modify")
+                      (ibut:label-to-key
+                       (hargs:read-match "Button to modify: "
+                                         (ibut:alist) nil t
+                                         (ibut:label-p t) 'ibut)))))
+  (unless (stringp lbl-key)
+    (if (called-interactively-p)
+       (error "(hui:ibut-modify): No named implicit button to modify")
+      (error "(hui:ibut-modify): 'lbl-key' argument must be a string, not 
'%s'" lbl-key)))
+
+  (let ((lbl (ibut:key-to-label lbl-key))
+        (interactive-flag (called-interactively-p 'interactive))
+       (but-buf (current-buffer))
+       actype args but new-lbl)
+    (hattr:set 'hbut:current 'loc (hui:key-src but-buf))
+    (hattr:set 'hbut:current 'dir (hui:key-dir but-buf))
+    (save-excursion
+      (unless (called-interactively-p 'interactive)
+       (hui:buf-writable-err but-buf "ibut-modify"))
+
+      (unless (setq but (ibut:get lbl-key but-buf))
+       (pop-to-buffer but-buf)
+       (hypb:error "(ibut-modify): Invalid button, no data for '%s'" lbl))
+
+      (setq new-lbl
+           (hargs:read
+            "Change button name to: "
+            (lambda (lbl)
+              (and (not (string-equal lbl "")) (<= (length lbl) 
(hbut:max-len))))
+            lbl
+            (format "(ibut-modify): Enter a string of at most %s chars."
+                    (hbut:max-len))
+            'string))
+
+      ;; Implicit buttons
+      (with-current-buffer but-buf
+       (save-excursion
+          (ibut:to lbl-key)
+         (if (and interactive-flag (ibut:at-p))
+             (progn
+                ;; lbl-start and lbl-end mark the text of the ibut, not
+                ;; its name.
+               (when (hattr:get 'hbut:current 'lbl-end)
+                  (let* ((start (hattr:get 'hbut:current 'lbl-start))
+                         (end (hattr:get 'hbut:current 'lbl-end))
+                         (old-text (buffer-substring start end))
+                         (new-text (read-string "Modify ibut text: " 
old-text)))
+                    (save-excursion
+                     (goto-char start)
+                     (delete-region start end)
+                     (insert new-text))
+                    (hattr:set 'hbut:current 'lbl-key (ibut:label-to-key 
new-lbl))))
+                ;; Have to do name change after lbl-start/lbl-end are
+                ;; used so buffer positions do not change.
+               (ibut:rename lbl new-lbl)
+                (save-buffer)
+               (hui:ibut-message t))
+            (when (and interactive-flag
+                      (ibut:rename lbl new-lbl))
+             (save-buffer)
+             (message "Button renamed to %s%s%s"
+                      ibut:label-start
+                      new-lbl
+                      ibut:label-end))))))))
+
 (defun hui:ibut-rename (lbl-key)
   "Rename a label preceding a Hyperbole implicit button in the current buffer 
given by LBL-KEY.
 Signal an error when no such button is found in the current buffer."
@@ -848,17 +933,20 @@ See also documentation for `hui:link-possible-types'."
         act)))
 
 (defun hui:actype (&optional default-actype prompt)
-  "Using optional DEFAULT-ACTYPE, PROMPT for a button action type.
+  "Using optional DEFAULT-ACTYPE, PROMPT for and return a button action type.
 DEFAULT-ACTYPE may be a valid symbol or symbol name."
   (when (and default-actype (symbolp default-actype))
     (setq default-actype (symbol-name default-actype)
          default-actype (actype:def-symbol default-actype)
          default-actype (when default-actype (symbol-name default-actype))))
   (if (or (null default-actype) (stringp default-actype))
-      (actype:elisp-symbol
-       (hargs:read-match (or prompt "Button's action type: ")
-                        (mapcar #'list (htype:names 'actypes))
-                        nil t default-actype 'actype))
+      (let ((actype-name
+            (hargs:read-match (or prompt "Button's action type: ")
+                              (nconc
+                               (mapcar #'list (htype:names 'actypes))
+                               (mapcar #'list (all-completions "" obarray)))
+                              nil t default-actype 'actype)))
+       (or (actype:def-symbol actype-name) (intern actype-name)))
     (hypb:error "(actype): Invalid default action type received")))
 
 (defun hui:buf-writable-err (but-buf func-name)
diff --git a/hvar.el b/hvar.el
index a930d00f20..80e497c1de 100644
--- a/hvar.el
+++ b/hvar.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     1-Oct-91 at 14:00:24
+;; Last-Mod:     24-Jan-22 at 00:18:52 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hversion.el b/hversion.el
index d023fd88e0..e2e82665bb 100644
--- a/hversion.el
+++ b/hversion.el
@@ -4,6 +4,7 @@
 ;; Maintainer:   Bob Weiner, Mats Lidell
 ;;
 ;; Orig-Date:     1-Jan-94
+;; Last-Mod:     24-Jan-22 at 00:18:53 by Bob Weiner
 ;;
 ;; Copyright (C) 1994-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hvm.el b/hvm.el
index 7143aed7c6..408b460f65 100644
--- a/hvm.el
+++ b/hvm.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    10-Oct-91 at 01:51:12
+;; Last-Mod:     24-Jan-22 at 00:18:53 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hycontrol.el b/hycontrol.el
index 656e02390f..9fd5b8452e 100644
--- a/hycontrol.el
+++ b/hycontrol.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     1-Jun-16 at 15:35:36
+;; Last-Mod:     24-Jan-22 at 00:19:05 by Bob Weiner
 ;;
 ;; Copyright (C) 2016-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hypb-ert.el b/hypb-ert.el
index f67b537bc3..b3f1e89027 100644
--- a/hypb-ert.el
+++ b/hypb-ert.el
@@ -1,8 +1,9 @@
 ;;; hypb-ert.el --- Hyperbole test runner action button types    -*- 
lexical-binding: t; -*-
 
-;; Author: Mats Lidell <matsl@gnu.org> and Bob Weiner <rsw@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org> and Bob Weiner <rsw@gnu.org>
 ;;
-;; Orig-Date: 31-Mar-21 at 21:11:00
+;; Orig-Date:    31-Mar-21 at 21:11:00
+;; Last-Mod:     24-Jan-22 at 00:36:17 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hypb-maintenance.el b/hypb-maintenance.el
index ea814e125b..4e3afec9b9 100644
--- a/hypb-maintenance.el
+++ b/hypb-maintenance.el
@@ -1,5 +1,10 @@
 ;;; hypb-maintenance.el --- functions for maintenance tasks  -*- 
lexical-binding: t; -*-
 ;;
+;; Author:       Mats Lidell <matsl@gnu.org>
+;;
+;; Orig-Date:    31-Mar-21 at 21:11:00
+;; Last-Mod:     24-Jan-22 at 00:36:39 by Bob Weiner
+;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
diff --git a/hypb.el b/hypb.el
index 78620051ad..5d524bcbb6 100644
--- a/hypb.el
+++ b/hypb.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     6-Oct-91 at 03:42:38
+;; Last-Mod:     24-Jan-22 at 00:21:55 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2019  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hyperbole.el b/hyperbole.el
index 5daaa167d2..0f8734a7ea 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -5,6 +5,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:     24-Jan-22 at 00:23:14 by Bob Weiner
 ;; Released:         03-May-21
 ;; Version:          8.0.0pre
 ;; Keywords:         comm, convenience, files, frames, hypermedia, languages, 
mail, matching, mouse, multimedia, outlines, tools, wp
diff --git a/hyrolo-demo.el b/hyrolo-demo.el
index 8bd4ce43a0..82a10ee8c3 100644
--- a/hyrolo-demo.el
+++ b/hyrolo-demo.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     4-Nov-17 at 13:56:47
+;; Last-Mod:     24-Jan-22 at 00:23:34 by Bob Weiner
 ;;
 ;; Copyright (C) 2017-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hyrolo-logic.el b/hyrolo-logic.el
index 2ce58399da..854773a359 100644
--- a/hyrolo-logic.el
+++ b/hyrolo-logic.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    13-Jun-89 at 22:57:33
+;; Last-Mod:     24-Jan-22 at 00:23:35 by Bob Weiner
 ;;
 ;; Copyright (C) 1989-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hyrolo-menu.el b/hyrolo-menu.el
index 12f513db48..54ed74d334 100644
--- a/hyrolo-menu.el
+++ b/hyrolo-menu.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    28-Oct-94 at 10:59:44
+;; Last-Mod:     24-Jan-22 at 00:23:35 by Bob Weiner
 ;;
 ;; Copyright (C) 1994-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hyrolo.el b/hyrolo.el
index 39ca3c0328..272a994076 100644
--- a/hyrolo.el
+++ b/hyrolo.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     7-Jun-89 at 22:08:29
+;; Last-Mod:     24-Jan-22 at 00:23:35 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/hywconfig.el b/hywconfig.el
index 44d6946bc0..50cad1a80c 100644
--- a/hywconfig.el
+++ b/hywconfig.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    15-Mar-89
+;; Last-Mod:     24-Jan-22 at 00:23:35 by Bob Weiner
 ;;
 ;; Copyright (C) 1989-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/kotl/kcell.el b/kotl/kcell.el
index 80590a7c55..763470045a 100644
--- a/kotl/kcell.el
+++ b/kotl/kcell.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    5/1/1993
+;; Last-Mod:     24-Jan-22 at 00:25:12 by Bob Weiner
 ;;
 ;; Copyright (C) 1993-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/kotl/kexport.el b/kotl/kexport.el
index 15978b2cce..e8f86acfc8 100644
--- a/kotl/kexport.el
+++ b/kotl/kexport.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    26-Feb-98
+;; Last-Mod:     24-Jan-22 at 00:25:17 by Bob Weiner
 ;;
 ;; Copyright (C) 1998-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/kotl/kfile.el b/kotl/kfile.el
index e4a61d72dd..28c407604b 100644
--- a/kotl/kfile.el
+++ b/kotl/kfile.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    10/31/93
+;; Last-Mod:     24-Jan-22 at 00:25:17 by Bob Weiner
 ;;
 ;; Copyright (C) 1993-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/kotl/kfill.el b/kotl/kfill.el
index 029de86666..ef137f82f9 100644
--- a/kotl/kfill.el
+++ b/kotl/kfill.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    23-Jan-94
+;; Last-Mod:     24-Jan-22 at 00:25:17 by Bob Weiner
 ;;
 ;; Copyright (C) 1994-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/kotl/kimport.el b/kotl/kimport.el
index 13e3d78142..a8a28d35bb 100644
--- a/kotl/kimport.el
+++ b/kotl/kimport.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    15-Nov-93 at 11:57:05
+;; Last-Mod:     24-Jan-22 at 00:25:18 by Bob Weiner
 ;;
 ;; Copyright (C) 1993-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/kotl/klabel.el b/kotl/klabel.el
index 70a6f0b736..1224afba12 100644
--- a/kotl/klabel.el
+++ b/kotl/klabel.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    17-Apr-94
+;; Last-Mod:     24-Jan-22 at 00:25:18 by Bob Weiner
 ;;
 ;; Copyright (C) 1994-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/kotl/klink.el b/kotl/klink.el
index c483e4af43..f0a587a0a9 100644
--- a/kotl/klink.el
+++ b/kotl/klink.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    15-Nov-93 at 12:15:16
+;; Last-Mod:     24-Jan-22 at 00:25:18 by Bob Weiner
 ;;
 ;; Copyright (C) 1993-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/kotl/kmenu.el b/kotl/kmenu.el
index ad1a50f34d..e417c812b2 100644
--- a/kotl/kmenu.el
+++ b/kotl/kmenu.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    28-Mar-94 at 11:22:09
+;; Last-Mod:     24-Jan-22 at 00:25:21 by Bob Weiner
 ;;
 ;; Copyright (C) 1994-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/kotl/kotl-mode.el b/kotl/kotl-mode.el
index 34df70cb43..d2ea995561 100644
--- a/kotl/kotl-mode.el
+++ b/kotl/kotl-mode.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    6/30/93
+;; Last-Mod:     24-Jan-22 at 00:25:28 by Bob Weiner
 ;;
 ;; Copyright (C) 1993-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/kotl/kotl-orgtbl.el b/kotl/kotl-orgtbl.el
index 48eaaf2f3e..ea6379b50b 100644
--- a/kotl/kotl-orgtbl.el
+++ b/kotl/kotl-orgtbl.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    10/18/2020
+;; Last-Mod:     24-Jan-22 at 00:25:29 by Bob Weiner
 ;;
 ;; Copyright (C) 2020-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/kotl/kproperty.el b/kotl/kproperty.el
index 1f83804c9d..ffd93c6690 100644
--- a/kotl/kproperty.el
+++ b/kotl/kproperty.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    7/27/93
+;; Last-Mod:     24-Jan-22 at 00:25:31 by Bob Weiner
 ;;
 ;; Copyright (C) 1993-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/kotl/kview.el b/kotl/kview.el
index ed0741a9f3..ad7d808c85 100644
--- a/kotl/kview.el
+++ b/kotl/kview.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    6/30/93
+;; Last-Mod:     24-Jan-22 at 00:25:32 by Bob Weiner
 ;;
 ;; Copyright (C) 1993-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/kotl/kvspec.el b/kotl/kvspec.el
index 89241f4595..cbcec15f9a 100644
--- a/kotl/kvspec.el
+++ b/kotl/kvspec.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    21-Oct-95 at 15:17:07
+;; Last-Mod:     24-Jan-22 at 00:25:33 by Bob Weiner
 ;;
 ;; Copyright (C) 1995-2021  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index 140b73b602..88a923c22a 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -962,7 +962,7 @@ A long video demonstrating most of HyControl's features is 
available at
 The above are the best interactive ways to learn about Hyperbole.
 
 @node Documentation, Hyperbole Hooks, Invocation, Usage
-@section Documentation
+@section   Documentation
 
 @vindex Info-directory-list
 @vindex hyperb:dir
@@ -997,7 +997,7 @@ is: @file{~/.emacs.d/elpa/hyperbole-$@{hyperb:version@}/}.
 
 
 @node Hyperbole Hooks,  , Documentation, Usage
-@section Hyperbole Hooks
+@section   Hyperbole Hooks
 @vindex hyperbole-init-hook
 @vindex hyperbole-mode-hook
 @vindex hyperbole-mode-on-hook
@@ -1509,7 +1509,7 @@ Mouse Keys}.
 @end menu
 
 @node Creating and Deleting Windows, Saving and Restoring Window 
Configurations, Smart Mouse Key Drags, Smart Mouse Key Drags
-@subsection Creating and Deleting Windows
+@subsection  Creating and Deleting Windows
 
 @cindex drag, horizontal
 @cindex horizontal drag
@@ -1533,7 +1533,7 @@ you'll be left with windows of differing heights.  Use 
@bkbd{C-x +} to
 re-balance the sizes of the remaining windows, so they are fairly even.
 
 @node Saving and Restoring Window Configurations, Resizing Windows, Creating 
and Deleting Windows, Smart Mouse Key Drags
-@subsection Saving and Restoring Window Configurations
+@subsection  Saving and Restoring Window Configurations
 
 @cindex window configuration drag
 @cindex drag, window configuration
@@ -1554,7 +1554,7 @@ way they were saved.  Since a ring is circular, after the 
oldest element is
 restored, the newest element will again be restored and so on.
 
 @node Resizing Windows, Moving Frames, Saving and Restoring Window 
Configurations, Smart Mouse Key Drags
-@subsection Resizing Windows
+@subsection  Resizing Windows
 
 @cindex resizing windows
 @cindex drag, resize window
@@ -1567,7 +1567,7 @@ window separator to where you want it.  Drags from a 
blank area of a
 modeline show visible feedback as the window is resized.
 
 @node Moving Frames, Dragging Buffers, Resizing Windows, Smart Mouse Key Drags
-@subsection Moving Frames
+@subsection  Moving Frames
 
 @cindex dragging frames
 @cindex moving frames
@@ -1594,7 +1594,7 @@ from the titlebar.  If you use a click-to-focus window 
manager, click on
 the desired frame first and then depress to drag.
 
 @node Dragging Buffers,  , Moving Frames, Smart Mouse Key Drags
-@subsection Dragging Buffers, Windows and Items
+@subsection  Dragging Buffers, Windows and Items
 
 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
@@ -2001,10 +2001,12 @@ activate it whenever the need arises.
 Global buttons are managed with the Hyperbole Gbut/ menu accessed with
 @bkbd{C-h h g}.  The Create item, @bkbd{C-h h g c}, prompts for a
 global button name, an action type, and the action's associated
-arguments, such as a file to link to.  It then creates the button.  To
-activate the button, use the Act menu item, @bkbd{C-h h g a}.  Type
-the button's name and its action will be  To remove the
-button, use the Delete menu item, @bkbd{C-h h g d}; @pxref{Deletion}.
+arguments, such as a file to which to link.  It then creates the button.
+To activate the button, use the Act menu item, @bkbd{C-h h g a}.  Type
+the button's name, press @bkbd{@key{RET}}, and then Hyperbole prompts
+you for its action type and associated arguments.  @bkbd{C-h h g e} to
+edit an existing global button.  To remove a button, use the Delete menu
+item, @bkbd{C-h h g d}; @pxref{Deletion}.
 
 Global buttons are actually explicit buttons stored at the end of your
 personal button file, @pxref{Button Files}.  You can always go into that
@@ -2066,6 +2068,7 @@ point-and-click type behavior beyond implicit button 
types.  @xref{Smart
 Key Operations}.
 
 @cindex implicit button labels
+@cindex implicit button names
 @cindex labeling implicit buttons
 @cindex naming implicit buttons
 Individual implicit buttons may be labeled/named, allowing activation
@@ -2076,11 +2079,16 @@ button with a label of 'My Emacs Files':
 <[My Emacs Files]>: "~/.emacs.d"
 @end example
 
+@kindex C-h h i e
+@kindex C-h h i l
 The label is delimited by @samp{<[} and @samp{]>} and can be followed
 by any number of :, - or = separator characters, including none.  You
 can activate the button either from its label or its text.  With point
 on the text of an implicit button, @bkbd{C-h h i l} will label it.  Or
-you may simply type the label and delimiters manually.
+you may simply type the label and delimiters manually.  You can also
+simply edit any implicit button manually but for a little more help in
+editing named implicit buttons, use @bkbd{C-h h i e} which prompts
+you to rename the button and to change its text (the button itself).
 
 @menu
 * Implicit Button Types::
@@ -2754,7 +2762,7 @@ by the @code{<test-name>} argument, an unquoted name.
 
 
 @node Action Buttons,  , Implicit Button Types, Implicit Buttons
-@subsection Action Buttons
+@subsection  Action Buttons
 
 @cindex action button
 @cindex implicit action button
diff --git a/set.el b/set.el
index 5090262cef..81ec3423d3 100644
--- a/set.el
+++ b/set.el
@@ -3,6 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    26-Sep-91 at 19:24:19
+;; Last-Mod:     24-Jan-22 at 00:24:42 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/smart-clib-sym b/smart-clib-sym
index f1b6403803..fab7de414c 100644
--- a/smart-clib-sym
+++ b/smart-clib-sym
@@ -6,6 +6,7 @@
 # Author:       Bob Weiner
 #
 # Orig-Date:     5-Oct-91 at 03:29:05
+# Last-Mod:     24-Jan-22 at 00:52:07 by Bob Weiner
 #
 # Copyright (C) 1991-2016  Free Software Foundation, Inc.
 # See the "HY-COPY" file for license information.
diff --git a/test/demo-tests.el b/test/demo-tests.el
index ed7ff5c769..654d841351 100644
--- a/test/demo-tests.el
+++ b/test/demo-tests.el
@@ -1,8 +1,9 @@
 ;;; demo-tests.el --- unit tests from examples in the DEMO         -*- 
lexical-binding: t; -*-
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 30-Jan-21 at 12:00:00
+;; Orig-Date:    30-Jan-21 at 12:00:00
+;; Last-Mod:     24-Jan-22 at 00:38:00 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/hactypes-tests.el b/test/hactypes-tests.el
index 5f5d9d3b91..d21ce41069 100644
--- a/test/hactypes-tests.el
+++ b/test/hactypes-tests.el
@@ -1,8 +1,9 @@
 ;;; hactypes-test.el -- Ert tests for hactypes        -*- lexical-binding: t; 
-*-
 ;;
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 30-Jan-21 at 12:00:00
+;; Orig-Date:    30-Jan-21 at 12:00:00
+;; Last-Mod:     24-Jan-22 at 00:38:11 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/hbut-tests.el b/test/hbut-tests.el
index 6170f4358b..f66e268f92 100644
--- a/test/hbut-tests.el
+++ b/test/hbut-tests.el
@@ -1,8 +1,9 @@
 ;;; hbut-tests.el --- hbut unit tests         -*- lexical-binding: t; -*-
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 30-may-21 at 09:33:00
+;; Orig-Date:    30-may-21 at 09:33:00
+;; Last-Mod:     24-Jan-22 at 00:38:20 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -101,6 +102,66 @@ Needed since hyperbole expands all links to absolute paths 
and
             (should (equal (hattr:get (hbut:at-p) 'lbl-key) "global"))))
       (delete-file test-file))))
 
+(ert-deftest gbut-program-eval-elisp ()
+  "Programatically create gbut with eval-elisp."
+  (let ((test-file (make-temp-file "gbut" nil ".txt")))
+    (setq test-buffer (find-file-noselect test-file))
+    (unwind-protect
+       (progn
+          (with-mock
+            (mock (find-file-noselect (expand-file-name hbmap:filename 
hbmap:dir-user)) => test-buffer)
+            (gbut:ebut-program "global" 'eval-elisp '()))
+         (with-current-buffer test-buffer
+            (should (eq (hattr:get (hbut:at-p) 'actype) 'actypes::eval-elisp))
+            (should (equal (hattr:get (hbut:at-p) 'args) '(())))
+            (should (equal (hattr:get (hbut:at-p) 'lbl-key) "global"))))
+      (delete-file test-file))))
+
+(ert-deftest gbut-program-link-to-file ()
+  "Programatically create gbut with eval-elisp."
+  (let ((test-file (make-temp-file "gbut" nil ".txt")))
+    (setq test-buffer (find-file-noselect test-file))
+    (unwind-protect
+       (progn
+          (with-mock
+            (mock (find-file-noselect (expand-file-name hbmap:filename 
hbmap:dir-user)) => test-buffer)
+            (gbut:ebut-program "global" 'link-to-file test-file))
+         (with-current-buffer test-buffer
+            (should (eq (hattr:get (hbut:at-p) 'actype) 
'actypes::link-to-file))
+            (should (equal (hattr:get (hbut:at-p) 'args) (list test-file)))
+            (should (equal (hattr:get (hbut:at-p) 'lbl-key) "global"))))
+      (delete-file test-file))))
+
+(ert-deftest gbut-program-link-to-file-line ()
+  "Programatically create gbut with eval-elisp."
+  (let ((test-file (make-temp-file "gbut" nil ".txt")))
+    (setq test-buffer (find-file-noselect test-file))
+    (unwind-protect
+       (progn
+          (with-mock
+            (mock (find-file-noselect (expand-file-name hbmap:filename 
hbmap:dir-user)) => test-buffer)
+            (gbut:ebut-program "global" 'link-to-file-line test-file 10))
+         (with-current-buffer test-buffer
+            (should (eq (hattr:get (hbut:at-p) 'actype) 
'actypes::link-to-file-line))
+            (should (equal (hattr:get (hbut:at-p) 'args) (list test-file 10)))
+            (should (equal (hattr:get (hbut:at-p) 'lbl-key) "global"))))
+      (delete-file test-file))))
+
+(ert-deftest gbut-program-link-to-file-line-and-column ()
+  "Programatically create gbut with eval-elisp."
+  (let ((test-file (make-temp-file "gbut" nil ".txt")))
+    (setq test-buffer (find-file-noselect test-file))
+    (unwind-protect
+       (progn
+          (with-mock
+            (mock (find-file-noselect (expand-file-name hbmap:filename 
hbmap:dir-user)) => test-buffer)
+            (gbut:ebut-program "global" 'link-to-file-line-and-column 
test-file 10 20))
+         (with-current-buffer test-buffer
+            (should (eq (hattr:get (hbut:at-p) 'actype) 
'actypes::link-to-file-line-and-column))
+            (should (equal (hattr:get (hbut:at-p) 'args) (list test-file 10 
20)))
+            (should (equal (hattr:get (hbut:at-p) 'lbl-key) "global"))))
+      (delete-file test-file))))
+
 (ert-deftest hypb:program-create-ebut-in-buffer ()
   "Create button with hypb:program in buffer."
   (with-temp-buffer
diff --git a/test/hib-kbd-tests.el b/test/hib-kbd-tests.el
index 0e8680f503..9fb2b2e465 100644
--- a/test/hib-kbd-tests.el
+++ b/test/hib-kbd-tests.el
@@ -1,8 +1,9 @@
 ;;; hib-kbd-tests.el --- unit test for hib-kbd        -*- lexical-binding: t; 
-*-
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 30-Jan-21 at 12:00:00
+;; Orig-Date:    30-Jan-21 at 12:00:00
+;; Last-Mod:     24-Jan-22 at 00:38:30 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/hib-social-tests.el b/test/hib-social-tests.el
index 57a51448c6..fe95e60e48 100644
--- a/test/hib-social-tests.el
+++ b/test/hib-social-tests.el
@@ -1,8 +1,9 @@
 ;;; hib-social-tests.el --- Test for hib-social      -*- lexical-binding: t; 
-*-
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 20-Feb-21 at 23:24:00
+;; Orig-Date:    20-Feb-21 at 23:24:00
+;; Last-Mod:     24-Jan-22 at 00:38:39 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/hibtypes-tests.el b/test/hibtypes-tests.el
index 3766dc626c..7311e1ae87 100644
--- a/test/hibtypes-tests.el
+++ b/test/hibtypes-tests.el
@@ -1,8 +1,9 @@
 ;;; hibtypes-tests.el --- unit test for hib-kbd        -*- lexical-binding: t; 
-*-
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 20-Feb-21 at 23:45:00
+;; Orig-Date:    20-Feb-21 at 23:45:00
+;; Last-Mod:     24-Jan-22 at 00:38:50 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -130,11 +131,11 @@
   "Pathname with line and position specification."
   (unwind-protect
       (with-temp-buffer
-        (insert "\"${load-path}/hypb.el:10:5\"")
+        (insert "\"${load-path}/hypb.el:11:5\"")
         (goto-char 2)
         (ibtypes::pathname-line-and-column)
         (should (string= "hypb.el" (buffer-name)))
-        (should (= (line-number-at-pos) 10))
+        (should (= (line-number-at-pos) 11))
         (should (= (current-column) 5)))
     (kill-buffer "hypb.el")))
 
@@ -222,7 +223,7 @@
 (ert-deftest ibtypes::ctags-vgrind-test ()
   (unwind-protect
       (with-temp-buffer
-        (insert "hy-test-helpers:consume-input-events hy-test-helpers.el 22\n")
+        (insert "hy-test-helpers:consume-input-events hy-test-helpers.el 23\n")
         (goto-char (point-min))
         (forward-char 4)
         (let ((default-directory (expand-file-name "test" hyperb:dir)))
@@ -237,8 +238,8 @@
   (unwind-protect
       (with-temp-buffer
         (insert "\n")
-        (insert "hy-test-helpers.el,103\n")
-        (insert "(defun hy-test-helpers:consume-input-events 22,359\n")
+        (insert "hy-test-helpers.el,237\n")
+        (insert "(defun hy-test-helpers:consume-input-events 23,518\n")
         (rename-buffer (concat "TAGS" (buffer-name)))
         (goto-char (point-min))
         (forward-line 2)
diff --git a/test/hmouse-drv-tests.el b/test/hmouse-drv-tests.el
index c6340c9e55..e08bed9164 100644
--- a/test/hmouse-drv-tests.el
+++ b/test/hmouse-drv-tests.el
@@ -1,8 +1,9 @@
 ;;; hmouse-drv-tests.el --- hmouse-drv unit tests         -*- lexical-binding: 
t; -*-
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 28-Feb-21 at 22:52:00
+;; Orig-Date:    28-Feb-21 at 22:52:00
+;; Last-Mod:     24-Jan-22 at 00:39:17 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -313,11 +314,11 @@
   "Pathname with `load-path', line and position specification."
   (unwind-protect
       (with-temp-buffer
-        (insert "\"${load-path}/hypb.el:10:5\"")
+        (insert "\"${load-path}/hypb.el:11:5\"")
         (goto-char 2)
         (action-key)
         (should (string= "hypb.el" (buffer-name)))
-        (should (= (line-number-at-pos) 10))
+        (should (= (line-number-at-pos) 11))
         (should (= (current-column) 5)))
     (kill-buffer "hypb.el")))
 
@@ -376,7 +377,7 @@
 (ert-deftest hbut-ctags-vgrind-test ()
   (unwind-protect
       (with-temp-buffer
-        (insert "hy-test-helpers:consume-input-events hy-test-helpers.el 22\n")
+        (insert "hy-test-helpers:consume-input-events hy-test-helpers.el 23\n")
         (goto-char (point-min))
         (forward-char 4)
         (let ((default-directory (expand-file-name "test" hyperb:dir)))
@@ -391,8 +392,8 @@
   (unwind-protect
       (with-temp-buffer
         (insert "\n")
-        (insert "hy-test-helpers.el,103\n")
-        (insert "(defun hy-test-helpers:consume-input-events 22,359\n")
+        (insert "hy-test-helpers.el,237\n")
+        (insert "(defun hy-test-helpers:consume-input-events 23,518\n")
         (rename-buffer (concat "TAGS" (buffer-name)))
         (goto-char (point-min))
         (forward-line 2)
diff --git a/test/hmouse-info-tests.el b/test/hmouse-info-tests.el
index 18e123f8b7..568de513ec 100644
--- a/test/hmouse-info-tests.el
+++ b/test/hmouse-info-tests.el
@@ -1,8 +1,9 @@
 ;;; hmouse-info-tests.el --- hmouse-info unit tests         -*- 
lexical-binding: t; -*-
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 29-Dec-21 at 09:02:00
+;; Orig-Date:    29-Dec-21 at 09:02:00
+;; Last-Mod:     24-Jan-22 at 00:39:27 by Bob Weiner
 ;;
 ;; Copyright (C) 2021-2022  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/hpath-tests.el b/test/hpath-tests.el
index 0431e91cf8..6714def427 100644
--- a/test/hpath-tests.el
+++ b/test/hpath-tests.el
@@ -1,8 +1,9 @@
 ;;; hpath-tests.el --- unit tests for hpath         -*- lexical-binding: t; -*-
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 28-Feb-21 at 23:26:00
+;; Orig-Date:    28-Feb-21 at 23:26:00
+;; Last-Mod:     24-Jan-22 at 00:39:38 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/hsys-org-tests.el b/test/hsys-org-tests.el
index 3a9dfd8217..4ba11a1ee6 100644
--- a/test/hsys-org-tests.el
+++ b/test/hsys-org-tests.el
@@ -1,10 +1,9 @@
 ;;; hsys-org-tests.el --- hsys-org tests            -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Mats Lidell
-
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 23-Apr-21 at 20:55:00
+;; Orig-Date:    23-Apr-21 at 20:55:00
+;; Last-Mod:     24-Jan-22 at 00:40:05 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/hui-tests.el b/test/hui-tests.el
index d3fe147b56..15b2409125 100644
--- a/test/hui-tests.el
+++ b/test/hui-tests.el
@@ -1,8 +1,9 @@
 ;;; hui-tests.el --- Tests for hui.el                -*- lexical-binding: t; 
-*-
 ;;
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 30-Jan-21 at 12:00:00
+;; Orig-Date:    30-Jan-21 at 12:00:00
+;; Last-Mod:     24-Jan-22 at 00:40:28 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -17,6 +18,7 @@
 
 (require 'ert)
 (require 'with-simulated-input)
+(require 'el-mock)
 (require 'hui)
 
 (load (expand-file-name "hy-test-helpers"
@@ -152,6 +154,67 @@ Modifying the button but keeping the label creates a 
dubbel label."
         (kill-buffer "*info*")
         (delete-file file)))))
 
+(ert-deftest hui-gibut-create-link-to-file ()
+  "Programatically create implicit button link to file."
+  (let ((test-file (make-temp-file "gbut" nil ".txt")))
+    (setq test-buffer (find-file-noselect test-file))
+    (unwind-protect
+       (progn
+          (with-mock
+            (mock (find-file-noselect gbut:file) => test-buffer)
+            (hui:gibut-create "global" test-file))
+         (with-current-buffer test-buffer
+            (should (eq (hattr:get (hbut:at-p) 'actype) 
'actypes::link-to-file))
+            (should (equal (hattr:get (hbut:at-p) 'args) (list test-file)))
+            (should (equal (hattr:get (hbut:at-p) 'lbl-key) "global"))))
+      (delete-file test-file))))
+
+(ert-deftest hui-gibut-create-link-to-file-line ()
+  "Programatically create implicit button link to file and line."
+  (let ((test-file (make-temp-file "gbut" nil ".txt")))
+    (setq test-buffer (find-file-noselect test-file))
+    (unwind-protect
+       (progn
+          (with-mock
+            (mock (find-file-noselect gbut:file) => test-buffer)
+            (hui:gibut-create "global" (concat test-file ":10")))
+         (with-current-buffer test-buffer
+            (should (eq (hattr:get (hbut:at-p) 'actype) 
'actypes::link-to-file-line))
+            (should (equal (hattr:get (hbut:at-p) 'args) (list test-file 10)))
+            (should (equal (hattr:get (hbut:at-p) 'lbl-key) "global"))))
+      (delete-file test-file))))
+
+(ert-deftest hui-gibut-create-link-to-file-line-and-column ()
+  "Programatically create implicit button link to file, line and column."
+  (let ((test-file (make-temp-file "gbut" nil ".txt")))
+    (setq test-buffer (find-file-noselect test-file))
+    (unwind-protect
+       (progn
+          (with-mock
+            (mock (find-file-noselect gbut:file) => test-buffer)
+            (hui:gibut-create "global" (concat test-file ":10:20")))
+         (with-current-buffer test-buffer
+            (should (eq (hattr:get (hbut:at-p) 'actype) 
'actypes::link-to-file-line-and-column))
+            (should (equal (hattr:get (hbut:at-p) 'args) (list test-file 10 
20)))
+            (should (equal (hattr:get (hbut:at-p) 'lbl-key) "global"))))
+      (delete-file test-file))))
+
+(ert-deftest hui-gibut-create-info-node ()
+  "Programatically create implicit button link to info node."
+  (let ((test-file (make-temp-file "gbut" nil ".txt"))
+        (info-node "(hyperbole)Implicit Button"))
+    (setq test-buffer (find-file-noselect test-file))
+    (unwind-protect
+       (progn
+          (with-mock
+            (mock (find-file-noselect gbut:file) => test-buffer)
+            (hui:gibut-create "global" (concat "\"" info-node "\"")))
+         (with-current-buffer test-buffer
+            (should (eq (hattr:get (hbut:at-p) 'actype) 
'actypes::link-to-Info-node))
+            (should (equal (hattr:get (hbut:at-p) 'args) (list info-node)))
+            (should (equal (hattr:get (hbut:at-p) 'lbl-key) "global"))))
+      (delete-file test-file))))
+
 ;; This file can't be byte-compiled without `with-simulated-input' which
 ;; is not part of the actual dependencies, so:
 ;;   Local Variables:
diff --git a/test/hy-test-dependencies.el b/test/hy-test-dependencies.el
index 442821489b..7ad64ea37b 100644
--- a/test/hy-test-dependencies.el
+++ b/test/hy-test-dependencies.el
@@ -1,10 +1,9 @@
 ;;; hy-test-dependencies.el --- Dependencies for running the tests  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Mats Lidell
-
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 20-Feb-21 at 23:16:00
+;; Orig-Date:    20-Feb-21 at 23:16:00
+;; Last-Mod:     24-Jan-22 at 00:40:43 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/hy-test-helpers.el b/test/hy-test-helpers.el
index 528c3320e6..196d122d49 100644
--- a/test/hy-test-helpers.el
+++ b/test/hy-test-helpers.el
@@ -1,8 +1,9 @@
 ;;; hy-test-helpers.el --- unit test helpers         -*- lexical-binding: t; 
-*-
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 30-Jan-21 at 12:00:00
+;; Orig-Date:    30-Jan-21 at 12:00:00
+;; Last-Mod:     24-Jan-22 at 00:40:54 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/hypb-tests.el b/test/hypb-tests.el
index 6e9d50e4f5..fefff6a0bc 100644
--- a/test/hypb-tests.el
+++ b/test/hypb-tests.el
@@ -1,8 +1,9 @@
 ;;; hypb-tests.el --- test for hypb.el         -*- lexical-binding: t; -*-
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 5-Apr-21 at 18:53:10
+;; Orig-Date:     5-Apr-21 at 18:53:10
+;; Last-Mod:     24-Jan-22 at 00:41:04 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/hyperbole-tests.el b/test/hyperbole-tests.el
index 5483f9e10b..d558165aed 100644
--- a/test/hyperbole-tests.el
+++ b/test/hyperbole-tests.el
@@ -1,8 +1,9 @@
 ;;; hyperbole-tests.el --- Tests for hyperbole.el  -*- lexical-binding: t; -*-
 ;;
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 8-Jan-22 at 23:40:00
+;; Orig-Date:     8-Jan-22 at 23:40:00
+;; Last-Mod:     24-Jan-22 at 00:41:15 by Bob Weiner
 ;;
 ;; Copyright (C) 2022  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/hyrolo-tests.el b/test/hyrolo-tests.el
index 915ca71a07..7af116ed2e 100644
--- a/test/hyrolo-tests.el
+++ b/test/hyrolo-tests.el
@@ -1,8 +1,9 @@
 ;;; hyrolo-tests.el --- unit tests for hyrolo.el         -*- lexical-binding: 
t; -*-
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 19-Jun-21 at 22:42:00
+;; Orig-Date:    19-Jun-21 at 22:42:00
+;; Last-Mod:     24-Jan-22 at 00:41:23 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/kexport-tests.el b/test/kexport-tests.el
index 2699a56e45..1a7b73d342 100644
--- a/test/kexport-tests.el
+++ b/test/kexport-tests.el
@@ -2,9 +2,10 @@
 
 ;; Copyright (C) 2021  Mats Lidell
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 10-Oct-21 at 17:30:00
+;; Orig-Date:    10-Oct-21 at 17:30:00
+;; Last-Mod:     24-Jan-22 at 00:41:36 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/kotl-mode-tests.el b/test/kotl-mode-tests.el
index 2f3c2a45bc..3f312af748 100644
--- a/test/kotl-mode-tests.el
+++ b/test/kotl-mode-tests.el
@@ -2,9 +2,10 @@
 
 ;; Copyright (C) 2021  Mats Lidell
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 18-May-21 at 22:14:10
+;; Orig-Date:    18-May-21 at 22:14:10
+;; Last-Mod:     24-Jan-22 at 00:41:52 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/kotl-orgtbl-tests.el b/test/kotl-orgtbl-tests.el
index e8cefe6f3e..ba4d8e7ae7 100644
--- a/test/kotl-orgtbl-tests.el
+++ b/test/kotl-orgtbl-tests.el
@@ -2,9 +2,10 @@
 
 ;; Copyright (C) 2021  Mats Lidell
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 2-Nov-21 at 17:04:30
+;; Orig-Date:     2-Nov-21 at 17:04:30
+;; Last-Mod:     24-Jan-22 at 00:42:02 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/test/smart-org-tests.el b/test/smart-org-tests.el
index 585004de0d..b9d0f0d437 100644
--- a/test/smart-org-tests.el
+++ b/test/smart-org-tests.el
@@ -2,9 +2,10 @@
 
 ;; Copyright (C) 2021  Mats Lidell
 
-;; Author: Mats Lidell <matsl@gnu.org>
+;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
-;; Orig-Date: 23-Apr-21 at 22:21:00
+;; Orig-Date:    23-Apr-21 at 22:21:00
+;; Last-Mod:     24-Jan-22 at 00:42:19 by Bob Weiner
 ;;
 ;; Copyright (C) 2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
diff --git a/topwin.py b/topwin.py
index d90bc4d3c8..326fcbab72 100644
--- a/topwin.py
+++ b/topwin.py
@@ -7,6 +7,7 @@
 #
 # AUTHOR:       Bob Weiner <rsw@gnu.org>
 # ORIG-DATE:    14-Oct-17 at 16:21:53
+# LAST-MOD:     24-Jan-22 at 00:52:47 by Bob Weiner
 #
 # Copyright (C) 2017  Free Software Foundation, Inc.
 # See the "HY-COPY" file for license information.



reply via email to

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