branch: externals/hyperbole
commit d10ef45b908ce05e9ea71a2876eafe07ebf101f4
Merge: e03085fad02 8d008874376
Author: Robert Weiner <[email protected]>
Commit: GitHub <[email protected]>

    Merge pull request #1005 from rswgnu/rsw
    
    - hyperbole.el (hkey-initialize): Bind {M-o} only if no curr binding
    
    - hpath:at-p - Fix a bug with single char pathname
---
 ChangeLog          | 38 ++++++++++++++++++++++++++++++--------
 hpath.el           |  6 +++---
 hyperbole.el       | 16 +++++++---------
 man/hyperbole.texi | 15 ++++++++-------
 4 files changed, 48 insertions(+), 27 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ebb6820aa77..25eec0586e2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2026-07-10  Bob Weiner  <[email protected]>
 
+* hpath.el (hpath:at-p): Near the top, move (match-string 0 path) call before
+    path is modified, otherwise, with a 1 char path, shrunk to an empty string,
+    match-path will trigger an error; fixes this.
+
+* hyperbole.el (hkey-initialize): Change to bind {M-o} in 'hyperbole-mode-map'
+    only if not previously bound.
+
 * hywiki.el (hywiki-referent-menu): Add Denote support.
             (hywiki-add-denote, hywiki-display-denote, 
hywiki-string-to-wikiword)
              hywiki-denote-file-to-wikiword, hywiki-denote-id-to-wikiword): Add
@@ -8,17 +15,32 @@
     when called, then insert it.  If buffer is read-only in this case, trigger
     an error.
 
+2026-07-09  Bob Weiner  <[email protected]>
+
+* hywiki.el (hywiki-delimited-p): Fix so 'wikiword' is always set to a
+    string or nil, not the 't return value from 'hypb:in-string-p'.  Also,
+    limit region narrowing to just where it is needed near the function
+    beginning.
 2026-07-07  Bob Weiner  <[email protected]>
 
-* hsys-youtube.el (hsys-youtube-end-format): YouTube no longer allows end 
times or the
-    embed protocol in video urls, so update this format to at least jump to 
the proper
-    start time.  The end time is sent but ignored.
+* hsys-youtube.el (hsys-youtube-end-format): YouTube no longer allows end
+    times or the embed protocol in video urls, so update this format to at
+    least jump to the proper start time.  The end time is sent but
+    ignored.
+
+* FAST-DEMO (Hyperbole Videos):
+  README.md: Add "HyWiki: Zero Markup Hypertext" article video links.
+
+* man/hyperbole.texi (Implicit Button Link Types):
+  hbut.el (defil): Clarify that TEXT-REGEXP is a partial match unless 
surrounded
+    by start \\` and end \\' match string delimiters.
 
-* hui-mouse.el (hkey-alist): Trigger 'hui-select-thing' or 
'hui-select-mark-delimited-sexp'
-    if (point) >= any hbut end point, not just equal to it, as before.  This 
was causing
-    a failure to trigger when a HyWikiWord came right before a closing double 
quote that
-    point was on, so the double quoted string was not selected and the 
HyWikiWord was
-    activated instead.
+* hui-mouse.el (hkey-alist): Trigger 'hui-select-thing' or
+    'hui-select-mark-delimited-sexp' if (point) >= any hbut end point, not
+    just equal to it, as before.  This was causing a failure to trigger
+    when a HyWikiWord came right before a closing double quote that point
+    was on, so the double quoted string was not selected and the
+    HyWikiWord was activated instead.
 
 2026-07-06  Bob Weiner  <[email protected]>
 
diff --git a/hpath.el b/hpath.el
index 7c63fa43cf0..3b8bfcb64af 100644
--- a/hpath.el
+++ b/hpath.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     1-Nov-91 at 00:44:23
-;; Last-Mod:      5-Jul-26 at 13:09:03 by Bob Weiner
+;; Last-Mod:     10-Jul-26 at 14:36:54 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -971,9 +971,9 @@ or `~'."
       (setq path (string-trim path)))
     (when (and path (not non-exist)
               (string-match hpath:prefix-regexp path)
+              (not (string-equal (match-string 0 path) path))
               (setq prefix (substring path 0 1)
-                    path (substring path 1))
-              (not (string-equal (match-string 0 path) path)))
+                    path (substring path 1)))
       (setq non-exist t))
     (if (and path (not (string-empty-p path))
             (or (and non-exist prefix)
diff --git a/hyperbole.el b/hyperbole.el
index 8bb742729b3..d4d66e5fce7 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -9,7 +9,7 @@
 ;; Maintainer:   Robert Weiner <[email protected]>
 ;; Maintainers:  Robert Weiner <[email protected]>, Mats Lidell <[email protected]>
 ;; Created:      06-Oct-92 at 11:52:51
-;; Last-Mod:      9-Jun-26 at 10:58:22 by Bob Weiner
+;; Last-Mod:     10-Jul-26 at 14:20:25 by Bob Weiner
 ;; Released:     10-Mar-24
 ;; Version:      9.0.2pre
 ;; Keywords:     comm, convenience, files, frames, hypermedia, languages, 
mail, matching, mouse, multimedia, outlines, tools, wp
@@ -285,14 +285,12 @@ of the commands."
     ;; Provide a site standard way of emulating most Hyperbole mouse drag
     ;; commands from the keyboard.  This is most useful for rapidly creating
     ;; Hyperbole link buttons from the keyboard without invoking the Hyperbole
-    ;; menu.  Works only if Hyperbole is run under a window system.
-    (when (hyperb:window-system)
-      (if (eq (global-key-binding "\M-o") #'facemenu-keymap)
-         ;; Override facemenu package that adds a keymap on M-o,
-         ;; since this binding is more important to Hyperbole
-         ;; users.
-         (hkey-set-key "\M-o" #'hkey-operate)
-       (hkey-maybe-set-key "\M-o" #'hkey-operate)))
+    ;; menu.  Works only if Hyperbole is run under a window system.  Less
+    ;; important to bind now that {C-h h i l} exists to create implicit
+    ;; links between two windows, so we only bind {M-o} here if it has no
+    ;; global binding prior to Hyperbole being loaded.
+    (when (and (hyperb:window-system) (not (key-binding "\M-o")))
+      (hkey-maybe-set-key "\M-o" #'hkey-operate))
     ;;
     ;; Explicit button renames without invoking the Hyperbole menu.
     ;; No binding by default.
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index 0fc05a543df..234be94c086 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -7,7 +7,7 @@
 @c Author:       Bob Weiner
 @c
 @c Orig-Date:     6-Nov-91 at 11:18:03
-@c Last-Mod:     10-Jul-26 at 12:11:58 by Bob Weiner
+@c Last-Mod:     10-Jul-26 at 14:20:29 by Bob Weiner
 
 @c %**start of header (This is for running Texinfo on a region.)
 @setfilename hyperbole.info
@@ -812,10 +812,11 @@ actions, e.g. bug#24568 displays the bug status 
information for that Emacs
 bug number, without the need for any additional markup.  Implicit link
 buttons can be added to documents with a simple drag between windows too.
 
-Or from the keyboard, With two windows on screen, an implicit link button
-can be created at point in the current buffer linking to the position in
-the other window's buffer by pressing @bkbd{C-h h i l}.  Use @bkbd{M-1
-C-h h i l} instead to be prompted for a name for the implicit button.
+Or from the keyboard, With two windows on screen, an implicit link
+button can be created at point in the current buffer linking to the
+position in the other window's buffer by pressing @bkbd{C-h h i l}.
+FYI, use @bkbd{C-u C-h h i l} instead to be prompted for a name for
+the implicit button when creating the link.
 
 @item Global buttons
 are buttons that are activated by name from anywhere within Emacs.  They may
@@ -3249,8 +3250,8 @@ other implicit button types will be tested and may 
activate instead.
 
 To activate a frequently used action button by name independent of
 your current buffer, simply add it to your global button file and
-precede it with a label @bkbd{C-h h i l}.  Then invoke it by label
-name with: @bkbd{C-h h g a}.
+precede it with a name using @bkbd{C-u C-h h i l}.  Then activate it
+by name with: @bkbd{C-h h g a}.
 
 
 @node Button Files, Action Types, Implicit Buttons, Buttons

Reply via email to