branch: externals/hyperbole
commit 729c67cee1b6a6d89373d3de85803f88ea668095
Merge: dbe1f6c13b 0b829ed0e1
Author: bw <[email protected]>
Commit: bw <[email protected]>

    Merge branch 'master' into rsw
---
 ChangeLog                  |  47 ++++++
 MANIFEST                   |   1 -
 Makefile                   |   4 +-
 hhist.el                   |   2 +-
 hload-path.el              |  38 +----
 hsys-youtube.el            |   2 +-
 hui-window.el              |   2 +-
 hvar.el                    |   2 +-
 hycontrol-zmfrm.el         | 159 -------------------
 hycontrol.el               |  25 +--
 hyrolo-logic.el            |   2 +-
 hyrolo-menu.el             |   2 +-
 hywiki.el                  |   4 +-
 kotl/klink.el              |   2 +-
 kotl/kotl-mode.el          |   4 +-
 smart-clib-sym             |   2 +-
 test/hib-social-tests.el   |   2 +-
 test/hmouse-info-tests.el  |   9 +-
 test/hsettings-tests.el    |   2 +-
 test/hui-register-tests.el |   2 +-
 test/hy-test-helpers.el    |  20 +--
 test/hyperbole-tests.el    |   2 +-
 test/hywiki-tests.el       | 383 ++++++++++++++++++++++++++++++---------------
 test/kcell-tests.el        |  10 +-
 test/kotl-orgtbl-tests.el  |   2 +-
 topwin.py                  |   2 +-
 26 files changed, 358 insertions(+), 374 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 55bc7b3b59..16fbf13cab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -16,6 +16,53 @@
            (hpath:delimited-possible-path): Check for delimited strings only if
     (hypb:in-string-p) returns non-nil.
 
+2025-10-18  Mats Lidell  <[email protected]>
+
+* test/hywiki-tests.el (hywiki-tests--edit): Added cleanup of
+    hywiki-directory after test.
+    (hywiki-tests--only-file-in-dir-p)
+    (hywiki-tests--delete-hywiki-cache)
+    (hywiki-tests--delete-hywiki-dir-and-buffer): Add safer delete of
+    hywiki-directory so removal of a live hywiki-directory is less
+    likely. The dir must be empty and cache is only removed if it is the
+    last file remaining in the dir. Moved these into hywiki-tests since
+    they are only used with managing hywiki-directory in test cleanup and
+    use it through out the hywiki-directory tests.
+
+2025-10-16  Mats Lidell  <[email protected]>
+
+* test/hywiki-tests.el (hywiki-tests--consult-grep)
+    (hywiki-tests--hkey-help, hywiki-tests--add-path-link-v2)
+    (hywiki-tests--tags-view, hywiki-tests--directory-dired-edit)
+    (hywiki-tests--interactive-hywiki-mode-toggles): Add hywiki tests.
+
+2025-10-13  Mats Lidell  <[email protected]>
+
+* hycontrol.el (hycontrol-frame-zoom, hycontrol-frame-zoom-reset): For
+    Emacs-28 use zoom-frm.el if it is available. Tell user it is required.
+
+* hycontrol-zmfrm.el:
+  Makefile (EL_COMPILE):
+  MANIFEST: Remove hycontrol-zmfrm.el
+
+2025-10-08  Mats Lidell  <[email protected]>
+
+* kotl/kotl-mode.el (kotl-mode):
+  hywiki.el (hywiki-add-org-id): Use with-suppressed-warnings.
+
+* hload-path.el (hyperb:with-suppressed-warnings): Remove Emacs 26
+    compatibilty macro. Not needed.
+
+2025-10-06  Mats Lidell  <[email protected]>
+
+* test/hy-test-helpers.el (hy-test-helpers:ert-simulate-keys): Silence
+    warnings for not defined vertico-mode.
+
+* test/hmouse-info-tests.el (hmouse-info-build-completions-no-match): Fix
+    unwind-protect with no unwind form.
+    (hy-test-helpers): Require helper functions.
+    (Info-complete-menu-buffer): Define var.
+
 2025-10-05  Bob Weiner  <[email protected]>
 
 * hsys-www.el (eww-browse-url): Stop overloading this 'eww' function and 
replace
diff --git a/MANIFEST b/MANIFEST
index 36b53d7c48..e828abef7b 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -47,7 +47,6 @@ hui-treemacs.el      - GNU Hyperbole Smart Key support for 
the Treemacs file man
 hui-window.el        - Smart Mouse Key window and modeline depress/release 
actions
 hui.el               - GNU Hyperbole button and hyperlink user interface
 hycontrol.el         - Interactive sizing, moving, replicating and deleting of 
windows and frames
-hycontrol-zmfrm.el   - Global zoom support for Emacs 28
 hyrolo-menu.el       - Pulldown and popup menus of HyRolo commands
 
 * --- APPLICATION PROGRAMMING INTERFACE ---
diff --git a/Makefile b/Makefile
index 3f8ba633a2..9f004e920e 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@
 # Author:       Bob Weiner
 #
 # Orig-Date:    15-Jun-94 at 03:42:38
-# Last-Mod:      2-Oct-25 at 21:59:40 by Mats Lidell
+# Last-Mod:     13-Oct-25 at 22:23:24 by Mats Lidell
 #
 # Copyright (C) 1994-2025  Free Software Foundation, Inc.
 # See the file HY-COPY for license information.
@@ -223,7 +223,7 @@ EL_COMPILE = hact.el hactypes.el hargs.el hbdata.el 
hbmap.el hbut.el \
             hui-treemacs.el hui-window.el hui.el hvar.el hversion.el hynote.el 
hypb.el hyperbole.el \
             hyrolo-demo.el hyrolo-logic.el hyrolo-menu.el hyrolo.el 
hywconfig.el hywiki.el \
              hasht.el set.el hypb-ert.el hui-dired-sidebar.el 
hypb-maintenance.el \
-             hui-register.el hycontrol-zmfrm.el
+             hui-register.el
 
 EL_SRC = $(EL_COMPILE)
 
diff --git a/hhist.el b/hhist.el
index 69882e2226..db00f1fce5 100644
--- a/hhist.el
+++ b/hhist.el
@@ -7,7 +7,7 @@
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
-;; Copyright (C) 1991-2023  Free Software Foundation, Inc.
+;; Copyright (C) 1991-2025  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
diff --git a/hload-path.el b/hload-path.el
index d60c1238ca..e2ac08ae27 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:     29-Jan-25 at 19:07:46 by Mats Lidell
+;; Last-Mod:      6-Oct-25 at 00:16:34 by Mats Lidell
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -87,40 +87,6 @@ directory separator character.")
 ;;; Autoloads
 ;;; ************************************************************************
 
-(defmacro hyperb:with-suppressed-warnings (warnings &rest body)
-  "Like `progn', but prevents compiler WARNINGS in BODY.
-
-Defined here for elpa build compatibility which uses Emacs 26 and
-does not include `with-suppressed-warnings'.
-
-WARNINGS is an associative list where the first element of each
-item is a warning type, and the rest of the elements in each item
-are symbols they apply to.  For instance, if you want to suppress
-byte compilation warnings about the two obsolete functions `foo'
-and `bar', as well as the function `zot' being called with the
-wrong number of parameters, say
-
-\(with-suppressed-warnings ((obsolete foo bar)
-                           (callargs zot))
-  (foo (bar))
-  (zot 1 2))
-
-The warnings that can be suppressed are a subset of the warnings
-in `byte-compile-warning-types'; see the variable
-`byte-compile-warnings' for a fuller explanation of the warning
-types.  The types that can be suppressed with this macro are
-`free-vars', `callargs', `redefine', `obsolete',
-`interactive-only', `lexical', `mapcar', `constants' and
-`suspicious'.
-
-For the `mapcar' case, only the `mapcar' function can be used in
-the symbol list.  For `suspicious', only `set-buffer' can be used."
-
-  (declare (debug (sexp &optional body)) (indent 1))
-  (if (fboundp 'with-suppressed-warnings)
-      `(with-suppressed-warnings ,warnings ,@body)
-    `(with-no-warnings ,@body)))
-
 ;; New autoload generation function defined only as of Emacs 28
 (defalias 'hload-path--make-directory-autoloads
   (cond ((fboundp 'loaddefs-generate)
@@ -143,7 +109,7 @@ The function does NOT recursively descend into 
subdirectories of the
 directory or directories specified."
   ;; Don't use a 'let' on this next line or it will fail.
   (setq generated-autoload-file output-file)
-  (hyperb:with-suppressed-warnings ((obsolete update-directory-autoloads))
+  (with-suppressed-warnings ((obsolete update-directory-autoloads))
     (update-directory-autoloads dir)))
 
 ;; Menu items could call this function before Info is loaded.
diff --git a/hsys-youtube.el b/hsys-youtube.el
index 4f7581d0bd..78562dad1b 100644
--- a/hsys-youtube.el
+++ b/hsys-youtube.el
@@ -7,7 +7,7 @@
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
-;; Copyright (C) 2022  Free Software Foundation, Inc.
+;; Copyright (C) 2022-2024  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
diff --git a/hui-window.el b/hui-window.el
index abf08a955f..49f1b4a526 100644
--- a/hui-window.el
+++ b/hui-window.el
@@ -7,7 +7,7 @@
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
-;; Copyright (C) 1992-2024  Free Software Foundation, Inc.
+;; Copyright (C) 1992-2025  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
diff --git a/hvar.el b/hvar.el
index 083b7ddbfc..452db87bd0 100644
--- a/hvar.el
+++ b/hvar.el
@@ -7,7 +7,7 @@
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
-;; Copyright (C) 1991-2024  Free Software Foundation, Inc.
+;; Copyright (C) 1991-2025  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
diff --git a/hycontrol-zmfrm.el b/hycontrol-zmfrm.el
deleted file mode 100644
index dd738654a8..0000000000
--- a/hycontrol-zmfrm.el
+++ /dev/null
@@ -1,159 +0,0 @@
-;;; hycontrol-zmfrm.el --- Frame zoom support for Emacs 28  -*- 
lexical-binding: t; -*-
-;;
-;; Author:       Mats Lidell
-;;
-;; Orig-Date:    14-Sep-25 at 23:03:15
-;; Last-Mod:     25-Sep-25 at 20:45:39 by Mats Lidell
-;;
-;; SPDX-License-Identifier: GPL-3.0-or-later
-;;
-;; Copyright (C) 2025  Free Software Foundation, Inc.
-;; See the "HY-COPY" file for license information.
-;;
-;; This file is part of GNU Hyperbole.
-;;
-;; This files is based on zoom-frm.el and frame-cmds.el. Both under
-;; GPLv2 or later:
-;;   - https://www.emacswiki.org/emacs/zoom-frm.el
-;;     Copyright (C) 2005-2022, Drew Adams, all rights reserved.
-;;   - https://www.emacswiki.org/emacs/frame-cmds.el
-;;     Copyright (C) 1996-2023, Drew Adams, all rights reserved.
-;;
-;; It has been simplified to only support zoom in and out on all
-;; frames to support versions of Emacs where global-text-scale-adjust
-;; is not available, i.e. Emacs 28.
-
-;;; Commentary:
-;;
-;; This file can be removed when and if Hyperbole stops support for
-;; Emacs 28.
-
-;;; Code:
-
-(require 'fontset)
-
-;;; ************************************************************************
-;;; Public declarations
-;;; ************************************************************************
-
-(declare-function fontset-info "fontset.c" (fontset &optional frame))
-(declare-function query-fontset "fontset.c" (pattern &optional regexpp))
-(declare-function x-list-fonts "xfaces.c"
-                  (pattern &optional face frame maximum width))
-
-;;; ************************************************************************
-;;; Public variables
-;;; ************************************************************************
-
-(defcustom hycontrol-frame-zoom-font-difference 1
-  "*Number of points to change the frame font size when zooming.
-This applies to commands `zoom-in/out', `zoom-in', `zoom-out',
-`hycontrol-zoom-frm-in', and `hycontrol-zoom-frm-out' when zooming a frame.
-
-The absolute value of the value must be less than the current font
-size for the frame, because the new font size cannot be less than one
-point."
-  :type 'integer :group 'hyperbole-screen)
-
-(defcustom hycontrol-enlarge-font-tries 100
-  "*Number of times to try to change font-size, when looking for a font.
-The font-size portion of a font name is incremented or decremented at
-most this many times, before giving up and raising an error."
-  :type 'integer :group 'hyperbole-screen)
-
-;;; ************************************************************************
-;;; Public functions
-;;; ************************************************************************
-
-(defun hyconytrol-frcmds-enlarged-font-name (fontname frame increment)
-  "FONTNAME, after enlarging font size of FRAME by INCREMENT.
-FONTNAME is the font of FRAME."
-  (when (query-fontset fontname)
-    (let ((ascii  (assq 'ascii (aref (fontset-info fontname frame) 2))))
-      (when ascii (setq fontname  (nth 2 ascii)))))
-  (let ((xlfd-fields  (x-decompose-font-name fontname)))
-    (unless xlfd-fields (error "Cannot decompose font name"))
-    (let ((new-size  (+ (string-to-number (aref xlfd-fields 
xlfd-regexp-pixelsize-subnum))
-                        increment)))
-      (unless (> new-size 0) (signal 'font-too-small (list new-size)))
-      (aset xlfd-fields xlfd-regexp-pixelsize-subnum (number-to-string 
new-size)))
-    ;; Set point size & width to "*", so frame width will adjust to new font 
size
-    (aset xlfd-fields xlfd-regexp-pointsize-subnum "*")
-    (aset xlfd-fields xlfd-regexp-avgwidth-subnum "*")
-    (x-compose-font-name xlfd-fields)))
-
-;; This does not work 100% well.  For instance, set frame font to
-;; "-raster-Terminal-normal-r-normal-normal-12-90-96-96-c-50-ms-oemlatin",
-;; then decrease font size.  The next smaller existing font on my
-;; machine is
-;; "-raster-Terminal-normal-r-normal-normal-11-*-96-96-c-*-ms-oemlatin".
-;; Decrease size again.  Next smaller font is
-;; "-raster-Terminal-bold-r-normal-normal-5-37-96-96-c-60-ms-oemlatin".
-;; Notice the switch to bold from regular.  Cannot decrease any more.
-;; Increase size.  Next larger font is
-;; "-raster-Terminal-bold-r-normal-normal-8-*-96-96-c-*-ms-oemlatin".
-;; Can no longer increase size.
-;;
-(defun hycontrol-enlarge-font (increment frame)
-  "Increase size of font in FRAME by INCREMENT.
-Interactively, INCREMENT is given by the prefix argument.
-Optional FRAME parameter defaults to current frame."
-  (let ((fontname (cdr (assq 'font (frame-parameters frame))))
-        (count hycontrol-enlarge-font-tries))
-    (setq fontname (hyconytrol-frcmds-enlarged-font-name fontname frame 
increment))
-    (while (and (not (x-list-fonts fontname)) (wholenump (setq count  (1- 
count))))
-      (setq fontname (hyconytrol-frcmds-enlarged-font-name fontname frame 
increment)))
-    (unless (x-list-fonts fontname)
-      (error "Cannot change font size"))
-    (modify-frame-parameters frame (list (cons 'font fontname)))))
-
-(defun hycontrol-zoom-frm-unzoom (&optional frame)
-  "Cancel zoom of FRAME."
-  (interactive)
-  (setq frame  (or frame  (selected-frame)))
-  (let ((zoom-factor  (frame-parameter frame 'zoomed)))
-    (if (not zoom-factor)
-        (error "Frame is not zoomed")
-      (hycontrol-enlarge-font (- zoom-factor) frame)
-      (modify-frame-parameters frame '((zoomed))))))
-
-(defun hycontrol-zoom-frm-in (frame)
-  "Zoom FRAME in by `hycontrol-frame-zoom-font-difference', making text larger.
-If `hycontrol-frame-zoom-font-difference' is negative, make text smaller.
-This is equal but opposite to `hycontrol-zoom-frm-out'."
-  (let ((zoom-factor (frame-parameter frame 'zoomed))
-        (increment hycontrol-frame-zoom-font-difference))
-    (unless zoom-factor (setq zoom-factor  0))
-    (setq zoom-factor (+ zoom-factor increment))
-    (hycontrol-enlarge-font increment frame)
-    (modify-frame-parameters frame (list (cons 'zoomed zoom-factor)))))
-
-(defun hycontrol-zoom-frm-out (frame)
-  "Zoom FRAME out by `hycontrol-frame-zoom-font-difference', making text 
smaller.
-This is equal but opposite to `hycontrol-zoom-frm-in'."
-  (let ((hycontrol-frame-zoom-font-difference (- 
hycontrol-frame-zoom-font-difference)))
-    (hycontrol-zoom-frm-in frame)))
-
-(defun hycontrol-zoom-all-frames-in ()
-  "Zoom all visible frames in, making text larger.
-Zoom by `hycontrol-frame-zoom-font-difference' points.
-This is equal but opposite to `zoom-all-frames-out'."
-  (interactive "P")
-  (dolist (fr (visible-frame-list))
-    (hycontrol-zoom-frm-in fr)))
-
-(defun hycontrol-zoom-all-frames-out ()
-  "Zoom all frames out, making text smaller.
-Zoom by `hycontrol-frame-zoom-font-difference' points.
-This is equal but opposite to `hycontrol-zoom-all-frames-in'."
-  (interactive "P")
-  (dolist (fr  (visible-frame-list))
-    (hycontrol-zoom-frm-out fr)))
-
-(defun hycontrol-zoom-all-frames-unzoom ()
-  "Cancel zoom on all frames."
-  (dolist (fr (visible-frame-list))
-    (hycontrol-zoom-frm-unzoom fr)))
-
-(provide 'hycontrol-zmfrm)
-;;; hycontrol-zmfrm.el ends here
diff --git a/hycontrol.el b/hycontrol.el
index 13fee794e2..6c61140fc0 100644
--- a/hycontrol.el
+++ b/hycontrol.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     1-Jun-16 at 15:35:36
-;; Last-Mod:     25-Sep-25 at 22:37:47 by Mats Lidell
+;; Last-Mod:     13-Oct-25 at 23:47:09 by Mats Lidell
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -125,8 +125,6 @@
   (require 'framemove nil t)
   (require 'windmove))
 
-(require 'hycontrol-zmfrm)
-
 ;;; ************************************************************************
 ;;; Public declarations
 ;;; ************************************************************************
@@ -142,6 +140,10 @@
 
 (declare-function kbd-key:key-series-to-events "hib-kbd")
 
+(declare-function zoom-all-frames-in "ext:zoom-frm")
+(declare-function zoom-all-frames-out "ext:zoom-frm")
+(declare-function zoom-frm-unzoom "ext:zoom-frm")
+
 ;;; ************************************************************************
 ;;; Public variables
 ;;; ************************************************************************
@@ -843,19 +845,24 @@ the hycontrol menu."
 
 (defun hycontrol-frame-zoom (increment)
   "Change the font size of all faces by INCREMENT.
-Use `global-text-scale-adjust' if it exists.  If not fall back to
-implementation in hycontrol-zmfrm.el."
+Use `global-text-scale-adjust' if it exists.  If on an older Emacs that
+does not have it see if zoom-frm.el is available and use that."
   (if (fboundp 'global-text-scale-adjust)
       (hycontrol-global-text-scale-adjust increment)
-    (if (< 0 increment)
-        (hycontrol-zoom-all-frames-in)
-      (hycontrol-zoom-all-frames-out))))
+    (if (not (and (fboundp 'zoom-all-frames-in) (fboundp 
'zoom-all-frames-out)))
+        (hycontrol-user-error hycontrol-debug "(HyControl): Zooming requires 
separate \"zoom-frm.el\" Emacs Lisp library installation")
+      (if (< 0 increment)
+          (zoom-all-frames-in)
+        (zoom-all-frames-out)))))
 
 (defun hycontrol-frame-zoom-reset ()
   "Reset zoom level back to default."
   (if (fboundp 'global-text-scale-adjust)
       (hycontrol-global-text-scale-adjust 0)
-    (hycontrol-zoom-all-frames-unzoom)))
+    (if (not (fboundp 'zoom-frm-unzoom))
+        (hycontrol-user-error hycontrol-debug "(HyControl): Zooming requires 
separate \"zoom-frm.el\" Emacs Lisp library installation")
+      (dolist (fr (visible-frame-list))
+        (zoom-frm-unzoom fr)))))
 
 (defun hycontrol-make-frame ()
   "Create a new frame with the same size and selected buffer as the selected 
frame.
diff --git a/hyrolo-logic.el b/hyrolo-logic.el
index 78b7447f70..ecc812a38e 100644
--- a/hyrolo-logic.el
+++ b/hyrolo-logic.el
@@ -7,7 +7,7 @@
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
-;; Copyright (C) 1989-2024  Free Software Foundation, Inc.
+;; Copyright (C) 1989-2025  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
diff --git a/hyrolo-menu.el b/hyrolo-menu.el
index 084d08347a..10cb72b284 100644
--- a/hyrolo-menu.el
+++ b/hyrolo-menu.el
@@ -7,7 +7,7 @@
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
-;; Copyright (C) 1994-2024  Free Software Foundation, Inc.
+;; Copyright (C) 1994-2025  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
diff --git a/hywiki.el b/hywiki.el
index d564c5f342..ca60c71916 100644
--- a/hywiki.el
+++ b/hywiki.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    21-Apr-24 at 22:41:13
-;; Last-Mod:     12-Oct-25 at 13:28:42 by Bob Weiner
+;; Last-Mod:     18-Oct-25 at 11:56:19 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -1233,7 +1233,7 @@ calling this function."
        (user-error "(hywiki-add-org-id): Referent buffer <%s> must be in 
org-mode, not %s"
                    (buffer-name)
                    major-mode))
-      (let ((org-id (hyperb:with-suppressed-warnings ((callargs org-id-get))
+      (let ((org-id (with-suppressed-warnings ((callargs org-id-get))
                       (if (>= (action:param-count #'org-id-get) 4)
                        (org-id-get nil nil nil t)
                      (org-id-get)))))
diff --git a/kotl/klink.el b/kotl/klink.el
index 3a57c34792..4826701a46 100644
--- a/kotl/klink.el
+++ b/kotl/klink.el
@@ -7,7 +7,7 @@
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
-;; Copyright (C) 1993-2024  Free Software Foundation, Inc.
+;; Copyright (C) 1993-2025  Free Software Foundation, Inc.
 ;; See the "../HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
diff --git a/kotl/kotl-mode.el b/kotl/kotl-mode.el
index d938dc22be..d8501f4bd8 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:     20-Jun-25 at 20:08:20 by Bob Weiner
+;; Last-Mod:      6-Oct-25 at 00:16:41 by Mats Lidell
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -240,7 +240,7 @@ It provides the following keys:
     ;; We have been converting a buffer from a foreign format to a koutline.
     ;; Now that it is converted, ensure that `kotl-previous-mode' is set to
     ;; koutline.
-    (hyperb:with-suppressed-warnings ((free-vars kotl-previous-mode))
+    (with-suppressed-warnings ((free-vars kotl-previous-mode))
       (setq kotl-previous-mode 'kotl-mode))
     (run-mode-hooks 'kotl-mode-hook)
     (unless (string-prefix-p hyrolo-display-buffer (buffer-name))
diff --git a/smart-clib-sym b/smart-clib-sym
index fab7de414c..6a344f997c 100644
--- a/smart-clib-sym
+++ b/smart-clib-sym
@@ -8,7 +8,7 @@
 # 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.
+# Copyright (C) 1991-2022  Free Software Foundation, Inc.
 # See the "HY-COPY" file for license information.
 #
 # This file is part of GNU Hyperbole.
diff --git a/test/hib-social-tests.el b/test/hib-social-tests.el
index 6a4d089829..22476168c2 100644
--- a/test/hib-social-tests.el
+++ b/test/hib-social-tests.el
@@ -7,7 +7,7 @@
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
-;; Copyright (C) 2021  Free Software Foundation, Inc.
+;; Copyright (C) 2021-2024  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
diff --git a/test/hmouse-info-tests.el b/test/hmouse-info-tests.el
index 1e650a68c4..94dac9e453 100644
--- a/test/hmouse-info-tests.el
+++ b/test/hmouse-info-tests.el
@@ -3,7 +3,7 @@
 ;; Author:       Mats Lidell <[email protected]>
 ;;
 ;; Orig-Date:    29-Dec-21 at 09:02:00
-;; Last-Mod:      6-Jul-25 at 13:02:40 by Bob Weiner
+;; Last-Mod:      5-Oct-25 at 23:02:48 by Mats Lidell
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -21,6 +21,9 @@
 (require 'ert)
 (require 'ert-x)
 (require 'hmouse-info)
+(require 'hy-test-helpers)
+
+(defvar Info-complete-menu-buffer)
 
 (ert-deftest hmouse-info-read-index-with-completion ()
   "Read a completion that completes."
@@ -33,8 +36,8 @@
       (progn
         (info "(emacs)")
         (setq Info-complete-menu-buffer (clone-buffer))
-        (should (eq '() (Info-build-menu-item-completions "nothinglikethis" 
nil t)))
-    (kill-buffer "*info*"))))
+        (should (eq '() (Info-build-menu-item-completions "nothinglikethis" 
nil t))))
+    (kill-buffer "*info*")))
 
 (ert-deftest hmouse-info-build-completions-multiple-matches ()
   "Build completions."
diff --git a/test/hsettings-tests.el b/test/hsettings-tests.el
index 0963993f2b..b5c70b9838 100644
--- a/test/hsettings-tests.el
+++ b/test/hsettings-tests.el
@@ -7,7 +7,7 @@
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
-;; Copyright (C) 2024  Free Software Foundation, Inc.
+;; Copyright (C) 2024-2025  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
diff --git a/test/hui-register-tests.el b/test/hui-register-tests.el
index 3ae8a4fc74..5757ada985 100644
--- a/test/hui-register-tests.el
+++ b/test/hui-register-tests.el
@@ -7,7 +7,7 @@
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
-;; Copyright (C) 2021-2024  Free Software Foundation, Inc.
+;; Copyright (C) 2021-2025  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
diff --git a/test/hy-test-helpers.el b/test/hy-test-helpers.el
index 625f0e27f7..5e4d534d7a 100644
--- a/test/hy-test-helpers.el
+++ b/test/hy-test-helpers.el
@@ -3,7 +3,7 @@
 ;; Author:       Mats Lidell <[email protected]>
 ;;
 ;; Orig-Date:    30-Jan-21 at 12:00:00
-;; Last-Mod:     20-Sep-25 at 11:26:21 by Mats Lidell
+;; Last-Mod:     18-Oct-25 at 00:31:06 by Mats Lidell
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -41,10 +41,11 @@ Disable `vertico-mode' which can get in the way of standard 
key
 processing."
   (declare (debug t) (indent 1))
   `(if (bound-and-true-p vertico-mode)
-       (unwind-protect
-          (progn (vertico-mode 0)
-                 (ert-simulate-keys ,keys ,@body))
-        (vertico-mode 1))
+       (with-no-warnings
+         (unwind-protect
+            (progn (vertico-mode 0)
+                   (ert-simulate-keys ,keys ,@body))
+          (vertico-mode 1)))
      (ert-simulate-keys ,keys ,@body)))
 
 (defun hy-test-helpers:should-last-message (msg captured)
@@ -109,16 +110,9 @@ Checks ACTYPE, ARGS, LOC, LBL-KEY and NAME."
 
 (defun hy-delete-dir-and-buffer (dir)
   "Delete DIR and buffer visiting directory."
-  (let ((buf (find-buffer-visiting dir))
-       (hywiki-cache (when (featurep 'hywiki)
-                       (expand-file-name hywiki-cache-default-file
-                                         dir))))
+  (let ((buf (find-buffer-visiting dir)))
     (when buf
       (kill-buffer buf))
-    (when (and hywiki-cache
-              (file-readable-p hywiki-cache)
-              (file-writable-p hywiki-cache))
-      (delete-file hywiki-cache))
     (delete-directory dir)))
 
 (defun hy-make-random-wikiword (&optional length word-length)
diff --git a/test/hyperbole-tests.el b/test/hyperbole-tests.el
index 6189a4e2c9..bf8a3005e2 100644
--- a/test/hyperbole-tests.el
+++ b/test/hyperbole-tests.el
@@ -7,7 +7,7 @@
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
-;; Copyright (C) 2022  Free Software Foundation, Inc.
+;; Copyright (C) 2022-2023  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
diff --git a/test/hywiki-tests.el b/test/hywiki-tests.el
index c4eab19ef4..888480f897 100644
--- a/test/hywiki-tests.el
+++ b/test/hywiki-tests.el
@@ -3,7 +3,7 @@
 ;; Author:       Mats Lidell
 ;;
 ;; Orig-Date:    18-May-24 at 23:59:48
-;; Last-Mod:      5-Oct-25 at 14:03:21 by Bob Weiner
+;; Last-Mod:     18-Oct-25 at 10:15:13 by Mats Lidell
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -73,75 +73,79 @@ Last two elements are optional.")
        start
        end
        hywiki-ref-positions)
-    (with-temp-buffer
-      (hywiki-tests--preserve-hywiki-mode
-       (org-mode)
-       (hywiki-mode 1)
-       (mapc
-        (lambda (before-after)
-          (condition-case err
-              (progn
-                (setq before (nth 0 before-after)
-                      after  (nth 1 before-after)
-                      name   (nth 2 before-after)
-                      doc    (nth 3 before-after))
-                ;; Ensure all brace delimited HyWikiWords have their pages
-                ;; created so their references will be highlighted.
-                (mapc #'hywiki-add-page
-                      (delq nil
-                            (mapcar #'hywiki-get-singular-wikiword
-                                    (seq-remove #'string-empty-p
-                                                (mapcar #'string-trim
-                                                        
(hywiki-tests--get-brace-strings after))))))
-                (unwind-protect
-                    (progn
-                      (pop-to-buffer (current-buffer))
-                      (erase-buffer)
-                      (hywiki-tests--insert-by-char before)
-                      (hywiki-tests--interpolate-buffer)
-                      ;; Markup before string in temp buffer
-                      ;; Surround any HyWikiWord refs with braces to match 
after string.
-                      (setq hywiki-ref-positions
-                            (if (version< emacs-version "29")
-                                (hywiki-get-reference-positions)
-                              ;; Button/overlay ordering is reversed after 
Emacs 28
-                              (nreverse (hywiki-get-reference-positions))))
-                      (dolist (start-end hywiki-ref-positions)
-                        (setq start (car start-end)
-                              end (cdr start-end))
-                        (goto-char end)
-                        (insert "}")
-                        (goto-char start)
-                        (insert "{"))
-                      ;; Store the buffer string for comparison
-                      (setq markedup-before (buffer-string))
-                      ;; Markup after string
-                      (erase-buffer)
-                      (insert after)
-                      (hywiki-tests--interpolate-buffer)
-                      (setq markedup-after (buffer-string))
-                      ;; Compare markedup-before to markedup-after
-                      (if (or name doc)
-                          (should (equal (list :test-num test-num 
-                                               :markedup (format "%S" 
markedup-before)
-                                               :test-name name :doc doc
-                                               :before before :after after)
-                                         (list :test-num test-num
-                                               :markedup (format "%S" 
markedup-after)
-                                               :test-name name :doc doc
-                                               :before before :after after)))
-                        (should (equal (list :test-num test-num
-                                             :markedup (format "%S" 
markedup-before)
-                                             :before before :after after)
-                                       (list :test-num test-num
-                                             :markedup (format "%S" 
markedup-after)
-                                             :before before :after after))))
-                      (cl-incf test-num))
-                  (goto-char (point-min))))
-            (error (error "%s ---- %S" err (list :markedup markedup-before
-                                             :test-num test-num
-                                             :before before :after after)))))
-        hywiki-tests--edit-string-pairs)))))
+    (unwind-protect
+        (with-temp-buffer
+          (hywiki-tests--preserve-hywiki-mode
+           (org-mode)
+           (hywiki-mode 1)
+           (mapc
+            (lambda (before-after)
+              (condition-case err
+                  (progn
+                    (setq before (nth 0 before-after)
+                          after  (nth 1 before-after)
+                          name   (nth 2 before-after)
+                          doc    (nth 3 before-after))
+                    ;; Ensure all brace delimited HyWikiWords have their pages
+                    ;; created so their references will be highlighted.
+                    (mapc #'hywiki-add-page
+                          (delq nil
+                                (mapcar #'hywiki-get-singular-wikiword
+                                        (seq-remove #'string-empty-p
+                                                    (mapcar #'string-trim
+                                                            
(hywiki-tests--get-brace-strings after))))))
+                    (unwind-protect
+                        (progn
+                          (pop-to-buffer (current-buffer))
+                          (erase-buffer)
+                          (hywiki-tests--insert-by-char before)
+                          (hywiki-tests--interpolate-buffer)
+                          ;; Markup before string in temp buffer
+                          ;; Surround any HyWikiWord refs with braces to match 
after string.
+                          (setq hywiki-ref-positions
+                                (if (version< emacs-version "29")
+                                    (hywiki-get-reference-positions)
+                                  ;; Button/overlay ordering is reversed after 
Emacs 28
+                                  (nreverse (hywiki-get-reference-positions))))
+                          (dolist (start-end hywiki-ref-positions)
+                            (setq start (car start-end)
+                                  end (cdr start-end))
+                            (goto-char end)
+                            (insert "}")
+                            (goto-char start)
+                            (insert "{"))
+                          ;; Store the buffer string for comparison
+                          (setq markedup-before (buffer-string))
+                          ;; Markup after string
+                          (erase-buffer)
+                          (insert after)
+                          (hywiki-tests--interpolate-buffer)
+                          (setq markedup-after (buffer-string))
+                          ;; Compare markedup-before to markedup-after
+                          (if (or name doc)
+                              (should (equal (list :test-num test-num
+                                                   :markedup (format "%S" 
markedup-before)
+                                                   :test-name name :doc doc
+                                                   :before before :after after)
+                                             (list :test-num test-num
+                                                   :markedup (format "%S" 
markedup-after)
+                                                   :test-name name :doc doc
+                                                   :before before :after 
after)))
+                            (should (equal (list :test-num test-num
+                                                 :markedup (format "%S" 
markedup-before)
+                                                 :before before :after after)
+                                           (list :test-num test-num
+                                                 :markedup (format "%S" 
markedup-after)
+                                                 :before before :after 
after))))
+                          (cl-incf test-num))
+                      (goto-char (point-min))))
+                (error (error "%s ---- %S" err (list :markedup markedup-before
+                                                     :test-num test-num
+                                                     :before before :after 
after)))))
+            hywiki-tests--edit-string-pairs)))
+      (dolist (f '("AI.org" "Hi.org" "HiHo.org" "HyWikiWord.org" 
"MyWikiWord.org" "Non.org" "WikiWord.org"))
+        (hy-delete-file-and-buffer (expand-file-name f hywiki-directory)))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (defun hywiki-tests--get-brace-strings (s)
   "Return the substrings in S delimited by curly braces {…}, excluding braces.
@@ -163,6 +167,28 @@ Assume no nesting of braces, nor any quoting of braces."
        str)
   (hywiki-tests--execute-commands))
 
+(defun hywiki-tests--only-file-in-dir-p (file)
+  "Check if FILE is single in its directory."
+  (let* ((dir (file-name-directory file))
+         (files (seq-remove (lambda (f) (member f '("." "..")))
+                            (directory-files dir))))
+    (and (= (length files) 1)
+         (string= (car files) (file-name-nondirectory file)))))
+
+(defun hywiki-tests--delete-hywiki-cache (dir)
+  "Delete the hywiki cache if it is the only file in DIR."
+  (let ((hywiki-cache (expand-file-name hywiki-cache-default-file dir)))
+    (when (and hywiki-cache
+              (file-readable-p hywiki-cache)
+              (file-writable-p hywiki-cache)
+               (hywiki-tests--only-file-in-dir-p hywiki-cache))
+      (delete-file hywiki-cache))))
+
+(defun hywiki-tests--delete-hywiki-dir-and-buffer (dir)
+  "Remove DIR and optional `hywiki-cache' file."
+  (hywiki-tests--delete-hywiki-cache dir)
+  (hy-delete-dir-and-buffer dir))
+
 (defun hywiki-tests--execute-commands ()
   "Process all events from `unread-command-events'."
   (interactive)
@@ -255,7 +281,7 @@ This is for simulating the command loop."
             (should (string= (file-name-nondirectory hywiki-page-file)
                             (cdr (hywiki-get-referent "WikiWord"))))))
       (hy-delete-file-and-buffer hywiki-page-file)
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--hywiki-create-page--adds-no-wiki-word-fails ()
   "Verify add page requires a WikiWord."
@@ -266,7 +292,7 @@ This is for simulating the command loop."
   (let ((hywiki-directory (make-temp-file "hywiki" t)))
     (unwind-protect
         (should-not (hywiki-add-page "notawikiword"))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--action-key-on-hywikiword-displays-page ()
   "Verify `action-key' on a prefixed WikiWord, outside of hywiki-directory, 
creates a new page."
@@ -282,7 +308,7 @@ This is for simulating the command loop."
             (action-key)
            (should (equal (cons 'page wikifile) (hywiki-get-referent 
"WikiWord"))))
         (hy-delete-file-and-buffer (expand-file-name wikifile 
hywiki-directory))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--assist-key-on-hywikiword-displays-help ()
   "Verify `assist-key' on a prefixed WikiWord, outside of hywiki-directory, 
displays help for the WikiWord link."
@@ -299,7 +325,7 @@ This is for simulating the command loop."
             (assist-key)
             (other-window 1)
             (should (string-prefix-p "*Help: Hyperbole " (buffer-name))))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--action-key-on-wikiword-displays-page ()
   "Verify `action-key' on a WikiWord, outside of hywiki-directory, creates a 
new page."
@@ -325,7 +351,7 @@ This is for simulating the command loop."
                 (insert "WikiWord page")
                 (goto-char (point-min)))))
         (hy-delete-file-and-buffer hywiki-page-file)
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--action-key-on-wikiword-and-section-displays-page ()
   "Verify `action-key' on a WikiWord with section moves to the section."
@@ -349,7 +375,7 @@ This is for simulating the command loop."
                 (should (string= hywiki-page-file (buffer-file-name)))
                (should (looking-at-p (regexp-quote v))))))
         (hy-delete-file-and-buffer hywiki-page-file)
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest 
hywiki-tests--action-key-on-wikiword-and-line-column-displays-page ()
   "Verify `action-key' on a WikiWord with line and column specifications goes 
to expected point."
@@ -377,7 +403,7 @@ line 2
                      (should (looking-at-p (format "%s$" l)))
                    (should (looking-at-p (format "line %s$" l))))))))
         (hy-delete-file-and-buffer hywiki-page-file)
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--not-a-wikiword-unless-in-hywiki-mode ()
   "Verify WikiWord is not a WikiWord unless in `hywiki-mode'."
@@ -392,7 +418,7 @@ line 2
             (should-not (hywiki-word-at))
             (hywiki-mode 1)
             (should (string= "WikiWord" (hywiki-word-at))))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--a-wikiword-in-hywiki-directory ()
   "Verify WikiWord is identified if in `hywiki-directory'."
@@ -409,7 +435,7 @@ line 2
             (goto-char 4)
             (should (hywiki-word-at)))
         (hy-delete-file-and-buffer wiki-page)
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--wikiword-identified-with-delimiters ()
   "Verify WikiWord is identified when surrounded by delimiters."
@@ -473,7 +499,7 @@ line 2
                  (should-not v)
                (should t)))))
       (hywiki-mode 0)
-      (hy-delete-dir-and-buffer hywiki-directory)))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--at-wikiword-finds-word-and-section ()
   "Verify `hywiki-word-at' finds WikiWord and section if available."
@@ -495,7 +521,7 @@ line 2
                 (insert in)
                 (goto-char 4)
                 (should (string= expect (hywiki-word-at))))))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--sections-with-dash-space ()
   "Verify `hywiki-word-at' finds sections with dash and space."
@@ -520,7 +546,7 @@ line 2
               (insert "WikiWord#\"section-within-quotes\"")
               (goto-char 4)
               (should-not (hywiki-word-at))))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--sections-with-space-and-delimited-string ()
   "Verify `hywiki-word-at' with space and delimited string.
@@ -545,7 +571,7 @@ HyWikiWord reference."
               (insert "\"WikiWord#section rest WikiPage\"")
               (goto-char 4)
               (should (string= "WikiWord#section rest WikiPage" 
(hywiki-word-at)))))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--word-is-p ()
   "Verify `hywiki-word-is-p' identifies WikiWords."
@@ -580,7 +606,7 @@ HyWikiWord reference."
           (with-current-buffer (find-file-noselect wiki-page)
             (should (hywiki-in-page-p))))
       (hy-delete-files-and-buffers (list no-wiki-page wiki-page))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--active-in-current-buffer-p ()
   "Verify `hywiki-active-in-current-buffer-p'."
@@ -600,7 +626,7 @@ HyWikiWord reference."
           (dired-mode)
           (should-not (hywiki-active-in-current-buffer-p)))
       (hy-delete-file-and-buffer wiki-page)
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--directory-get-mod-time ()
   "Verify `hywiki-directory-get-mod-time'."
@@ -651,7 +677,7 @@ Both mod-time and checksum must be changed for a test to 
return true."
           (should (equal wiki-page (cdr (hywiki-add-page "WikiWord"))))
           (should (equal '("WikiWord") (hywiki-get-wikiword-list))))
       (hy-delete-file-and-buffer wiki-page)
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--get-page-list-after-add-and-delete ()
   "Verify `hywiki-get-wikiword-list' is updated when a page is added and 
removed."
@@ -667,7 +693,7 @@ Both mod-time and checksum must be changed for a test to 
return true."
             (hy-delete-file-and-buffer wiki-page2))
          (should (set:equal '("WordOne") (hywiki-get-wikiword-list))))
       (hy-delete-file-and-buffer wiki-page)
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--get-page-list-multiple-words ()
   "Verify `hywiki-get-wikiword-list' returns multiple WikiWords."
@@ -683,7 +709,7 @@ Both mod-time and checksum must be changed for a test to 
return true."
           (should (= 10 (length (hywiki-get-wikiword-list))))
           (should (= 10 (length (seq-uniq (hywiki-get-wikiword-list))))))
       (hy-delete-files-and-buffers wiki-page-list)
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--get-page-list-when-new-wiki-directory ()
   "Verify `hywiki-get-wikiword-list' is empty for new `hywiki-directory'."
@@ -696,9 +722,9 @@ Both mod-time and checksum must be changed for a test to 
return true."
             (unwind-protect
                 (progn
                   (should (= 0 (length (hywiki-get-wikiword-list)))))
-              (hy-delete-dir-and-buffer hywiki-directory))))
+              (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
       (hy-delete-file-and-buffer wikipage)
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest 
hywiki-tests--get-page-list-for-new-wiki-directory-after-added-referent ()
   "Verify `hywiki-get-wikiword-list' is empty for new `hywiki-directory'."
@@ -714,8 +740,8 @@ Both mod-time and checksum must be changed for a test to 
return true."
           (let ((hywiki-directory (make-temp-file "hywiki" t)))
             (unwind-protect
                 (should (zerop (length (hywiki-get-wikiword-list))))
-              (hy-delete-dir-and-buffer hywiki-directory))))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+              (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 ;; Following test cases for verifying proper face is some what
 ;; experimental. They need to be run in interactive mode.
@@ -741,7 +767,7 @@ Both mod-time and checksum must be changed for a test to 
return true."
               (goto-char 4)
               (should (hywiki-word-face-at-p))))
         (hy-delete-file-and-buffer wikipage)
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--no-face-property-for-no-wikipage ()
   "Verify WikiWord for no wiki page does not get face property 
hywiki-word-face."
@@ -757,7 +783,7 @@ Both mod-time and checksum must be changed for a test to 
return true."
              (hywiki-tests--command-execute #'self-insert-command 1 ?d)
               (goto-char 4)
               (should-not (hywiki-word-face-at-p))))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--verify-face-property-when-editing-wikiword ()
   "Verify face property changes when WikiWord is edited."
@@ -782,7 +808,7 @@ Both mod-time and checksum must be changed for a test to 
return true."
             (should (looking-at-p "ord "))
             (should-not (hywiki-word-face-at-p)))
         (hy-delete-files-and-buffers (list wikipage))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest 
hywiki-tests--verify-face-property-when-editing-wikiword-first-char ()
   "Verify face property changes when WikiWord is edited in the first char 
position."
@@ -809,7 +835,7 @@ Both mod-time and checksum must be changed for a test to 
return true."
               (should (looking-at-p "WikiWord"))
               (should (hywiki-word-face-at-p))))
         (hy-delete-files-and-buffers (list wikipage))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--references-to-org-link ()
   "Verify `hywiki-references-to-org-links' converts WikiWords to org links."
@@ -836,7 +862,7 @@ Both mod-time and checksum must be changed for a test to 
return true."
               (should (string= "[[hy:WikiWord]]"
                                (buffer-substring-no-properties (point-min) 
(point-max))))))
         (hy-delete-file-and-buffer wikipage)
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--at-tags-p ()
   "Verify `hywiki-at-tags-p'."
@@ -888,7 +914,7 @@ Both mod-time and checksum must be changed for a test to 
return true."
           (should (when wikipage (string= (concat wikipage "::section")
                                          (hywiki-reference-to-referent 
"WikiWord#section")))))
       (hy-delete-file-and-buffer wikipage)
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--org-link-export ()
   "Verify `hywiki-org-link-export' output for different formats."
@@ -919,7 +945,7 @@ Both mod-time and checksum must be changed for a test to 
return true."
                    (hywiki-org-link-export "WikiWord" "doc" 'unknown)))
           (should (string= "NotAWikiPage" (hywiki-org-link-export 
"NotAWikiPage" "doc" 'ascii))))
       (hy-delete-file-and-buffer wikipage)
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--action-key-moves-to-word-and-section ()
   "Verify action key on a WikiWord with section, line and column works."
@@ -969,7 +995,7 @@ body B
                  (error (error "'%s', '%s' - Error: %s"
                                wiki-link expected-str-at-pos err-msg))))))
         (hy-delete-file-and-buffer wikipage)
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--published-html-links-to-word-and-section ()
   "Verify published html links to WikiWord and section."
@@ -1037,7 +1063,7 @@ WikiWord#Csection-subsection
                                         (expand-file-name "index.org" 
hywiki-directory)
                                         (expand-file-name "index.html" 
hywiki-org-publishing-directory)))
       (hy-delete-dir-and-buffer hywiki-org-publishing-directory)
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--get-singular-wikiword ()
   "Verify plural WikiWord is converted to singular.
@@ -1069,7 +1095,7 @@ Note special meaning of `hywiki-allow-plurals-flag'."
           (should-not (hywiki-add-referent "notawikiword" referent))
           (should (hywiki-add-referent "WikiWord" referent))
           (should (equal referent (hywiki-get-referent "WikiWord"))))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--add-activity ()
   "Verify `hywiki-add-activity'."
@@ -1081,7 +1107,7 @@ Note special meaning of `hywiki-allow-plurals-flag'."
           (hywiki-add-activity wikiword)
           (should (equal '(activity . "activity")
                         (hywiki-get-referent wikiword))))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--add-bookmark ()
   "Verify `hywiki-add-bookmark'."
@@ -1099,7 +1125,7 @@ Note special meaning of `hywiki-allow-plurals-flag'."
             (should (equal '(bookmark . "WikiWord")
                           (hywiki-get-referent "WikiWord")))))
       (hy-delete-file-and-buffer file)
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--add-command ()
   "Verify `hywiki-add-command'."
@@ -1110,7 +1136,7 @@ Note special meaning of `hywiki-allow-plurals-flag'."
          (hywiki-add-command wikiword)
          (should (equal '(command . hpath:find)
                         (hywiki-get-referent wikiword))))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--add-find ()
   "Verify `hywiki-add-find'."
@@ -1121,7 +1147,7 @@ Note special meaning of `hywiki-allow-plurals-flag'."
         (progn
           (hywiki-add-find wikiword)
           (should (equal referent (hywiki-get-referent wikiword))))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--add-global-button ()
   "Verify `hywiki-add-global-button'."
@@ -1129,7 +1155,7 @@ Note special meaning of `hywiki-allow-plurals-flag'."
     (unwind-protect
        (mocklet ((hargs:read-match => "gbtn"))
          (should (equal '(global-button . "gbtn") (hywiki-add-global-button 
"WikiWord"))))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--add-hyrolo ()
   "Verify `hywiki-add-hyrolo'."
@@ -1138,7 +1164,7 @@ Note special meaning of `hywiki-allow-plurals-flag'."
        (progn
          (hywiki-add-hyrolo "WikiWord")
          (should (equal '(hyrolo . hyrolo-fgrep) (hywiki-get-referent 
"WikiWord"))))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--add-info-index ()
   "Verify `hywiki-add-info-index'."
@@ -1148,7 +1174,7 @@ Note special meaning of `hywiki-allow-plurals-flag'."
           (info "emacs")
          (hywiki-add-info-index "WikiWord")
          (should (equal '(info-index . "(emacs)files") (hywiki-get-referent 
"WikiWord"))))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--add-info-node ()
   "Verify `hywiki-add-info-node'."
@@ -1157,7 +1183,7 @@ Note special meaning of `hywiki-allow-plurals-flag'."
        (hy-test-helpers:ert-simulate-keys "(emacs)\r"
          (hywiki-add-info-node "WikiWord")
          (should (equal '(info-node . "(emacs)") (hywiki-get-referent 
"WikiWord"))))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--add-key-series ()
   "Verify `hywiki-add-key-series'."
@@ -1170,7 +1196,7 @@ Note special meaning of `hywiki-allow-plurals-flag'."
          (hy-test-helpers:ert-simulate-keys "{ABC}\r"
            (hywiki-add-key-series "WikiWord")
            (should (equal '(key-series . "{ABC}") (hywiki-get-referent 
"WikiWord")))))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--add-path-link ()
   "Verify `hywiki-add-path-link'."
@@ -1180,7 +1206,7 @@ Note special meaning of `hywiki-allow-plurals-flag'."
        (progn (hywiki-add-path-link wikiword "file" 20)
               (should (equal '(path-link . "file:L1")
                              (hywiki-get-referent wikiword))))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--add-org-id ()
   "Verify `hywiki-add-org-id'."
@@ -1214,7 +1240,7 @@ Note special meaning of `hywiki-allow-plurals-flag'."
                          (should (string-prefix-p "ID: " referent-value))
                        (error "(hywiki-tests--add-org-id): referent value is a 
non-string: %s" referent-value)))))
              (hy-delete-file-and-buffer filea))))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--add-org-roam-node ()
   "Verify `hywiki-add-org-roam-node'."
@@ -1228,7 +1254,7 @@ Note special meaning of `hywiki-allow-plurals-flag'."
          (hywiki-add-org-roam-node wikiword)
           (should (equal '(org-roam-node . "node-title")
                         (hywiki-get-referent wikiword))))
-      (hy-delete-dir-and-buffer hywiki-directory))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (defmacro hywiki-tests--referent-test (expected-referent &rest prepare)
   "Template macro for generated a non-page HyWikiWord referent.
@@ -1259,7 +1285,7 @@ named WikiReferent with a non-page referent type."
 
            (should (equal ,expected-referent (hywiki-get-referent 
wiki-word-non-page))))
        (hy-delete-files-and-buffers (list (hywiki-cache-default-file)))
-       (hy-delete-dir-and-buffer hywiki-directory))))
+       (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 (ert-deftest hywiki-tests--save-referent-keyseries ()
   "Verify saving and loading a referent keyseries works ."
@@ -1292,7 +1318,7 @@ named WikiReferent with a non-page referent type."
                                  (point-min)
                                  (point-max)))))
        (hy-delete-files-and-buffers (list wiki-page 
(hywiki-cache-default-file)))
-       (hy-delete-dir-and-buffer hywiki-directory))))
+       (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
 
 ;; Bookmark
 (ert-deftest hywiki-tests--save-referent-bookmark ()
@@ -1519,7 +1545,7 @@ See gh#rswgnu/hyperbole/669."
               (goto-char 4)
               (should (hywiki-word-face-at-p))))
         (hy-delete-file-and-buffer wiki-page)
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (defun hywiki-tests--hywiki-face-region-at (&optional pos)
   "Get the start and end of the hywiki--word-face overlay at POS or point.
@@ -1643,7 +1669,7 @@ resulting state at point is a WikiWord or not."
             (dolist (testcase hywiki-tests--wikiword-step-check)
               (with-temp-buffer
                 (hywiki-tests--run-test-case testcase))))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--wikiword-step-check-verification-with-faces ()
   "Run the step check to verify WikiWord is identified under change.
@@ -1664,7 +1690,7 @@ is a WikiWord at point or not."
               (with-temp-buffer
                 (hywiki-tests--run-test-case testcase))))
         (hy-delete-files-and-buffers wiki-page-list)
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (defconst hywiki-tests--lorem-ipsum "\
 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse
@@ -1702,7 +1728,7 @@ Insert test in the middle of other text."
                '((p3 . t)
                  (" " . "Hi")
                  (p1 . t) (p4) (-1 . "Hiho")))))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--wikiword-identified-in-emacs-lisp-mode ()
   "Verify WikiWord is identified when surrounded by delimiters in 
`emacs-lisp-mode'."
@@ -1747,7 +1773,7 @@ Insert test in the middle of other text."
                 (hywiki-tests--command-execute #'newline 1 'interactive)
                 (goto-char 16)
                 (should-not (hywiki-word-at)))))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--wikiword-identified-in-strings-in-emacs-lisp-mode ()
   "Verify WikiWord is identified when in strings in `emacs-lisp-mode'."
@@ -1788,7 +1814,7 @@ Insert test in the middle of other text."
             (should (looking-at-p "DEMO\\.org\""))
             (should (ibtype:test-p 'hywiki-existing-word)))
         (hy-delete-file-and-buffer wiki-page)
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest 
hywiki-tests--nonexistent-wikiword-with-section-should-create-wikiword ()
   "Verify action-key on a new WikiWord#section creates proper page filename."
@@ -1805,7 +1831,7 @@ Insert test in the middle of other text."
             (should-not (file-exists-p hywiki-page-with-section))
             (should (file-exists-p hywiki-page)))
         (hy-delete-files-and-buffers (list hywiki-page 
hywiki-page-with-section))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--verify-removal-of-delimiter-updates-face ()
   "Verify removing a delimiter the face is changed along with the WikiWord."
@@ -1823,7 +1849,7 @@ Insert test in the middle of other text."
               (with-temp-buffer
                 (hywiki-tests--run-test-case testcase))))
         (hy-delete-file-and-buffer wikiHi)
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--wikiword-yanked-with-extra-words ()
   "Verify that a yanked in WikiWord highlights properly."
@@ -1877,7 +1903,7 @@ Insert test in the middle of other text."
               (goto-char 11)
               (hywiki-tests--verify-hywiki-word "Ho#d")))
         (hy-delete-files-and-buffers (list wikiHi wikiHo))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
 
 (ert-deftest hywiki-tests--create-wikiword-file-highlights-wikiword ()
   "Verify creating a WikiWord-file highlights the WikiWord in another file."
@@ -1896,7 +1922,112 @@ Insert test in the middle of other text."
               (goto-char 2)
               (hywiki-tests--verify-hywiki-word "Ho")))
         (hy-delete-files-and-buffers (list wikiHi wikiHo))
-        (hy-delete-dir-and-buffer hywiki-directory)))))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
+
+(ert-deftest hywiki-tests--consult-grep ()
+  "Verify `hywiki-consult-grep' calls `hsys-consult-grep'."
+  (let ((hywiki-directory (make-temp-file "hywiki" t))
+        (hsys-consult-flag nil))
+    (unwind-protect
+        (progn
+          ;; No path list
+          (mocklet (((hsys-consult-grep "--include *.org" "--glob *.org" 
"regexp" 0 (list hywiki-directory) "prompt") => "match"))
+            (should (string= (hywiki-consult-grep "regexp" 0 nil "prompt") 
"match")))
+          ;; Path list
+          (mocklet (((hsys-consult-grep "--include *.org" "--glob *.org" 
"regexp" 0 '("path") "prompt") => "match"))
+            (should (string= (hywiki-consult-grep "regexp" 0 '("path") 
"prompt") "match")))
+          ;; No Prompt, max-matches = 0
+          (mocklet (((hsys-consult-grep "--include *.org" "--glob *.org" 
"regexp" 0 '("path") "Grep HyWiki dir headlines") => "match"))
+            (should (string= (hywiki-consult-grep "regexp" 0 '("path")) 
"match")))
+          ;; No Prompt, max-matches != 0
+          (mocklet (((hsys-consult-grep "--include *.org" "--glob *.org" 
"regexp" 1 '("path") "Grep HyWiki dir") => "match"))
+            (should (string= (hywiki-consult-grep "regexp" 1 '("path")) 
"match"))))
+      (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory))))
+
+(ert-deftest hywiki-tests--hkey-help ()
+  "Verify `hkey-help'."
+  (mocklet (((hkey-actions) => t)
+            ((hkey-help) => "hkey-help"))
+    (should (string= (hywiki-help) "hkey-help")))
+  (let ((help-bn "*Help: HyWikiWords*"))
+    (unwind-protect
+        (progn
+          (when (get-buffer help-bn)
+            (kill-buffer help-bn))
+          (mocklet (((hkey-actions) => nil)
+                    (hkey-help not-called)
+                    ((documentation 'ibtypes::hywiki-existing-word) => "Doc 
string"))
+            (hywiki-help)
+            (should (get-buffer help-bn))
+            (with-current-buffer help-bn
+              (should (string= (buffer-string) "Doc string\n")))))
+      (kill-buffer help-bn))))
+
+(ert-deftest hywiki-tests--add-path-link-v2 ()
+  "Verify path links."
+  (hywiki-tests--preserve-hywiki-mode
+    (let* ((hywiki-directory (make-temp-file "hywiki" t))
+           (wikiHi (cdr (hywiki-add-page "Hi")))
+           (wikiHo (cdr (hywiki-add-page "Ho"))))
+      (unwind-protect
+          (progn
+            (hywiki-mode 1)
+            (with-current-buffer (find-file wikiHo)
+              (insert "123"))
+            (with-current-buffer (find-file wikiHi)
+              (hywiki-add-path-link "HoRef" wikiHo 3)
+              (should (string= (concat (file-name-nondirectory wikiHo) 
":L1:C2")
+                              (cdr (hywiki-get-referent "HoRef"))))))
+        (hy-delete-files-and-buffers (list wikiHi wikiHo))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
+
+(ert-deftest hywiki-tests--interactive-hywiki-mode-toggles ()
+  "Verify `hywiki-mode' called interactively toggles mode."
+  (hywiki-tests--preserve-hywiki-mode
+    (with-temp-buffer
+      (hywiki-mode 1)
+      (should hywiki-mode)
+      ;; Toggle
+      (call-interactively #'hywiki-mode)
+      (should-not hywiki-mode)
+      (call-interactively #'hywiki-mode)
+      (should hywiki-mode))))
+
+(ert-deftest hywiki-tests--directory-dired-edit ()
+  "Verify Dired is activated."
+  (hywiki-tests--preserve-hywiki-mode
+    (let* ((hywiki-directory (make-temp-file "hywiki" t))
+           (wikiHi (cdr (hywiki-add-page "Hi")))
+           (action-key-modeline-buffer-id-function nil)) ; Avoid treemacs.
+      (unwind-protect
+          (progn
+            (hywiki-directory-edit)
+            (should (equal 'dired-mode major-mode))
+            (should (string= default-directory (file-name-as-directory 
hywiki-directory))))
+        (hy-delete-files-and-buffers (list wikiHi))
+        (hywiki-tests--delete-hywiki-dir-and-buffer hywiki-directory)))))
+
+(ert-deftest hywiki-tests--tags-view ()
+  "Verify `hywiki-tag-view' calls `org-tags-view' and sets up `org-redo-cmd'."
+  (with-temp-buffer
+    (insert "1\n2\n3\n4\n5\n")
+    (goto-char 1)
+    (let ((bn (buffer-name)))
+      (mocklet (((org-tags-view nil "match") => t))
+        (hywiki-tags-view nil "match" bn)
+        (should (equal (get-text-property 1 'org-redo-cmd)
+                       (list #'hywiki-tags-view nil nil bn)))
+        (should (= (line-number-at-pos) 3)))))
+  ;; todo-only
+  (with-temp-buffer
+    (insert "1\n2\n3\n4\n5\n")
+    (goto-char 1)
+    (let ((bn (buffer-name)))
+      (mocklet (((org-tags-view t "match") => t))
+        (hywiki-tags-view t "match" bn)
+        (should (equal (get-text-property 1 'org-redo-cmd)
+                       (list #'hywiki-tags-view t nil bn)))
+        (should (= (line-number-at-pos) 3))))))
 
 (provide 'hywiki-tests)
 
diff --git a/test/kcell-tests.el b/test/kcell-tests.el
index f51ea46f6e..d73856b63d 100644
--- a/test/kcell-tests.el
+++ b/test/kcell-tests.el
@@ -1,13 +1,9 @@
 ;;; kcell-tests.el --- Test for kcells in Koutliner        -*- 
lexical-binding: t; -*-
-;; usage:        GNU Emacs Lisp Library
-;; keywords:     test
 ;;
-;; author:       Mats Lidell
-;; org:          Free Software Foundation, Inc.
-;; e-mail:       [email protected]
+;; Author:       Mats Lidell
 ;;
-;; orig-date:    16-Feb-22 at 23:28:49
-;; last-mod:     16-Mar-25 at 10:15:23 by Bob Weiner
+;; Orig-Date:    16-Feb-22 at 23:28:49
+;; Last-Mod:     16-Mar-25 at 10:15:23 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
diff --git a/test/kotl-orgtbl-tests.el b/test/kotl-orgtbl-tests.el
index e7ae250b22..9b44950b60 100644
--- a/test/kotl-orgtbl-tests.el
+++ b/test/kotl-orgtbl-tests.el
@@ -7,7 +7,7 @@
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
-;; Copyright (C) 2021-2023  Free Software Foundation, Inc.
+;; Copyright (C) 2021-2025  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
 ;;
 ;; This file is part of GNU Hyperbole.
diff --git a/topwin.py b/topwin.py
index 326fcbab72..99b07a3637 100644
--- a/topwin.py
+++ b/topwin.py
@@ -9,7 +9,7 @@
 # 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.
+# Copyright (C) 2017-2022  Free Software Foundation, Inc.
 # See the "HY-COPY" file for license information.
 #
 # DESCRIPTION:  

Reply via email to