From 39d89c10d0874874f7d12b0d8af6a8e9a22c72b8 Mon Sep 17 00:00:00 2001 From: bw Date: Fri, 10 Jul 2026 14:25:31 -0400 Subject: [PATCH 1/3] hyperbole.el (hkey-initialize): Bind {M-o} only if no curr binding --- ChangeLog | 3 +++ hyperbole.el | 16 +++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index ebb6820a..8c9ebb7e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2026-07-10 Bob Weiner +* 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 diff --git a/hyperbole.el b/hyperbole.el index 8bb74272..d4d66e5f 100644 --- a/hyperbole.el +++ b/hyperbole.el @@ -9,7 +9,7 @@ ;; Maintainer: Robert Weiner ;; Maintainers: Robert Weiner , Mats Lidell ;; 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. From f333b690e152e7bb980bf7f4866ea58ea2e0bbd0 Mon Sep 17 00:00:00 2001 From: bw Date: Fri, 10 Jul 2026 14:43:22 -0400 Subject: [PATCH 2/3] hpath:at-p - Fix a bug with single char pathname handling --- ChangeLog | 103 +++++++++++++++++++++++++++++++++++++++++---- hpath.el | 6 +-- man/hyperbole.texi | 15 ++++--- 3 files changed, 106 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8c9ebb7e..993e590a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2026-07-10 Bob Weiner +* 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. @@ -11,17 +15,49 @@ when called, then insert it. If buffer is read-only in this case, trigger an error. +2026-07-09 Bob Weiner + +* 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. + (hywiki-word-dehighlight-in-buffers, hywiki-word-highlight-in-buffers): + Change from using 'pre/post-command-hook' to 'before/after-change-functions' + so run only when buffer is modified, not on each command. + test/hywiki-tests.el (hywiki-tests--verify-hook-functions): Change from using + 'pre/post-command-hook' to 'before/after-change-functions'. + test/hywiki-tests.el (hywiki-tests--verify-hywiki-word): Change from + displaying 'pre-command-hook' to 'before/after-change-functions' and + 'post-self-insert-hook'. + (hywiki-word-store-around-point): Cache and call 'hywiki-word-at' + and 'hywiki-at-range-delimiter' maximally one time each per call of this + function. (Used to call twice). + +2026-07-08 Bob Weiner + +* hib-social.el (hibtypes-git-project-regexp, hibtypes-git-file-regexp, + hibtypes-social-regexp): Allow for &arguments + 2026-07-07 Bob Weiner -* 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. -* 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. +* 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. 2026-07-06 Bob Weiner @@ -32,6 +68,15 @@ * hywiki.el (hywiki--extend-region): Fix so start is always <= end. +2026-07-05 Bob Weiner + +* hywiki.el (hywiki-word-at): Don't allow : or ; at the end of a #section. + +* hbut.el (hbut:label-delimiters-regexp): Add and use in + 'hywiki-maybe-highlight-references'. + +* hywiki.el (hywiki-get-buttonize-characters): Allow : as a trailing + separator character (previously had been filtered out). (hywiki-get-existing-page-file): Handle 't' value as 'file-stem-name' from a HyWikiWord spec. hpath.el (hpath:expand): Ensure path value is a string before trying to expand @@ -44,6 +89,48 @@ (hycontrol--frames-prompt-format, hycontrol--windows-prompt-format): Reformat for easier readability. +2026-07-02 Bob Weiner + +* hywiki.el (hywiki-position-in-hbut-label-p): Add to test if within + an hbut label. + (hywiki-maybe-dehighlight-references): Call above function to + allow for dehighlighting HyWikiWords within Hyperbole button labels + so that the Action Key always activates the label's button and doesn't + trigger a HyWikiWord activation. + (hywiki-word-store-around-point, + hywiki-word-highlight-post-self-insert, + hywiki-word-highlight-post-command, + hywiki-highlight-on-yank, + hywiki-highlight-word-get-range): Don't highlight if above + predicate is true. + (hywiki--get-delimited-range-backward): Fix to 'hbut:syntax-table' + during backward 'scan-sexps' so open/close angle brackets match to + account for use in hbut labels. Otherwise, when point is after a closing + angle bracket, the region returned is a single char, not the span of the + brackets. + (hywiki-maybe-dehighlight-between-references) + hywiki-maybe-highlight-references): Dehighlight any HyWikiWords + highlighted within a delimited Hyperbole button label. + +* hywiki.el (hywiki-scan-sexps): Add and use in place of 'scan-sexps' in + hywiki code. + (hywiki-get-delimited-region, + hywiki-maybe-highlight-balanced-pairs): Use 'hbut:syntax-table'. + hui-select.el (hui-select-get-syntax-table): Use 'hui-select-syntax-table' + in most programming modes when within a comment to support angle brackets + as sexpression delimiters. + +2026-07-01 Bob Weiner + +* hywiki.el (hywiki--get-delimited-range-at-closing-delimiter): Add to + separate out this code from a quoted sexp in 'hywiki-get-delimited-region' + and simplify debugging. + (hywiki--get-delimited-range-backward): Fix wrong location of + 'save-excursion' call so that point was moved one char forward before + backward 'scan-sexps' was called. This led to HyWiki words not be + dehighlighted when deleted the last WikiWord character within a set + of delimiters where it was the last word. + 2026-06-30 Mats Lidell * test/hywiki-tests.el (hywiki-display-hywiki-test): Add helper diff --git a/hpath.el b/hpath.el index 7c63fa43..3b8bfcb6 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/man/hyperbole.texi b/man/hyperbole.texi index 0fc05a54..234be94c 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 From 04b0057802ef723b60b8db28f71a7532ad8215a9 Mon Sep 17 00:00:00 2001 From: bw Date: Fri, 10 Jul 2026 15:14:32 -0400 Subject: [PATCH 3/3] ChangeLog - Revert accidentally pushed change notes --- ChangeLog | 68 ------------------------------------------------------- 1 file changed, 68 deletions(-) diff --git a/ChangeLog b/ChangeLog index 993e590a..25eec058 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,23 +21,6 @@ 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. - (hywiki-word-dehighlight-in-buffers, hywiki-word-highlight-in-buffers): - Change from using 'pre/post-command-hook' to 'before/after-change-functions' - so run only when buffer is modified, not on each command. - test/hywiki-tests.el (hywiki-tests--verify-hook-functions): Change from using - 'pre/post-command-hook' to 'before/after-change-functions'. - test/hywiki-tests.el (hywiki-tests--verify-hywiki-word): Change from - displaying 'pre-command-hook' to 'before/after-change-functions' and - 'post-self-insert-hook'. - (hywiki-word-store-around-point): Cache and call 'hywiki-word-at' - and 'hywiki-at-range-delimiter' maximally one time each per call of this - function. (Used to call twice). - -2026-07-08 Bob Weiner - -* hib-social.el (hibtypes-git-project-regexp, hibtypes-git-file-regexp, - hibtypes-social-regexp): Allow for &arguments - 2026-07-07 Bob Weiner * hsys-youtube.el (hsys-youtube-end-format): YouTube no longer allows end @@ -68,15 +51,6 @@ * hywiki.el (hywiki--extend-region): Fix so start is always <= end. -2026-07-05 Bob Weiner - -* hywiki.el (hywiki-word-at): Don't allow : or ; at the end of a #section. - -* hbut.el (hbut:label-delimiters-regexp): Add and use in - 'hywiki-maybe-highlight-references'. - -* hywiki.el (hywiki-get-buttonize-characters): Allow : as a trailing - separator character (previously had been filtered out). (hywiki-get-existing-page-file): Handle 't' value as 'file-stem-name' from a HyWikiWord spec. hpath.el (hpath:expand): Ensure path value is a string before trying to expand @@ -89,48 +63,6 @@ (hycontrol--frames-prompt-format, hycontrol--windows-prompt-format): Reformat for easier readability. -2026-07-02 Bob Weiner - -* hywiki.el (hywiki-position-in-hbut-label-p): Add to test if within - an hbut label. - (hywiki-maybe-dehighlight-references): Call above function to - allow for dehighlighting HyWikiWords within Hyperbole button labels - so that the Action Key always activates the label's button and doesn't - trigger a HyWikiWord activation. - (hywiki-word-store-around-point, - hywiki-word-highlight-post-self-insert, - hywiki-word-highlight-post-command, - hywiki-highlight-on-yank, - hywiki-highlight-word-get-range): Don't highlight if above - predicate is true. - (hywiki--get-delimited-range-backward): Fix to 'hbut:syntax-table' - during backward 'scan-sexps' so open/close angle brackets match to - account for use in hbut labels. Otherwise, when point is after a closing - angle bracket, the region returned is a single char, not the span of the - brackets. - (hywiki-maybe-dehighlight-between-references) - hywiki-maybe-highlight-references): Dehighlight any HyWikiWords - highlighted within a delimited Hyperbole button label. - -* hywiki.el (hywiki-scan-sexps): Add and use in place of 'scan-sexps' in - hywiki code. - (hywiki-get-delimited-region, - hywiki-maybe-highlight-balanced-pairs): Use 'hbut:syntax-table'. - hui-select.el (hui-select-get-syntax-table): Use 'hui-select-syntax-table' - in most programming modes when within a comment to support angle brackets - as sexpression delimiters. - -2026-07-01 Bob Weiner - -* hywiki.el (hywiki--get-delimited-range-at-closing-delimiter): Add to - separate out this code from a quoted sexp in 'hywiki-get-delimited-region' - and simplify debugging. - (hywiki--get-delimited-range-backward): Fix wrong location of - 'save-excursion' call so that point was moved one char forward before - backward 'scan-sexps' was called. This led to HyWiki words not be - dehighlighted when deleted the last WikiWord character within a set - of delimiters where it was the last word. - 2026-06-30 Mats Lidell * test/hywiki-tests.el (hywiki-display-hywiki-test): Add helper