Skip to content

Commit

Permalink
Hyperbole 7.0.9 Test Release
Browse files Browse the repository at this point in the history
  • Loading branch information
rswgnu committed Feb 17, 2020
1 parent cb7827c commit 9428ee7
Show file tree
Hide file tree
Showing 8 changed files with 137 additions and 59 deletions.
38 changes: 21 additions & 17 deletions Changes
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
2020-02-16 Bob Weiner <rsw@gnu.org>
2020-02-17 Bob Weiner <rsw@gnu.org>

* Published 7.0.9 test release.

* hpath.el (hpath:substitute-value): Updated to handle Texinfo @-quoted $@{hyperb:dir@} variable substitution.

* hypb.el (hypb:replace-match-string): Minor code updates.

2020-02-16 Bob Weiner <rsw@gnu.org>

* hibtypes.el (grep-msg): Fixed handling files names with spaces followed by a null character rather than a
colon as a separator. Note that the null is set to visibly display as a colon in Emacs.
hpath.el (hpath:tramp-file-name-regexp): Don't match if a control char is found, notably a null (ASCII 0).
These can appear in grep expressions where filenames followed by colons may be confused as remote paths.

* man/hyperbole.texi (Swapping Buffers):
DEMO (Swapping Buffers): Added swapping buffers between frames.

* hycontrol.el (hycontrol-window-swap-buffers): Fixed so current buffer remains the same but selected window
hycontrol.el (hycontrol-window-swap-buffers): Fixed so current buffer remains the same but selected window
changes.
(hycontrol-frame-swap-buffers): Fixed so current buffer remains the same but selected frame
changes. Also made this work anytime there are two or more frames regardless of how many windows in each.
Expand All @@ -27,18 +32,17 @@

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

* hycontrol.el (hycontrol-quit-frames-mode):
(hycontrol-quit-frames-mode):
man/hyperbole.texi (HyControl): Added doc of {q} vs. {Q}.
(hycontrol-quit-windows-mode): Deleted, created one unified quit command.
(hycontrol-quit): Renamed from hycontrol-quit-frames-mode.
(hycontrol-quit-windows-mode): Deleted, created one unified quit command.
(hycontrol-abort): Renamed from hycontrol-abort-mode.

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

* hui-menu.el (hyperbole-menubar-menu): Removed set-menubar-dirty-flag call.
Expand All @@ -47,12 +51,11 @@
* hkey-help.txt:
hmouse-drv.el (action-key-depress, assist-key-depress):
hui-window.el (action-key-modeline, assist-key-modeline):
Modeline window resizing is now handled in action/assist-key-depress
via a call to mouse-drag-mode-line, providing live visual feedback.
The same function is also overloaded in hmouse-drv.el to allow
repositioning frames that have minibuffer windows by dragging
from a bottommost modeline if the frame has a non-nil
'drag-with-mode-line' parameter.
Modeline window resizing is now handled in action/assist-key-depress via a call to
mouse-drag-mode-line, providing live visual feedback. The same function is also overloaded in
hmouse-drv.el to allow repositioning frames that have minibuffer windows by dragging from a
bottommost modeline if the frame has a non-nil 'drag-with-mode-line' parameter.

man/hyperbole.texi, DEMO (Moving Frames): Added this new section.

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

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

* hpath.el (hpath:posix-to-mswindows-separators):
(hpath:mswindows-to-posix-separators)
Expand Down
90 changes: 80 additions & 10 deletions HY-NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
* V7.0.9
===========================================================================

Many issues were resolved in this test version as documented in "Changes".
Only new features are documented here.

ACE WINDOW PACKAGE INTEGRATION - fast window and buffer switching

- After installing the ace-window package and loading Hyperbole, execute
Expand All @@ -16,35 +19,69 @@
you don't use region highlighting, i.e. transient-mark-mode, then use
{C-u M-o t} for the same effect. The buffer in the target window
must differ from the one in the source window. With no region
active, this command stillthrows the source buffer to the target
window.
active, this command still throws the source buffer to the target
window. See "DEMO#Displaying File and Buffer Items and Moving Buffers".

SMART (ACTION AND ASSIST) KEYS

- Modeline Drag Window Resizing: Smart Key window resizing now provides
live feedback during the drag.

- Bottommost Modeline Frame Moving: After adding a 'drag-with-mode-line'
frame parameter with a value of t, a drag of any of its bottommost
modelines with either Smart Mouse Key repositions the frame on screen.
See "(hyperbole)Moving Frames" for information on how to configure this
feature.

CUSTOMIZATON

- hproperty:flash-face: Face used when flashing a button; now customizable.

DEMO
- hproperty:highlight-face: Face used to highlight a line; now customizable.

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

GLOSSARY

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

HYCONTROL

- Buffer/Window Swapping: Improved {~} so current buffer remains the same but
the selected window changes. Also made frame buffer swapping work anytime
there are two or more frames regardless of how many windows in each. See
"DEMO#Swapping Buffers".

HYROLO

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

IMPLICIT BUTTONS

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

- Much improved conversion of MSWindows UNC paths to existing Posix mount
points when running Emacs under Windows Subsystem for Linux.
- Windows to Posix Paths: Much improved conversion of MSWindows UNC paths to
existing Posix mount points when running Emacs under Windows Subsystem for
Linux. See

- Flashing Implicit Buttons: More types of implicit buttons now flash when
activated.

- Improved Grep Output Parsing: Recognizes file names with spaces followed by
the null (^@, ASCII 0) character.

- Texinfo @-Quoted Path Variables: Hyperbole now can resolve paths as
complicated as this: @file{$@{hyperb:dir@}/DEMO#POSIX and MSWindows Paths}
in Texinfo files if the Action Key is pressed on the / or after, i.e. after
the variable name.

KEYS

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

ORG MODE

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

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


PROGRAMMING

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

- hypb:mark-object: Gives Hyperbole-specific strings and symbols
a hyperbole property that distinguishes them from other objects.

- hypb:object-p: Tests whether has the hyperbole property. This is useful
in hpath:relative-to and hpath:absolute-to where any string with a
hyperbole property is ignored as a potential path. For example, this
prevents removal of trailing whitespace from normalized key series.

- hbut:act: Hyperbole button parameter is now optional and defaults to
the located button, the symbol, 'hbut:current.

- ibtypes tag lookup: Implicit button type names such as ibtypes::grep-msg
are now properly found in tags tables using their defib names
(e.g. grep-msg).

- hmouse-drag-p: tests whether absolute Smart Mouse Key depress and
release positions differ (relative to display/screen coordinates).

- hycontrol-quit: Unified the two Hycontrol mode quit commands into this one.
hycontrol-abort: Renamed from hycontrol-abort-mode.

- hyperb:autoloads-exist-p
hyperb:maybe-generate-autoloads
hyperb:generate-autoloads: Added and called from hyperb:init when
initializing Hyperbole to generate auto-autoload files when
running from a non-packaged source download of Hyperbole.


===========================================================================
* V7.0.8
===========================================================================
Expand Down
14 changes: 9 additions & 5 deletions hargs.el
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,9 @@ With optional EXCLUDE-REGEXP, any matched string is ignored if it this regexp."
(end-search-func (if end-regexp-flag 're-search-forward
'search-forward))
(count 0)
start end)
first
start
end)
(save-excursion
(beginning-of-line)
(while (and (setq start (funcall start-search-func start-delim limit t))
Expand All @@ -125,17 +127,19 @@ With optional EXCLUDE-REGEXP, any matched string is ignored if it this regexp."
;; prior to the original point.
(funcall end-search-func end-delim opoint t)
(setq count (1+ count)))
(setq start nil))
(when (and (not start) (> count 0) (zerop (% count 2))
(string-equal start-delim end-delim))
(setq first (or first start)
start nil))
(when (and (not start) (> count 0) (zerop (% count 2)))
;; Since strings can span lines but this function matches only
;; strings that start on the current line, when start-delim and
;; end-delim are the same and there are an even number of
;; delimiters in the search range, causing the end-delim
;; search to match to what should probably be the start-delim,
;; assume point is within a string and not between two other strings.
;; -- RSW, 02-05-2019
(setq start (point)))
(setq start (if (string-equal start-delim end-delim)
(point)
first)))
(when start
(forward-line 2)
(setq limit (point))
Expand Down
3 changes: 1 addition & 2 deletions hmouse-drv.el
Original file line number Diff line number Diff line change
Expand Up @@ -792,8 +792,7 @@ frame instead."
(mouse-drag-line start-event 'mode))
((and (frame-parameter frame 'drag-with-mode-line)
(window-at-side-p window 'bottom))
;; Drag frame when the window is on the bottom of its frame and
;; there is no minibuffer window below.
;; Drag frame when the window is on the bottom of its frame.
(mouse-drag-frame start-event 'move)))))

(defun hkey-debug ()
Expand Down
2 changes: 1 addition & 1 deletion hmouse-sh.el
Original file line number Diff line number Diff line change
Expand Up @@ -477,7 +477,7 @@ With optional MIDDLE-KEY-ONLY-FLAG non-nil, bind only the middle mouse key."
;; for that. Use mouse1 only for setting point and drag selecting
;; regions.
;;
;; Don't bind mouse1 to action-key-depress-emacs to allow it to
;; Don't bind mouse-1 to action-key-depress-emacs to allow it to
;; follow links because that will disable the region highlighting
;; that we would rather allow.`
(customize-set-variable 'mouse-1-click-follows-link nil)
Expand Down
10 changes: 7 additions & 3 deletions hpath.el
Original file line number Diff line number Diff line change
Expand Up @@ -1114,7 +1114,8 @@ path form is what is returned for PATH."
(setq path (hbut:key-to-label (hbut:label-to-key path)))
(or (not (string-match "[()]" path))
(string-match "\\`([^ \t\n\r\)]+)[ *A-Za-z0-9]" path))
(if (string-match "\\$\{[^\}]+}" path)
;; Allow for @{ and @} in texinfo-mode
(if (string-match "\\$@?\{[^\}]+@?\}" path)
;; Path may be a link reference with a suffix component
;; following a comma or # symbol, so temporarily strip
;; these, if any, before expanding any embedded variables.
Expand Down Expand Up @@ -1283,12 +1284,15 @@ in-buffer path will not match."
;; Uses free variables `match' and `start' from `hypb:replace-match-string'.
(substitute-in-file-name
(hypb:replace-match-string
"\\$\{[^\}]+}"
"\\$@?\{\\([^\}]+\\)@?\}"
path
(lambda (str)
(let* ((var-group (substring path match start))
(var-name (substring path (+ match 2) (1- start)))
(rest-of-path (substring path start))
(var-ext (substring path (match-beginning 1) (match-end 1)))
(var-name (if (= ?@ (aref var-ext (1- (length var-ext))))
(substring var-ext 0 -1)
var-ext))
(trailing-dir-sep-flag (and (not (string-empty-p rest-of-path))
(memq (aref rest-of-path 0) '(?/ ?\\))))
(sym (intern-soft var-name)))
Expand Down
37 changes: 17 additions & 20 deletions hypb.el
Original file line number Diff line number Diff line change
Expand Up @@ -551,26 +551,23 @@ that returns a replacement string."
(literal newtext)
(t (mapconcat
(lambda (c)
(if special
(progn
(setq special nil)
(cond ((eq c ?\\) "\\")
((eq c ?&)
(substring str
(match-beginning 0)
(match-end 0)))
((and (>= c ?0) (<= c ?9))
(if (> c (+ ?0 (length
(match-data))))
;; Invalid match num
(error "(hypb:replace-match-string) Invalid match num: %c" c)
(setq c (- c ?0))
(substring str
(match-beginning c)
(match-end c))))
(t (char-to-string c))))
(if (eq c ?\\) (progn (setq special t) nil)
(char-to-string c))))
(cond (special
(setq special nil)
(cond ((eq c ?\\) "\\")
((eq c ?&)
(match-string 0 str))
((and (>= c ?0) (<= c ?9))
(if (> c (+ ?0 (length
(match-data))))
;; Invalid match num
(error "(hypb:replace-match-string) Invalid match num: %c" c)
(setq c (- c ?0))
(match-string c str)))
(t (char-to-string c))))
((eq c ?\\)
(setq special t)
nil)
(t (char-to-string c))))
newtext ""))))))
(concat rtn-str (substring str start))))

Expand Down
2 changes: 1 addition & 1 deletion hyperbole.el
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
;; Author: Bob Weiner
;; Maintainer: Bob Weiner <rsw@gnu.org>, Mats Lidell <matsl@gnu.org>
;; Created: 06-Oct-92 at 11:52:51
;; Released: 16-Feb-20
;; Released: 17-Feb-20
;; Version: 7.0.9
;; Keywords: comm, convenience, files, frames, hypermedia, languages, mail, matching, mouse, multimedia, outlines, tools, wp
;; Package: hyperbole
Expand Down

0 comments on commit 9428ee7

Please sign in to comment.