Skip to content

Commit 9428ee7

Browse files
committed
Hyperbole 7.0.9 Test Release
1 parent cb7827c commit 9428ee7

8 files changed

Lines changed: 137 additions & 59 deletions

File tree

Changes

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
1-
2020-02-16 Bob Weiner <rsw@gnu.org>
1+
2020-02-17 Bob Weiner <rsw@gnu.org>
22

33
* Published 7.0.9 test release.
44

5+
* hpath.el (hpath:substitute-value): Updated to handle Texinfo @-quoted $@{hyperb:dir@} variable substitution.
6+
7+
* hypb.el (hypb:replace-match-string): Minor code updates.
8+
9+
2020-02-16 Bob Weiner <rsw@gnu.org>
10+
511
* hibtypes.el (grep-msg): Fixed handling files names with spaces followed by a null character rather than a
612
colon as a separator. Note that the null is set to visibly display as a colon in Emacs.
713
hpath.el (hpath:tramp-file-name-regexp): Don't match if a control char is found, notably a null (ASCII 0).
814
These can appear in grep expressions where filenames followed by colons may be confused as remote paths.
915

1016
* man/hyperbole.texi (Swapping Buffers):
1117
DEMO (Swapping Buffers): Added swapping buffers between frames.
12-
13-
* hycontrol.el (hycontrol-window-swap-buffers): Fixed so current buffer remains the same but selected window
18+
hycontrol.el (hycontrol-window-swap-buffers): Fixed so current buffer remains the same but selected window
1419
changes.
1520
(hycontrol-frame-swap-buffers): Fixed so current buffer remains the same but selected frame
1621
changes. Also made this work anytime there are two or more frames regardless of how many windows in each.
@@ -27,18 +32,17 @@
2732

2833
* hyperbole.el (hyperb:autoloads-exist-p, hyperb:maybe-generate-autoloads, hyperb:generate-autoloads):
2934
Added and called from hyperb:init when initializing Hyperbole to generate auto-autoload files when
30-
running froma non-packaged non-release source download of Hyperbole.
35+
running from a non-packaged source download of Hyperbole.
3136

3237
* hycontrol.el (hycontrol-quit-frames-mode):
33-
(hycontrol-quit-frames-mode):
3438
man/hyperbole.texi (HyControl): Added doc of {q} vs. {Q}.
35-
(hycontrol-quit-windows-mode): Deleted, created one unified quit command.
3639
(hycontrol-quit): Renamed from hycontrol-quit-frames-mode.
40+
(hycontrol-quit-windows-mode): Deleted, created one unified quit command.
3741
(hycontrol-abort): Renamed from hycontrol-abort-mode.
3842

39-
* hui-window.el (hmouse-alist-add-window-handlers): Added not a modeline depress test for clause that
40-
handles drags from a window to a modeline, since otherwise will catch drags from a modeline that
41-
may move a frame.
43+
* hui-window.el (hmouse-alist-add-window-handlers): Added 'not a modeline depress' test for the
44+
clause that handles drags from a window to a modeline, since otherwise it will catch drags from a
45+
modeline that may move a frame.
4246
(hmouse-drag-p): Added to test whether absolute depress and release positions differ.
4347

4448
* hui-menu.el (hyperbole-menubar-menu): Removed set-menubar-dirty-flag call.
@@ -47,12 +51,11 @@
4751
* hkey-help.txt:
4852
hmouse-drv.el (action-key-depress, assist-key-depress):
4953
hui-window.el (action-key-modeline, assist-key-modeline):
50-
Modeline window resizing is now handled in action/assist-key-depress
51-
via a call to mouse-drag-mode-line, providing live visual feedback.
52-
The same function is also overloaded in hmouse-drv.el to allow
53-
repositioning frames that have minibuffer windows by dragging
54-
from a bottommost modeline if the frame has a non-nil
55-
'drag-with-mode-line' parameter.
54+
Modeline window resizing is now handled in action/assist-key-depress via a call to
55+
mouse-drag-mode-line, providing live visual feedback. The same function is also overloaded in
56+
hmouse-drv.el to allow repositioning frames that have minibuffer windows by dragging from a
57+
bottommost modeline if the frame has a non-nil 'drag-with-mode-line' parameter.
58+
5659
man/hyperbole.texi, DEMO (Moving Frames): Added this new section.
5760

5861
2020-02-15 Bob Weiner <rsw@gnu.org>
@@ -77,8 +80,9 @@
7780
calls that look like actypes::<action-type> and ibtypes::<implicit-button-type> jump to
7881
the associated defact and defib definitions.
7982

80-
* hbut.el (ibtype:create): Added definition-name property to a tag lookup on ibtypes::grep-msg looks up
81-
the name used in the defib call, grep-msg. This had previously been done for actypes.
83+
* hbut.el (htype:create): Generalized definition-name property used for tag lookup on names like,
84+
ibtypes::grep-msg, which looks for the name used in the defib call, grep-msg. This had
85+
previously been done for actypes.
8286

8387
* hpath.el (hpath:posix-to-mswindows-separators):
8488
(hpath:mswindows-to-posix-separators)

HY-NEWS

Lines changed: 80 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
* V7.0.9
66
===========================================================================
77

8+
Many issues were resolved in this test version as documented in "Changes".
9+
Only new features are documented here.
10+
811
ACE WINDOW PACKAGE INTEGRATION - fast window and buffer switching
912

1013
- After installing the ace-window package and loading Hyperbole, execute
@@ -16,35 +19,69 @@
1619
you don't use region highlighting, i.e. transient-mark-mode, then use
1720
{C-u M-o t} for the same effect. The buffer in the target window
1821
must differ from the one in the source window. With no region
19-
active, this command stillthrows the source buffer to the target
20-
window.
22+
active, this command still throws the source buffer to the target
23+
window. See "DEMO#Displaying File and Buffer Items and Moving Buffers".
24+
25+
SMART (ACTION AND ASSIST) KEYS
26+
27+
- Modeline Drag Window Resizing: Smart Key window resizing now provides
28+
live feedback during the drag.
29+
30+
- Bottommost Modeline Frame Moving: After adding a 'drag-with-mode-line'
31+
frame parameter with a value of t, a drag of any of its bottommost
32+
modelines with either Smart Mouse Key repositions the frame on screen.
33+
See "(hyperbole)Moving Frames" for information on how to configure this
34+
feature.
35+
36+
CUSTOMIZATON
37+
38+
- hproperty:flash-face: Face used when flashing a button; now customizable.
2139

22-
DEMO
40+
- hproperty:highlight-face: Face used to highlight a line; now customizable.
2341

24-
- Fixed many smaller issues that caused example implicit buttons to fail.
42+
- inhibit-hsys-org: See ORG MODE section below.
2543

2644
GLOSSARY
2745

2846
- Hlink Definitions: Added Action Button, Elink, Ilink, Glink definitions.
2947

48+
HYCONTROL
49+
50+
- Buffer/Window Swapping: Improved {~} so current buffer remains the same but
51+
the selected window changes. Also made frame buffer swapping work anytime
52+
there are two or more frames regardless of how many windows in each. See
53+
"DEMO#Swapping Buffers".
54+
3055
HYROLO
3156

32-
- Hyrolo Add: Fixed new entry addition to add in sorted order and logic
33-
operators to perform properly, after a bug in level calculation had been
57+
- Hyrolo Add: Fixed new entry addition to add in sorted order and make logic
58+
operators perform properly, after a bug in level calculation had been
3459
introduced.
3560

3661
IMPLICIT BUTTONS
3762

3863
- Double Quoting Key Series: Key series delimited by {} may now be in double
3964
quotes, e.g. "{C-x o}".
4065

41-
- Much improved conversion of MSWindows UNC paths to existing Posix mount
42-
points when running Emacs under Windows Subsystem for Linux.
66+
- Windows to Posix Paths: Much improved conversion of MSWindows UNC paths to
67+
existing Posix mount points when running Emacs under Windows Subsystem for
68+
Linux. See
69+
70+
- Flashing Implicit Buttons: More types of implicit buttons now flash when
71+
activated.
72+
73+
- Improved Grep Output Parsing: Recognizes file names with spaces followed by
74+
the null (^@, ASCII 0) character.
75+
76+
- Texinfo @-Quoted Path Variables: Hyperbole now can resolve paths as
77+
complicated as this: @file{$@{hyperb:dir@}/DEMO#POSIX and MSWindows Paths}
78+
in Texinfo files if the Action Key is pressed on the / or after, i.e. after
79+
the variable name.
4380

4481
KEYS
4582

46-
- Removed {C-c C-r} key binding for explicit button renaming due to
47-
conflicts with some major modes
83+
- Deleted C-c C-r Global Binding: Removed {C-c C-r} key binding for explicit
84+
button renaming due to conflicts with some major modes
4885

4986
ORG MODE
5087

@@ -54,6 +91,11 @@
5491
- inhibit-hsys-org: New customization that when set non-nil disables
5592
all Smart Key support in any Org major or minor mode.
5693

94+
- hsys-org-hbut-activate-p: Added to org-metareturn-hook so local binding
95+
of {M-RET} in org-mode activates Hyperbole buttons when point is over
96+
them. (It doesn't run the full set of Action Key actions).
97+
98+
5799
PROGRAMMING
58100

59101
- Auto Imenu Reindexing: If using Emacs imenu package, the Action Key
@@ -62,6 +104,34 @@
62104
will now automatically rebuild the index to have correct pointers.
63105
(Does not require use of the imenu-auto-rescan setting.
64106

107+
- hypb:mark-object: Gives Hyperbole-specific strings and symbols
108+
a hyperbole property that distinguishes them from other objects.
109+
110+
- hypb:object-p: Tests whether has the hyperbole property. This is useful
111+
in hpath:relative-to and hpath:absolute-to where any string with a
112+
hyperbole property is ignored as a potential path. For example, this
113+
prevents removal of trailing whitespace from normalized key series.
114+
115+
- hbut:act: Hyperbole button parameter is now optional and defaults to
116+
the located button, the symbol, 'hbut:current.
117+
118+
- ibtypes tag lookup: Implicit button type names such as ibtypes::grep-msg
119+
are now properly found in tags tables using their defib names
120+
(e.g. grep-msg).
121+
122+
- hmouse-drag-p: tests whether absolute Smart Mouse Key depress and
123+
release positions differ (relative to display/screen coordinates).
124+
125+
- hycontrol-quit: Unified the two Hycontrol mode quit commands into this one.
126+
hycontrol-abort: Renamed from hycontrol-abort-mode.
127+
128+
- hyperb:autoloads-exist-p
129+
hyperb:maybe-generate-autoloads
130+
hyperb:generate-autoloads: Added and called from hyperb:init when
131+
initializing Hyperbole to generate auto-autoload files when
132+
running from a non-packaged source download of Hyperbole.
133+
134+
65135
===========================================================================
66136
* V7.0.8
67137
===========================================================================

hargs.el

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,9 @@ With optional EXCLUDE-REGEXP, any matched string is ignored if it this regexp."
113113
(end-search-func (if end-regexp-flag 're-search-forward
114114
'search-forward))
115115
(count 0)
116-
start end)
116+
first
117+
start
118+
end)
117119
(save-excursion
118120
(beginning-of-line)
119121
(while (and (setq start (funcall start-search-func start-delim limit t))
@@ -125,17 +127,19 @@ With optional EXCLUDE-REGEXP, any matched string is ignored if it this regexp."
125127
;; prior to the original point.
126128
(funcall end-search-func end-delim opoint t)
127129
(setq count (1+ count)))
128-
(setq start nil))
129-
(when (and (not start) (> count 0) (zerop (% count 2))
130-
(string-equal start-delim end-delim))
130+
(setq first (or first start)
131+
start nil))
132+
(when (and (not start) (> count 0) (zerop (% count 2)))
131133
;; Since strings can span lines but this function matches only
132134
;; strings that start on the current line, when start-delim and
133135
;; end-delim are the same and there are an even number of
134136
;; delimiters in the search range, causing the end-delim
135137
;; search to match to what should probably be the start-delim,
136138
;; assume point is within a string and not between two other strings.
137139
;; -- RSW, 02-05-2019
138-
(setq start (point)))
140+
(setq start (if (string-equal start-delim end-delim)
141+
(point)
142+
first)))
139143
(when start
140144
(forward-line 2)
141145
(setq limit (point))

hmouse-drv.el

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -792,8 +792,7 @@ frame instead."
792792
(mouse-drag-line start-event 'mode))
793793
((and (frame-parameter frame 'drag-with-mode-line)
794794
(window-at-side-p window 'bottom))
795-
;; Drag frame when the window is on the bottom of its frame and
796-
;; there is no minibuffer window below.
795+
;; Drag frame when the window is on the bottom of its frame.
797796
(mouse-drag-frame start-event 'move)))))
798797

799798
(defun hkey-debug ()

hmouse-sh.el

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ With optional MIDDLE-KEY-ONLY-FLAG non-nil, bind only the middle mouse key."
477477
;; for that. Use mouse1 only for setting point and drag selecting
478478
;; regions.
479479
;;
480-
;; Don't bind mouse1 to action-key-depress-emacs to allow it to
480+
;; Don't bind mouse-1 to action-key-depress-emacs to allow it to
481481
;; follow links because that will disable the region highlighting
482482
;; that we would rather allow.`
483483
(customize-set-variable 'mouse-1-click-follows-link nil)

hpath.el

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1114,7 +1114,8 @@ path form is what is returned for PATH."
11141114
(setq path (hbut:key-to-label (hbut:label-to-key path)))
11151115
(or (not (string-match "[()]" path))
11161116
(string-match "\\`([^ \t\n\r\)]+)[ *A-Za-z0-9]" path))
1117-
(if (string-match "\\$\{[^\}]+}" path)
1117+
;; Allow for @{ and @} in texinfo-mode
1118+
(if (string-match "\\$@?\{[^\}]+@?\}" path)
11181119
;; Path may be a link reference with a suffix component
11191120
;; following a comma or # symbol, so temporarily strip
11201121
;; these, if any, before expanding any embedded variables.
@@ -1283,12 +1284,15 @@ in-buffer path will not match."
12831284
;; Uses free variables `match' and `start' from `hypb:replace-match-string'.
12841285
(substitute-in-file-name
12851286
(hypb:replace-match-string
1286-
"\\$\{[^\}]+}"
1287+
"\\$@?\{\\([^\}]+\\)@?\}"
12871288
path
12881289
(lambda (str)
12891290
(let* ((var-group (substring path match start))
1290-
(var-name (substring path (+ match 2) (1- start)))
12911291
(rest-of-path (substring path start))
1292+
(var-ext (substring path (match-beginning 1) (match-end 1)))
1293+
(var-name (if (= ?@ (aref var-ext (1- (length var-ext))))
1294+
(substring var-ext 0 -1)
1295+
var-ext))
12921296
(trailing-dir-sep-flag (and (not (string-empty-p rest-of-path))
12931297
(memq (aref rest-of-path 0) '(?/ ?\\))))
12941298
(sym (intern-soft var-name)))

hypb.el

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -551,26 +551,23 @@ that returns a replacement string."
551551
(literal newtext)
552552
(t (mapconcat
553553
(lambda (c)
554-
(if special
555-
(progn
556-
(setq special nil)
557-
(cond ((eq c ?\\) "\\")
558-
((eq c ?&)
559-
(substring str
560-
(match-beginning 0)
561-
(match-end 0)))
562-
((and (>= c ?0) (<= c ?9))
563-
(if (> c (+ ?0 (length
564-
(match-data))))
565-
;; Invalid match num
566-
(error "(hypb:replace-match-string) Invalid match num: %c" c)
567-
(setq c (- c ?0))
568-
(substring str
569-
(match-beginning c)
570-
(match-end c))))
571-
(t (char-to-string c))))
572-
(if (eq c ?\\) (progn (setq special t) nil)
573-
(char-to-string c))))
554+
(cond (special
555+
(setq special nil)
556+
(cond ((eq c ?\\) "\\")
557+
((eq c ?&)
558+
(match-string 0 str))
559+
((and (>= c ?0) (<= c ?9))
560+
(if (> c (+ ?0 (length
561+
(match-data))))
562+
;; Invalid match num
563+
(error "(hypb:replace-match-string) Invalid match num: %c" c)
564+
(setq c (- c ?0))
565+
(match-string c str)))
566+
(t (char-to-string c))))
567+
((eq c ?\\)
568+
(setq special t)
569+
nil)
570+
(t (char-to-string c))))
574571
newtext ""))))))
575572
(concat rtn-str (substring str start))))
576573

hyperbole.el

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
;; Author: Bob Weiner
66
;; Maintainer: Bob Weiner <rsw@gnu.org>, Mats Lidell <matsl@gnu.org>
77
;; Created: 06-Oct-92 at 11:52:51
8-
;; Released: 16-Feb-20
8+
;; Released: 17-Feb-20
99
;; Version: 7.0.9
1010
;; Keywords: comm, convenience, files, frames, hypermedia, languages, mail, matching, mouse, multimedia, outlines, tools, wp
1111
;; Package: hyperbole

0 commit comments

Comments
 (0)