What's New in GNU Hyperbole

 ===========================================================================
 * V9.0.1
 ===========================================================================
 ** ACE WINDOW PACKAGE INTEGRATION - fast window and buffer switching
 *** After installing the ace-window package and loading Hyperbole, execute
 (hkey-ace-window-setup "\M-o") to enable the following capabilities:
 *** Fast Window Links: The hkey-window-link command quickly creates links
 to other windows:
 {M-o w } - creates an explicit button linked to point in 
 {C-u M-o w } - creates an unnamed implicit button linked to point
 in 
 {M-1 M-o w } - creates a named implicit button linked to point
 in 
 See "(hyperbole)Create Link Button".
 ** ACTION AND ASSIST (SMART) KEYS (See "(hyperbole)Smart Keys").
 *** Angle Bracket and Braces Thing Selection: In text and fundamental modes,
 an Action Key press on an angle bracket or a curly brace selects the
 region between a matching pair. See "(hyperbole)Smart Key Thing
 Selection".
 *** Drag Button Referents to Specific Windows: Just as you previously could
 drag Dired or Buffer Menu items to display in a specific window, you
 can now do the same with Hyperbole Buttons. Action or Assist Key drag
 from a Hyperbole button and release in another window where you want
 the button's referent (or the result of its action) displayed. If you
 release the Smart Key outside of an Emacs window, the referent is
 displayed in a new frame. See "(hyperbole)Displaying Items".
 Visual pulsing of the source line and the destination buffer highlights
 the transfer taking place (hmouse-pulse-flag controls this).
 Dragging a button to a modeline splits the window of the modeline and
 displays the referent in the leftmost or uppermost of the split windows.
 *** Drag to Create Implicit Link Buttons: An Assist Mouse Key drag across
 windows (when not starting from a draggable item) creates an implicit
 link button with an action type determined by the referent at the point
 of button release. This parallels the same Action Mouse Key drag which
 creates explicit link buttons. See "(hyperbole)creating implicit
 links".
 Previously this drag would swap buffers in windows. Now you must drag
 from open space in a modeline of the depress window to the buffer text
 in the release window to swap buffers in windows.
 Alternatively, with two windows in a frame, you can create an implicit
 link button from point to the point of the other buffer with {C-h h i l}.
 *** Hyperbole Symbol Tags: Hyperbole now includes a pre-built TAGS file so
 that an Action Key press on any Hyperbole symbol jumps to its
 definition without the need for any additional support. This also
 works on Hyperbole type names (which have a hidden prefix) in a help
 buffer where an Action Key press displays the type definition.
 *** Lisp Load, Autoload and Require Expressions: Action Key press on any
 named target in such expressions displays the associated library.
 *** Lisp Action Button Help: Action Buttons that utilize regular Lisp
 functions (rather than Hyperbole Action Types) can now have :help
 functions run with a press of the Assist Key on such buttons. See
 "(hyperbole)Action Buttons".
 *** Smart Dired: Action Key subdirectory selection at point now works on
 any dired header line, not just the first one. Use {i} to insert
 multiple subdirectories in Dired mode. Smart Key end-of-line behavior
 is no longer specified in Dired mode but handled globally for
 consistency across modes. See "(hyperbole)Smart Key - Dired Mode".
 ** ACTION TYPES (See "(hyperbole)Action Types").
 *** display-boolean, display-value, display-variable: Made all of these
 interactive, so can be used as button actypes. See "(hyperbole)
 actypes display-boolean".
 *** Long Action Buttons: The length limit on action buttons has been removed
 to allow for long, multi-line sexpressions.
 ** DOCUMENTATION
 *** Hyperbole Concepts: New writeup in Koutline format for those who
 want a quick read about how Hyperbole concepts all interrelate.
 View it with {C-h h d c}.
 *** Action Types: Add newer types and updated existing doc summaries
 in the Hyperbole manual. See "(hyperbole)Action Types".
 *** Doc Viewing: Updated to display many files from the Doc> menu in Org
 mode, so can cycle through expanding and collapsing entries with TAB
 when point is at the beginning of the buffer, allowing you to view
 just the sections of interest. View minor mode is also enabled so
 you can scroll forward and backward with SPC and DEL.
 This includes DEMO, FAST-DEMO, HY-ABOUT, HY-NEWS and the Hyperbole
 Files MANIFEST.
 *** Emacs 2023 Talk Videos:
 - Hyperbole Amps Up Emacs: Org slide file is included in
 "HY-TALK/HYPERAMP.org" with the video at
 "https://emacsconf.org/2023/talks/hyperamp/".
 - Koutline for Stream of Thought Journaling: The video is at
 "https://emacsconf.org/2023/talks/koutline/".
 - What I learned by writing test cases for GNU Hyperbole: The video
 is at "https://emacsconf.org/2023/talks/test/".
 *** Emacs 2022 Talk Videos:
 - Hyperbole and Org Mode: Org slide file is included in
 "HY-TALK/HYPERORG.org" with the video at
 "https://emacsconf.org/2022/talks/hyperorg/".
 - Linking Personal Info with Implicit Buttons: The video is at
 "https://emacsconf.org/2022/talks/buttons/".
 - Build a Zettelkasten with HyRolo: The video is at
 "https://emacsconf.org/2022/talks/rolodex/".
 *** FAST-DEMO: Add  ERT multiple test run
 example.
 *** New Menu Key Doc: Documented these Hyperbole minibuffer menu keys:
 - {Q} always quits from the menu without selecting anything
 - {X} both quits from the menu and disables Hyperbole minor
 mode; {C-h h} re-enables it. See "(hyperbole)menu,
 entry/exit commands".
 *** Updated 150-page Reference Manual: Includes multiple indexes for easy
 cross-referencing, Info viewer version and PDF for printing. View it:
 - with the Emacs Info reader: {C-h h d i}.
 - locally with a web browser: 
 - in pdf form: "man/hyperbole.pdf".
 Some of the updates include:
 **** HyRolo Searching: Update this section with doc on auto-expansion and
 how to hide entries again.
 **** Ibut Menu: Document in the manual, notably the new Ibut/Create menu
 item. See "(hyperbole)menu, Ibut/Create". For the Ibut/Link menu
 item, see "(hyperbole)menu, Ibut/Link".
 **** Implicit Button Types: Add doc for 'hib-python-traceback'
 and 'hyrolo-stuck-msg'. See "(hyperbole)Implicit Button Types".
 **** Link Menu Items: With two windows on screen, link from source window
 point to referent window point. Do a similar thing when more windows
 are on screen via an Action Mouse Key drag between windows. See
 "(hyperbole)Smart Mouse Drags between Windows".
 **** Manual Glossary: Added Ace Window, Consult, Org Mode, and Org Roam
 entries. See "(hyperbole)Glossary".
 **** Smart Key - Org Mode: Expanded with doc for more extensive behavior.
 See "(hyperbole)Smart Key - Org Mode".
 *** README.md: Unify this as the only readme file and remove "README".
 ** EXPLICIT BUTTONS (See "(hyperbole)Explicit Buttons").
 *** Ebut/Link Menu Item {C-h h e l}: Inserts a named ebutton that links to
 point in another window. See "(hyperbole)menu item, Ebut/Link".
 ** GLOBAL BUTTONS (See "(hyperbole)Global Buttons").
 *** Gbut/Link Menu Item: A single name creates a new global link button
 to point. See "(hyperbole)menu item, Gbut/Link".
 *** Auto Save: Automatically save the global button file after any edit.
 ** HYCONTROL (See "(hyperbole)HyControl").
 *** I/J/K/M Key Bindings: In Window Control mode, move directionally
 (based on QUERTY keyboard layout) among windows in the selected frame.
 In Frame Control mode, move directionally among active frames. These
 keys utilize and prompt to install the windmove and framemove packages
 if not installed. See "(hyperbole)I/J/K/M".
 ** HYPERBOLE SYSTEM (See "(hyperbole)").
 *** Any Colorized Display: Face display and colorization of Hyperbole
 buttons now works on any display capable of displaying colors. See
 "(hyperbole)Button Colors".
 *** Create Buttons in Current Buffer: Stop prompting for a source buffer
 when creating a Hyperbole button. Always use the current buffer and
 point. See "(hyperbole)Creation".
 *** DuckDuckGo Web Search: {C-h h f w k} runs a DuckDuckGo web search.
 *** Hyperbole Keys Defer to Current Modes: Hyperbole bindings of {C-c RET},
 {C-c .}, {C-c @}, and {C-c /} defer to any major mode, like org-mode,
 outline-mode or kotl-mode that binds them to other commands. This also
 works for outline-minor-mode.
 *** Improved Button Help: {C-h A} now says whether a button is explicit or
 implicit. For implicit buttons, it displays the doc from both its
 implicit button type and its associated action type.
 {C-h A} now also works on Emacs push-buttons and text property
 buttons, displaying their attributes and associated action. See
 "(hyperbole)Smart Key help".
 *** Flymake Lint Warning Display: The new "hsys-flymake" library provides
 commands to display the flymake warning at point as well as the full list
 of warnings for the current buffer. See "(hyperbole)Smart Key - Flymake
 Mode" for details.
 *** Makefile (eln): Use echo target for showing build info as part of the
 eln build.
 (echo): Show Emacs location and version in build environment
 info.
 (lint): Use "package-lint" to lint Hyperbole source code. 
 *** mhtml-mode Markup Selection: Hyperbole's matching markup pair selection,
 copying and movement now works with Emacs' builtin mhtml-mode. See
 "(hyperbole)HTML tag pair".
 *** Native Compilation: Hyperbole now may be natively compiled (.eln files).
 It works around an Emacs bug where async native comp of a package being
 installed does not load "hyperbole-autoloads.el". When building
 Hyperbole without a package manager, 'make eln' now builds it natively.
 *** Natively Compiled Functions as Action Types: Now may be used as
 Hyperbole button action types. See "(hyperbole)Action Types".
 *** Warnings Removed: Almost all byte-compiler and native compiler warnings
 have been eliminated when building the Hyperbole package. None of the
 remaining warnings should affect use of Hyperbole. Most open Hyperbole
 issues have also been resolved.
 *** XEmacs: Removed old XEmacs-compatibility code; everyone should use GNU
 Emacs nowadays.
 ** HYROLO (See "(hyperbole)HyRolo").
 *** Koutline and Markdown File Support: The `hyrolo-file-list' can now
 contain Koutline or Markdown files and will search their outline entries
 just like it does for Org and Emacs outline files. The `markdown-mode' 
 package will be auto-installed if a Markdown file is searched by HyRolo.
 See "(hyperbole)HyRolo Concepts".
 *** hyrolo-file-list Support for File Wildcards, Variables and Dirs:
 The `hyrolo-file-list' variable that HyRolo uses to determine the files
 to search for pattern matches may not contain file patterns itself.
 If you include file wildcards in pathnames and `find-file-wildcards' is
 non-nil (the default), they will be expanded into matching files
 internally by HyRolo. See "(emacs)Wildcards".
 If you include an Environment variable or Emacs Lisp variable with the
 ${var} format in a path, it will be resolved prior to searching the path.
 Variables with values that include multiple paths, e.g. PATH, are resolved
 to the first existing entry that matches. See "(hyperbole)pathname".
 If you include an existing directory (invalid ones are ignored) in your
 hyrolo list, hyrolo will search recursively across all of its files
 that match `hyrolo-file-suffix-regexp'. See `hpath.el#hpath:expand-list'.
 HyRolo will display a detailed error list if any invalid file type is
 included in the `hyrolo-file-list' after expansion. See
 `hyrolo-any-file-type-problem-p'.
 *** *HyRolo* Match Buffer Key Bindings:
 Improved movement keys:
 - {TAB} Move to next search match; works across all supported file types
 - {b} Move backward at the same outline level
 - {f} Move forward at the same outline level
 - {n} Move to the next visible outline heading
 - {p} Move to the previous visible outline heading
 - {u} Move up a heading level
 - {,} Move to the beginning of the current entry
 - {.} Move to the end of the current entry
 - {[} Move to previous @loc> line of previous file header
 - {]} Move to next @loc> line of next file header
 Improved hide/show commands now work when in file headers:
 - {h} Hide the rest of the file header and matches after this line
 - {s} Show all of the file header and matches
 See "(hyperbole)HyRolo Keys".
 *** Koutline Fast Search: Koutlines may now be included in `hyrolo-file-list'
 and individual cells extracted properly with any HyRolo query. Then the
 interactive commands:
 {t} show the top-level (highest matching level) matches
 {o} show an outline of matches
 {s} show/expand current match
 {h} hide current match
 {f/b/n/p} move to another match
 all work on Koutline cells displayed in the match buffer. See
 "(hyperbole)HyRolo Concepts".
 *** Match Buffer Name Change: Changed match buffer name from "*Hyperbole
 Rolo*" to "*HyRolo*".
 *** Auto-Expand Hidden Text: Whenever point moves into a hidden/invisible part
 of the *HyRolo* buffer, the entire tree of entries below that point is
 auto-expanded/shown. Presently, there is no auto-hide functionality.
 You must press {h} to hide entries or an entire file of matches when in
 the file header.
 *** Editing Entries Jumps to Current Position: The {e} command in the *HyRolo*
 match buffer now lets you edit the current point within the entry's source
 buffer, rather than jumping to the start of the entry.
 *** New HyRolo menu items ConsultFind and HelmFind: These appear when you
 independently load the `consult' or `helm-org-rifle' package.
 These menu items then use the related interactive search functions to
 search over the HyRolo file list.
 ConsultFind utilizes `consult-ripgrep' or `consult-grep'. HelmFind uses
 the helm-org-rifle package and searches over .org and .otl files
 exclusively. See "(hyperbole)ConsultFind".
 *** .otl and .outl Suffixed Files: Setup to auto-invoke `outline-mode'.
 *** hyrolo-date-format Empty String: Setting this variable to an empty string
 will disable adding and updating modification dates in HyRolo entries.
 *** hyrolo-hdr-and-entry-regexp: Rename to 'hyrolo-hdr-and-entry-regexp' and
 in 'hyrolo-mode' extend its value to include all multiple trailing whitespace
 chars after the entry delimiter.
 Make variable `hyrolo-entry-regexp' which does not match to file headers.
 ** IMPLICIT BUTTONS (See "(hyperbole)Implicit Buttons").
 *** Action Button Result Display: Action buttons now display in the
 minibuffer the result of evaluating any type of action expression,
 using Lisp readable values.
 *** Compilation and Grep Error Lines: Error lines in the Emacs Regression
 Test buffer, *ert*, are now supported, as well as the 'Compiling
 ', 'Loading ' and 'In ' lines as well as source
 line references from Emacs Lisp native compilation within the
 *Async-native-compile-log* buffer.
 Added support for ERT "Test " lines to jump to the def of the
 symbol and for symbol and pathname references from backtraces in ERT
 output.
 Added jumping to the referenced location from Ruby traceback stack
 messages.
 *** Emacs Regression Test Runs: New 'hyperbole-run-test-definition' implicit
 button type defined in "hypb-ert.el". An Action Key press on the first
 line of an ert test definition (ert-deftest) within the test name,
 evaluates the definition and runs the test; this ensures that the latest
 version is always run. An Assist Key press does likewise but runs the
 test with edebug, stepping through it. This also works for tests defined
 with `ert-deftest-async' from the "ert-async" package. See also "#Action
 Link Types to Run Tests".
 With the optional package, "ert-results", the Smart Keys can be used
 within the ERT results buffer to filter the display and to show the
 documentation for each test. See "(hyperbole)Smart Key - ERT Results
 Mode".
 *** Highlighting of Ibut Names: New `property:ibut-face' used to highlight
 any <[name]> prefixing an implicit button. All hproperty functions now
 support this face as well as the `hproperty:but-face' used for explicit
 buttons.
 *** Info Nodes: Better handling of embedded double quotes and added support
 for HTML " quoting.
 *** Improved # and Embedded Space Path Handling: If a path exists, don't
 treat its # hash marks as section markers, notably for #autosave# files.
 Allow for unquoted filenames with spaces in them in ls listings in shell
 buffers (assume files are tab-delimited).
 *** Ibut/Create Menu Item {C-h h i c}: Creates a named/labeled implicit
 button of any type. Separates the name and the implicit button with
 " - ". See "(hyperbole)menu item, Ibut/Create".
 *** Ibut/Link Menu Item {C-h h i l} - Inserts an ibutton that links to point
 in another window. With a C-u prefix argument, prompts for a name as
 well. See "(hyperbole)menu item, Ibut/Link".
 *** Jump to Lisp Identifier Definition in More Buffers: Lisp identifiers are
 now recognized as programming etags in the *Warnings* byte-compilation
 buffer and in Flymake log and diagnostics buffers.
 *** Path Implicit Buttons: Much improved relative path handling, including
 expanding into executable paths when pathname is prefixed by ! or &,
 and handling info paths outside `Info-directory-list', like
 "man/hyperbole.info". Also, prioritize 'load-path' and 'exec-path' above
 'Info-directory-list' within 'hpath:variables' when expanding pathnames.
 Remove outdated 'Info-directory' from 'hpath:variables' as well.
 Automatically invoke `outline-mode' on files with ".outl" suffix;
 previously, only ".otl" suffixes did this.
 *** Read-only Context Errors: Trigger errors when trying to create an
 implicit button with point on read-only text, read-only Org contexts,
 explicit buttons, or emacs push-buttons.
 *** Relative Info Paths: Info files with relative pathnames outside of the
 `Info-directory-list' now resolve properly, e.g. "man/hyperbole.info".
 *** Table of Contents Sections: Hyperbole now recognizes TOCs in any text
 derived major mode with the text-toc implicit button type. An Action
 Key press on a line with a section name displays the section according
 to the Hyperbole referent display setting, typically leaving the TOC
 untouched in the selected window. This also works in Internet standard
 RFC buffers.
 *** Youtube Snippet Links: Compact Action Buttons to play parts or whole
 Youtube videos and to search for videos by keyword. See
 "hsys-youtube.el".
 ** KOUTLINER (See "(hyperbole)Koutliner").
 *** New Klink Format: Hash character, #, may now be used to separate a 
 pathname from a Koutline cell reference. Both  and
 "koutline-path#cell-ref" work, e.g. "${hyperb:dir}/kotl/EXAMPLE.kotl#2a"
 *** Link to Cell Headings: A cell heading is a string at the beginning of the
 editable portion of a cell that ends with a colon or a newline. Links
 to complete heading names now work: "${hyperb:dir}/kotl/EXAMPLE.kotl#Klinks"
 *** {M-S-} and {M-S-}: Org compatibility - Add tree promote and
 demote commands to these keys (same as existing {M-} and
 {M-} keys). See "(hyperbole)Promoting and Demoting".
 *** {C-c s} Deletes Surrounding Whitespace: When a cell is split, it now deletes
 surrounding whitespace before performing the split.
 *** Star Outline Import Indented Headings: Added support for Emacs/Org
 star-based headings whose stars do not start at the beginning of a line,
 i.e. are indented. See "(hyperbole)Inserting and Importing".
 *** Transpose Lines Down: Add 'kotl-mode:transpose-lines-down' command.
 ** MENUS (See "(hyperbole)Menus").
 *** Minibuffer Menu Changes:
 - Instant Link Creation:
 Ebut/Link - Inserts a named ebutton that links to point in another
 window. See "(hyperbole)menu item, Ebut/Link".
 Gbut/Link - A single name creates a new global link button to point.
 See "(hyperbole)menu item, Gbut/Link".
 Ibut/Link - Inserts an ibutton that links to point in another window.
 With a C-u prefix argument, prompts for a name as well. See
 "(hyperbole)menu item, Ibut/Link".
 - Reload Menus and Smart Keys: Action Key press on top-level menu prefix
 reloads Hyperbole minibuffer menus and Smart Key handlers to reflect
 any recent edits.
 - Multi-line Menus: When a menu line is too long for the screen, it is
 automatically split into multiple lines and aligned by column for
 ease of access.
 *** Move Prefix Arg Number of Items: {M-b} and {M-f} move backward and
 forward by the number of items specified by any given prefix argument,
 as do {TAB} and {Shift-TAB}. See "(hyperbole)minibuffer menu".
 ** PROGRAMMING INTERFACE CHANGES (See "(hyperbole)Embedding Hyperbole").
 *** hui:ebut-link-directly:
 hui:gbut-link-directly:
 hui:ibut-link-directly: Instant direct Hyperbole links.
 *** hypb:mail-address-tld-regexp: Renamed from 'hypb-mail-address-tld-regexp'.
 hypb:mail-address-regexp: Renamed from 'hypb-mail-address-regexp'.
 hypb:mail-address-mode-list: Renamed from 'mail-address-mode-list'.
 Make all of these variables have a common prefix.
 *** (hypb:devdocs-lookup): Install and load devdocs package and then call its
 `devdocs-lookup' function.
 *** (hpath:find): Fix off-by-one (too high) error with relative line numbers.
 A relative line number of 1 means the first line, not the line after the
 first line, i.e. don't move at all, which of course can be left off but
 that way, a line number of 2 goes to the second line, which is more
 natural than moving down 2 lines, as a call to forward-line would. This
 matches up with absolute line numbering, as well.
 *** (hpath:resolve): Add to resolve path variables without doing a path
 expand.
 *** (hsys-org-meta-return): Centralize sharing of {M-RET} key with Org mode.
 *** (hypb:require-package): Add to install a package, if necessary, and
 require its library with the same name.
 *** (hypb:helm-info): Add to require helm package and call helm-info.
 *** (action:help): Allow for Action Button Assist Key :help functions, even
 if the action button type is not a Hyperbole type, i.e. is a regular
 function.
 *** (hproperty:but-clear-all): Clears all colorized Hyperbole button
 faces from the current buffer.
 (hproperty:but-clear): Renamed from hproperty:but-delete.
 *** (hyperbole-update-menus): Can now be called interactively to update
 the Hyperbole menubar and minibuffer menus if any edits are made.
 *** (hyrolo-consult-grep): Interactively grep or ripgrep the HyRolo file
 list, with live in-buffer display using the automatically installed
 consult package.
 *** (hyrolo-helm-org-rifle): Interactively match to HyRolo file list
 entries using the automatically installed helm-org-rifle package.
 (hyrolo-helm-org-rifle-directory): Behaves similarly but searches
 over `org-directory'.
 *** (hyrolo-outline-*): Add hyrolo-specific versions of all
 `outline-minor-mode' commands to support HyRolo searches across multiple
 file types.
 *** (hyrolo-funcall-match, hyrolo-map-matches): Add these functions to
 wrap function calls in the HyRolo display matches buffer that require the
 original major mode of the location, e.g. outline commands.
 *** (hyrolo-map-logic): Add doc for last arg, whole-buffer-flag.
 *** (hyrolo-outline-minor-mode): Define and enable in `hyrolo-mode'.
 *** (hyrolo-grep-file): Remove `backward-search-limit' as may miss prior
 entry starting positions.
 *** (hyrolo-add-match): Remove first arg, `hyrolo-matches-buffer' and
 use global `hyrolo-display-buffer' instead.
 *** (hyrolo-auto-mode-alist): Add new variable to control major modes used
 by files read in for HyRolo searches.
 (hypb:major-mode-from-file-name): Rename to
 `hyrolo-major-mode-from-file-name' and move to "hyrolo.el". Prefix
 `auto-mode-alist' values with those in `hyrolo-auto-mode-alist'.
 (hyrolo-logic): Change call from `hyrolo-find-file' to
 `hyrolo-find-file-noselect' to enable use of `hyrolo-auto-mode-alist'.
 *** hsys-org-roam.el: This library supports interactively grepping over
 org-roam files with live in-buffer display. It uses the automatically
 installed consult package when `hsys-org-roam-consult-grep' is invoked.
 *** (hsys-org-consult-grep): Add to search `org-directory' using consult
 grep.
 *** (hattr:list): Now also returns the attributes of an Emacs push-button
 using `hattr:emacs-button-attributes', as recognized by
 `hattr:emacs-button-is-p'.
 *** (hui:ibut-create, ibut:create, ibut:delimit, ibut:operate):
 Add interactive, named/labeled implicit button creation. For
 `ibut:create', improve doc and add but-sym arg which can supply all
 other arguments in its properties.
 *** (ibut:label-key-match): Return filtered list of ibut labels.
 *** (ibut:label-sort-instances): Sort label key instance numbers.
 *** (ibut:label-instances-regexp): Rename to `ibut:name-instances-regexp'.
 (ibut:label-regexp): Rename to `ibut:name-regexp'.
 *** (ebut:label-start, ebut:label-end): Rename from `ebut:start' and
 `ebut:end'.
 *** (hpath:delimited-possible-path): Add support for HTML "
 quoting and embedded double quotes.
 *** (hargs:read): Add support for 'i' interactive spec (ignored arg).
 *** (set:replace-key-value): Rename from `set:replace'.
 (set:replace): Now replaces a non-keyed old-value with a new value.
 (set:replace-member): Added this new function to replace an existing
 set member or to add a new one if no matching existing member.
 (set:members): Now keeps members in stable order; previously returned
 in reverse order.
 *** (hycontrol-framemove-*): Add hycontrol-framemove-direction,
 hycontrol-framemove-up, hycontrol-framemove-left,
 hycontrol-framemove-right, and hycontrol-framemove-down to move among
 active frames.
 *** (kimport:initialize): Add optional `erase-flag' arg to erase buffer
 before importing elements. And use in all kimport commands.
 *** (hhist:pop): Renamed from `hhist:remove'.
 *** (hypb:activate-interaction-log-mode): Add to configure and enable the
 interaction-log package for use with Hyperbole. It displays a
 font-locked log of Emacs keys, commands and Hyperbole minibuffer menu
 items executed. Useful in demo videos or presentations.
 *** (hui:menu-exit-hyperbole): Renamed from `hui:hypb-exit'.
 *** (hui:menu-choose): Renamed from `hui:menu-select'.
 *** (hyperbole-web-search): Added optional `return-search-expr-flag' to
 return search expression rather than doing the search, to build up more
 involved search commands.
 *** (hypb:replace-match-string): Removed this unused function.
 *** (hyrolo-verify, hyrolo-isearch, hyrolo-next-match,
 hyrolo-previous-match, hyrolo-isearch-for-regexp): Added support for
 use in main HyRolo file, not just the match buffer.
 *** (hyrolo-find-file-noselect-function): Added so can customize low-level
 function used to read in each file searched by HyRolo.
 *** (hyrolo-previous-match): Changed so this can be used in a predicate
 when a match is found.
 *** (hyrolo-grep): Added support for `outline-regexp' and `outline-level'
 variables from multiple file types.
 (hyrolo-mode-outline-level): Added and used in `hyrolo-mode'.
 (hyrolo-mode): Set the local value of `outline-level' to
 `hyrolo-mode-outline-level' and define that function to support star
 outlines and Koutlines. Also, made `hyrolo-hdr-and-entry-regexp' local and set
 it to its default value, after which it may be modified.
 *** (hyrolo-fgrep-file, hyrolo-grep-file, hyrolo-fgrep, hyrolo-grep,
 hyrolo-word): Added optional `headline-only' argument to limit searches
 to headlines.
 *** (hyrolo-next-regexp-match, hyrolo-next-match-function): Added to allow
 for different hyrolo entry matching functions.
 *** (hyrolo-next-visible-heading): Rename to `hyrolo-outline-next-visible-heading'.
 *** (ibtype:test-p, ibtype:act): Add these to mirror actype functions.
 (ibtype:elisp-symbol): Add alias similar to existing actype one. So
 that (ibtype:act ) executes the ibtype action if the
 current buffer context supports it.
 *** (ibut:at-p): Fixed to return nil if name and lbl-key are both nil. Also
 added support for  and {} ibut delimiters.
 *** (smart-push-button): Added and referenced in `hkey-help' to trigger
 push-button-specific help output.
 *** (smart-emacs-lisp-mode-p ,smart-lisp-mode-p): Change to use `derived-mode-p'
 rather than checking for 'major-mode' matches directly.
 (smart-emacs-lisp-mode-p): Add optional `skip-identifier-flag'.
 *** (hpath:to-markup-anchor, hpath:to-line): Updated to find matches
 outside narrowed area.
 *** (hyperb:path-being-loaded): Removed; no longer used.
 *** (hpath:shorten): Added and used in 'ibut:insert-text'.
 *** (hui:link-possible-types): When reading a dir or file and not on such a
 string, use the 'default-directory' or 'buffer-file-name'. Previously
 just returned nil in such circumstances.
 *** (gbut:save-buffer): Added to save global button file after edits.
 *** (kotl-mode:goto-cell-ref): Added to display cell refs after a kotl
 mode buffer has already been read in.
 *** (kotl-mode:goto-heading): Added to go to a string heading at the
 beginning of a cell. Must end with a colon or a newline.
 *** (hui:link-possible-types): At end of any line in a dired buffer,
 return (link-to-directory default-directory), so when using any
 link-directly command, always have a way to link to the dired buffer
 itself.
 *** (hyrolo-expand-list): Added to expand `hyrolo-file-list', filtering
 to matches of `hyrolo-file-suffix-regexp'. See documentation for
 `hpath:expand-list' for the kinds of expansions performed.
 *** (hpath:expand-list): Added to expand paths, filtering final list
 to files with match-regexp. Paths expansion substitutes up to one
 ${variable} per path, expands file wildcards when 'find-file-wildcards'
 is non-nil (the default), and recursively walks directory trees for files
 with match-regexp.
 *** (hyrolo-map-level, hyrolo-sort-level): Remove 'hyrolo-file' arg
 since had already been using current buffer instead.
 *** (hpath:file-position-to-line-and-column): Add to translate
 character positions to an implicit link to line and column.
 *** (hyrolo-next-match-function, hyrolo-next-regexp-match): Change to return
 position of the beginning of the match rather than the end.
 *** (hyrolo-grep-file): Handle when no entry delimiters, then use
 the current line as the entry.
 *** (hyrolo-name-at): Rename to 'hyrolo-name-at-p'; change return value
 to a cons of ( . ). If no entry delimiters,
 use the current, non-empty line as  and add a 'hyrolo-line-entry
 text property to it.
 *** (hyrolo-to): Add support for non-delimited single line entries.
 *** (hyrolo-helm-org-rifle): Filter out any non-file buffers.
 *** (hpath:expand, hpath:expand-list): Add optional exists-flag to return
 nil if expanded path does not exist.
 *** (hyrolo--expanded-file-list, hyrolo-set-file-list,
 hyrolo-file-list-changed): Finish support for recursively searching dirs
 and expanding file wildcards in 'hyrolo-file-list' by adding the above
 and caching the expanded list in 'hyrolo--expanded-file-list'.
 *** (hyrolo-edit): Improve 'completing-read' prompt.
 *** (rolo-display-buffer, rolo-file-list, rolo-entry-regexp): Remove all of
 these variables that have been obsolete since V6. Use hyrolo- prefix instead.
 *** (hyrolo-initialize-file-list): Completely remove this function, obsolete since
 V8.0.1. Use `hyrolo--initialize-file-list' instead.
 *** (defgroup 'hyperbole-hyrolo): Change from 'hyperbole and 'hyperbole-hyrolo.
 *** (hyrolo-get-file-list): Add and change refs to `hyrolo-file-list' to use
 this instead, so can get the expanded version of the file list.
 *** (hyrolo-expand-path-list): Add to expand a list of paths containing env or lisp
 variables, directories and file patterns with wildcards into a final list of files.
 *** (hpath:expand-list): Add to recursively expand matching files within a list of
 directories.
 *** (hypb:major-mode-from-file-name): Add for initial use in "hyrolo.el".
 *** (hui--ibut-link-directly-to-dired): Handle alternative dired formats with text
 after the last colon on the first
 *** (hywconfig-add-by-name, hywconfig-delete-by-name, hywconfig-restore-by-name): 
 Change all these to return a boolean value based on whether the operation
 succeeds or not.
 *** (hywconfig-set-names): Replace with `hywconfig-named-set-entries'.
 (hywconfig-get-names): Replace with 'hywconfig-named-get-names'.
 *** (hywconfig-named-get-entries, hywconfig-named-put, hywconfig-named-get): Add.
 *** (hbut:actype, ibut:type): Add for Hyperbole API use.
 (ibut:is-type-p): Add to give both an ibut and a type for comparison and API use.
 *** Add "hsys-xref.el". Rename all Hyperbole defined 'xref-' functions to 'hsys-xref-'
 and move here. The xref function, 'xref--item-at-point' is redefined to handle
 the beginning of buffer.
 *** (ibut:act-label, ebut:act-label): Rename `ebut:act' and `ibut:act' since they take
 a label as arg.
 (ebut:act, ibut:act): Add new act functions taking an hbut as an arg.
 (hbut:act-label): Add to match same func for ebuts and ibuts.
 ** ORG MODE INTEGRATION (See "(hyperbole)Smart Key - Org Mode").
 *** Automatic Fix of Mixed Org Versions: Loading Hyperbole (via its
 `hyperb:init' function) automatically detects and resolves the
 hard-to-fix problem when some older builtin Org libraries are loaded
 before a newer version of the Org package is loaded. The fix utilizes
 libraries exclusively from the newer Org package. See the doc for
 `hsys-org-fix-version'.
 *** Org Links Outside Org Buffers: The `org-link' actype now opens links
 found inside and outside of Org buffers.
 *** Interactive Org Directory Consult Grep: {M-x hsys-org-consult-grep
 RET} interactively greps your `org-directory' files with live in-buffer
 display as you move through matching lines.
 *** Interactive Org-Roam DB Consult Grep: {M-x hsys-org-roam-consult-grep
 RET} interactively greps org-roam files with live in-buffer display as
 you move through matching lines. It uses the automatically installed
 consult-org-roam package when invoked. See
 "(hyperbole)hsys-org-roam-consult-grep".
 *** Org and Org Roam IDs: New `org-id' implicit button type and
 `link-to-org-id-marker' action type that jump to the referent of an Org
 ID or Org Roam ID at point. If a marker does not yet exist, there is
 the `link-to-org-id' action type. An Action Key drag across windows
 ending at an Org ID will create a link button with this last action
 type, which will jump to the ID's definition regardless of whether the
 link was to the definition or a reference. See "(hyperbole) ibtypes
 org-id".
 *** Org Code Blocks: On a header :dir directory, the Action Key displays
 that directory in dired. The Assist Key anywhere in the header removes
 any results for the code block. Smart Keys work the same when on a
 #+RESULTS header as when on a code source header. Smart Key tag
 lookup now works in Org code blocks. Smart Keys on Org internal
 targets now work just as they do on radio button targets.
 *** HyRolo Integration with Org 9.7 and Up: Support "org-fold.el" and other
 newer features fo Org mode.
 *** Todo Cycling: An Action Key press on an Org mode todo state keyword,
 cycles to the next state. An Assist Key press in the same place cycles
 to the next set of states, if any.
 *** Bobp Hyperbole Doc File Cycling: Allow for org global cycling at the start
 of a buffer on a non-heading line within Hyperbole Doc/ files when displayed
 from Hyperbole menu items.
 *** {C-c /}: The Hyperbole {C-c /} web search binding defers to the org-mode
 binding, `org-show-todo-tree', when in Org mode, but uses the improved
 Hyperbole command version, `hsys-org-todo-occur', which allows filtering
 to specific todo states.
 ** TEST CASES (See "${hyperb:dir}/test").
 *** Hyperbole Automated Testing: Over 400 automated test cases. Simply run
 'make test-all' or 'make test' from the command-line when in the
 Hyperbole source directory and you should see all tests pass. If any
 fail, you can press the Action Key to see the source of the failure.
 Full testing is supported under POSIX systems only. See "Makefile" and
 "test/MANIFEST".
 *** The Hyperbole team's CI/CD process automatically runs all test cases
 against Emacs major versions 27, 28 and 29 and the current master
 branch tip whenever a Hyperbole code change is checked in against git.
 *** ERT Test Case Symbols Jump to Definition: In Elisp and Lisp interaction
 buffers, the Action Key jumps to the definition of any such symbol while
 the Assist Key displays the symbol's documentation. This requires that
 a TAGS table be built in the project root directory with the following
 etags command-line option:
 etags --regex={lisp}'/(ert-deftest[ \t]+\([^ \t\n\r\f()]+\)/' 
 For the Hyperbole source code itself, you can do this via 'make tags' from
 within the Hyperbole source directory, `hyperb:dir'.
 *** Run Hyperbole Tests via Make: Use the 'test' target and provide a pattern
 of test names to match like so:
 make test test=hyrolo
 to run just the HyRolo associated tests.
 To enable, full backtraces and not truncated ones, add 'FULL_BT=' at the end:
 make test test=hyrolo FULL_BT=
 *** QA: Many quality improvements across Hyperbole and integration with
 Emacs updates with backward compatibility from Emacs 27 through Emacs
 29 releases.
 ** WINDOW GRIDS (See "(hyperbole)grid of windows").
 *** Grid by File Pattern: Fixed so prompt for a string pattern rather than
 a file name and forced use of full pathnames to avoid improper relative
 path resolution.
 Updated to use prefix arg as grid size or to autosize when not given or
 given an invalid value.
 See "(hyperbole)hycontrol-windows-grid-by-file-pattern".
 ===========================================================================
 * V8.0.0
 ===========================================================================
 ** HYPERBOLE SYSTEM
 *** Installation: Hyperbole package installation options are greatly
 expanded. Stable or in-development branches may be installed with the
 Emacs package manager. The Straight package manager may be used to
 keep up with git-based development and submit pull requests. And
 stable and in-development tar balls are available for manual
 installation. See "(hyperbole)Installation".
 *** Global Minor Mode: Hyperbole is now a global minor mode that can be
 toggled with {M-x hyperbole-mode RET}, meaning all of its key bindings
 can easily be enabled or disabled whenever desired. Your init file
 needs to have (hyperbole-mode 1) in it instead of (require 'hyperbole)
 or Hyperbole will not be enabled upon startup. See "(hyperbole)Usage".
 Modeline Indicator: In the modeline where minor modes are shown, "Hypb"
 now appears whenever Hyperbole is active.
 Hooks: When hyperbole-mode is enabled, hyperbole-mode-hook and
 hyperbole-mode-on-hook are run. When hyperbole-mode is disabled,
 hyperbole-mode-hook and hyperbole-mode-off-hook are run.
 Lexical Binding: All code is now largely lexically bound, improving
 quality and debugability.
 ** ORG MODE (See "hui-mouse.el#defun smart-org").
 *** M-RET: Reworked M-RET interface so can control how much or little of
 Hyperbole works in Org mode when Hyperbole minor mode is enabled. See
 "(hyperbole)enable org-mode support" and "hsys-org.el".
 *** hsys-org-enable-smart-keys: New customization to replace
 `inhibit-hsys-org'. This applies only in Org major/minor modes when
 hyperbole-mode is active. t means enable Smart Key support everywhere.
 The symbol, buttons, is the default; it means the Smart Keys are active
 only when point is within a Hyperbole button. A nil value means no
 Smart Key support so {M-RET} behaves just as it does normally in Org
 mode. See "(hyperbole)Org-mode". Use {C-h h c o} to customize this
 setting.
 This table summarizes the operation:
 |--------------+-------------------+------------------+----------+------------------|
 | Set To | Smart Key Context | Hyperbole Button | Org Link | Fallback Command |
 |--------------+-------------------+------------------+----------+------------------|
 | buttons | Ignore | Activate | Activate | org-meta-return |
 | nil | Ignore | Ignore | Ignore | org-meta-return |
 | t | Activate | Activate | Activate | None |
 |--------------+-------------------+------------------+----------+------------------|
 ** EASILY CREATE YOUR OWN BUTTON TYPES
 *** Simple Action Link Button Type Creation: `defal' is a new, easy-to-use
 construct that generates new action button types from a type name and a
 single simple format expression, allowing non-programmers to create
 their own implicit action button link types that execute key series,
 display URLs, display the contents of pathnames or invoke functions.
 See "(hyperbole)Action Button Link Types" or the "DEMO#Defining New
 Action Button Types" section.
 *** Easy Implicit Link Button Type Creation: `defil' is a new construct for
 those familiar with regular expressions but not much Emacs Lisp. This
 creates more flexible implicit button types than `defal' where the
 delimiters and text substitution can be specified with regular
 expressions. Actions are limited to executing key series, displaying
 URLs, displaying the contents of pathnames or invoking functions. See
 "(hyperbole)Implicit Button Link Types".
 Elisp programmers should use the existing `defib' macro for full
 flexibility in implicit button type creation. See "hibtypes.el" for
 examples and "(hyperbole)Programmatic Implicit Button Types" for
 documentation.
 ** TEST CASES
 *** Hyperbole Automated Testing: Extensive quality improvements throughout
 Hyperbole thanks in part to over 230 test cases now included in the
 test/ subdirectory. Simply run 'make test-all' or 'make test' from the
 command-line when in the Hyperbole source directory and you should see
 all tests pass. If any fail, you can press the Action Key to see the
 source of the failure. Full testing is supported under POSIX systems
 only. See "Makefile" and "test/MANIFEST".
 *** Action Link Types to Run Tests: The file "hypb-ert.el" contains two
 action link types:
 hyperbole-run-test - run a single Hyperbole test by name
 hyperbole-run-tests - run one more tests matching a pattern
 Example uses:
 Run the test hbut-defal-url
 
 Run the tests specified by the test selector hbut-defal
 
 Run all tests
 
 *** Installation Testing: install-test/local-install-test.sh automatically
 installs Hyperbole for testing from one or more of its releases or
 development branches. See "Makefile" and "install-test/MANIFEST".
 ** HYROLO (See "(hyperbole)HyRolo").
 *** Faster searching within HyRolo match buffer: After performing a HyRolo
 search with point in the match buffer, if you want different results,
 you can quickly do a new regular expression HyRolo search with {r} or a
 string/logical search with {C-u r}. This key had moved to previous
 matches but that is already bound to {Shift-TAB} and {M-TAB}.
 *** Auto-Expansion of Entries: If an entry is collapsed/hidden, moving to
 any hidden part auto-expands it and then re-collapses it when point is
 moved to another entry (just like isearch). A side-effect of this is
 that the {h} hide entry subtree command now moves to the beginning of
 the entry.
 *** Logical Regular Expression Searches: Expanded logical searches to allow
 for regexp-based searches using logical operations prefixed with 'r-',
 so a query might be: (r-and regex1 (r-not regex2)).
 *** Separate Last String and Regular Expression Searches: Removed conflict
 between different types of searches when choosing to search again for a
 prior match.
 *** hyrolo-find-file: New command that selects and edits a file in
 `hyrolo-file-list', defaulting to the first listed file when not given
 a prefix arg. Available in the minibuffer menu as Rolo/File and the
 pulldown menu as Rolo/Find-HyRolo-File.
 *** Sorting Entries Rewritten: {C-h h r o} re-ordering HyRolo entries has
 been rewritten for compatibility and improved debugging with the latest
 Emacs releases.
 *** hyrolo-highlight-face: Now uses the Emacs 'match' face by default.
 *** Under MS Windows, the default HyRolo file is now "~/.rolo.otl" like all
 other operating systems, instead of "~/_rolo.otl". Any older file name
 will be relocated to the newer name.
 ** KOUTLINER (See "(hyperbole)Koutliner").
 *** Export Koutlines to Collapsible Web Pages: {C-h h k f d} or {M-x
 kexport:display RET} command creates and displays a web-based
 expandable/collapsible outline from the Koutline in the current buffer.
 See "(hyperbole)Exporting" and the new Koutliner Format submenu.
 *** Org File Importation: Org files may now be imported to a Koutline using
 {M-x kimport:file RET}.
 *** Org Table Support: Org table editing now automatically works in the
 Koutliner via Org table minor mode. Use {M-x orgtbl-mode RET} to
 toggle this on and off. A press of the Action Key on a | symbol, also
 toggles this minor mode on or off. See "(Org)Tables" for details. Use
 a prefix arg with {TAB} to promote/demote Koutline trees when in a
 table since {TAB} moves between fields within a table.
 *** New Tree Movement Commands: Like Org mode, {[M-down]} and {[M-up]} move
 the current tree past or before other trees at the same level. With a
 prefix argument, move past that many trees.
 *** New Tree Promotion/Demotion Keys: Tree promotion and demotion keys now
 match many of the defaults in Org mode and Outline mode, plus some
 easier to type ones. The tables below summarize which keys work
 whether inside an Org table or outside. See "(hyperbole)Promoting and
 Demoting".
 |----------------------------+-----------------------------|
 | Promotion Inside Org Table | Demotion Inside Org Table |
 |----------------------------+-----------------------------|
 | M-0 Shift-TAB or M-0 M-TAB | M-0 TAB |
 | C-c C-, | C-c C-. |
 | C-c C-< | C-c C-> |
 |----------------------------+-----------------------------|
 |-----------------------------+----------------------------|
 | Promotion Outside Org Table | Demotion Outside Org Table |
 |-----------------------------+----------------------------|
 | Shift-TAB or M-TAB | TAB |
 | M-left | M-right |
 | C-c C-, | C-c C-. |
 | C-c C-< | C-c C-> |
 |-----------------------------+----------------------------|
 *** New Mail Tree Key Binding: The `kotl-mode:mail-tree' command that
 extracts the current view of a Koutline in text-only format and creates
 an outgoing email message with it, has moved from {C-c @} to {C-c C-@}
 to prevent conflict with the global hycontrol-window-grid command bound
 to {C-c @}.
 *** New Copy Command: The new command, `kotl-mode:copy-tree-or-region-to-buffer',
 bound to {C-c M-c} copies a Koutline tree or the active region to a
 specified buffer. Prompts dictate whether invisible text is included
 or not. This allows copying parts of Koutlines directly into other
 buffers without having to copy to a mail/message buffer first.
 *** Klink Copy: When `transient-mark-mode' is enabled and there is no active region:
 within a link to a Koutline cell (klink), {M-w} copies the klink;
 then {C-y} yanks it into any buffer you desire.
 {M-w} outside of a klink instead copies a reference to the current
 Koutline cell.
 {C-x r s} prompts for an Emacs register and saves either the current
 klink or the current cell reference to the register; {C-x r i} with
 the same register then inserts at point the saved Koutline reference.
 The new commands that you can bind to your own keys for copying klink
 references to the current cell to the kill ring and to registers are:
 kotl-mode:copy-absolute-klink-to-kill-ring
 kotl-mode:copy-relative-klink-to-kill-ring
 kotl-mode:copy-absolute-klink-to-register
 kotl-mode:copy-relative-klink-to-register
 *** Klinks Ignored Outside Comments in Programming Language Modes: In
 previous Hyperbole versions, this was true for C-based language modes.
 Now it is true for any programming mode descended from `prog-mode'.
 *** Prevent Movement Outside Editable Cell Bounds: Add
 kotl-mode:pre-self-insert-command as a pre-command-hook to prevent
 Koutline editing with point in an invalid location, after a
 mouse-set-point outside of editable bounds.
 *** {C-h h k e} (kotl-mode:example): Update to allow for an optional
 directory or absolute file path. Prompt for the path when interactive.
 Given a prefix argument, archive any existing file and start with a
 fresh EXAMPLE.kotl file for editing. Programmatically, give a 2nd arg
 of t to force archiving of any existing file and starting with a fresh
 EXAMPLE.kotl file.
 *** Koutlines have a hidden top-level root cell 0 that allows referring to
 the whole outline as a tree. Now attributes of this cell can be set,
 retrieved or removed like any other cell.
 {C-c h} prompts for a kcell id and displays its attributes. {C-u C-c
 h} prompts for a kcell id and displays the attributes for it and its
 subtree; use 0 as the kcell id to see attributes for all visible cells
 in the outline.
 {C-c C-i} sets an attribute of the cell at point.
 {C-u C-c C-i} removes an attribute of the cell at point.
 {C-0 C-c C-i} sets an attribute of the invisible 0 root cell.
 {C--1 C-c C-i} removes an attribute of the invisible 0 root cell.
 *** Modes to Ignore Klinks: C-style languages use  that can be
 mistaken for klinks. New customizations 'klink:ignore-modes' and
 'klink:c-style-modes' set the modes where klink matches are ignored.
 *** Uncommented Klinks in Lisp Interaction and Markup Buffers: Klinks are
 now recognized in the *scratch* buffer and 'hui-select-markup-mode'
 buffers without the need to be within comments. This is more natural
 as there is no expectation that everything in the *scratch* buffer is
 valid Lisp.
 ** MENUS
 *** Minibuffer Menu Changes:
 - Items Activated by First Capital Letter: Used to be by the first
 letter. This allows more flexibility in naming, e.g. where two
 items start with the same first letter.
 - {X} exits Hyperbole mode: This disables the Hyperbole minor mode
 completely and exits from the menu. {C-h h} re-enables the global
 minor mode and display the top-level Hyperbole menu.
 - Menu Selection a Single Command: Set 'this-command' and command
 keys to be the full key sequence for a Hyperbole minibuffer menu
 command. This ensures a single command appears in history for
 clean logging of menu key sequences.
 *** Minibuffer and Pulldown Menu Changes:
 - Find/Web/Jump: Use the Emacs webjump library to select a URL by
 name and jump to it.
 - Koutliner Formatting Menus: Full set of commands to import text and
 outline files to Koutlines and to export Koutlines to HTML for web
 viewing. See "(hyperbole)Inserting and Importing" and
 "(hyperbole)Exporting".
 - Button Modify Commands Removed: Use the Edit commands instead.
 This applies to the pull-down menu as well.
 ** SMART (ACTION AND ASSIST) KEYS (See "(hyperbole)Smart Keys").
 *** Explicit buttons may be created in any kind of temporary buffer without
 an attached file, similar to what already existed for mail message
 buffers.
 *** 'ls' and 'grep' Directory Changes: 'ls' listings are now recognized
 properly, prepending the preceding directory to each entry for viewing.
 Similarly, if a 'cd' or 'pushd' command is issued prior to a 'grep -n'
 or 'ripgrep' command, Hyperbole will prepend that directory to the grep
 output before jumping to the resultant path.
 *** Git Log Grep: New commands, 'hypb:fgrep-git-log' and 'hypb:grep-git-log',
 allow f/grepping over repo changesets and listing associated commit log
 messages. The Action Key on any resulting log entry displays the commit
 changeset.
 *** Pathname Implicit Buttons: Much improved pathname handling including
 multiple variables per path, embedded . or .. within paths, better
 recognition of semicolon separated pathnames in Windows PATH variable.
 Variable substitutions are now made with fixed case, so that the case
 of a value with both upper and lower case characters is never changed,
 for example a value of ${HOME}.
 Generalized Anchored Pathnames: "pathname#anchor" now works in
 programming modes as well as text and outlining modes where anchors are
 prefixed with the comment character in each mode or a # symbol.
 PATH-style Variable Support: An Action Key press on a defined PATH-style
 variable name, e.g. MANPATH, will prompt with completion for one of the
 paths and will then display that. If it is the colon or semicolon-
 separated string of paths value from a PATH-style variable, the path at
 point is displayed; empty paths, e.g. :: represents the current directory,
 ’.’. Must have at least four paths within the variable value for this
 to work.
 file:// URLs are now resolved properly.
 *** Any Lisp or environment variable that stores a directory or set of
 directories may be prepended to any "grep -n" output line with the form
 "${var-name}/" and the Action Key will recognize the directory and
 display the appropriate line.
 *** Treat 'kbd' Strings as Key Series Buttons: An Action Key press within
 the string of (kbd "string") issues the keys in string as if they were
 pressed individually, i.e. the same as the key series, {string}.
 *** Mail Address Activation Everywhere: Email addresses act as implicit
 buttons in major modes derived from `hypb:mail-address-mode-list'. If
 you set that to nil, however, they will be recognized in all major
 modes.
 *** Magit Mode Support: Just click or press the Action Key somewhere and it
 will typically display what you want. Extensive Action Key support in
 Magit modes for cycling through display views and displaying items.
 Action Mouse clicks on the modeline cycles display of commits/diffs in
 a buffer. In Magit Log and Blame listing modes, the Action Key
 displays the associated commit or file line. The Action Key also
 handles single line log entries that begin with the word 'commit' ,
 displaying their commits even from shell and compilation buffers.
 *** Debugger Source: In Python tracebacks, may be on a line just below the
 source reference line so if not on a Hyperbole button, move back a line
 before checking.
 *** Todotxt Mode Support: Smart key support for the todotxt mode
 https://github.com/rpdillon/todotxt.el.
 *** UNIX Shell Errors: Jump to associated source line from a shell error of
 the form: ": line : ".
 *** Internet RFC Links (e.g. RFC-822): Change to using http to retrieve
 RFCs instead of ftp since this is disabled in many environments.
 Always display with Emacs' web browser rather than externally.
 *** Implicit Button Types Reprioritization: Modified "hibtypes.el" so if
 evaluate: (symset:clear 'ibtypes) and then reload hibtypes.{el,elc},
 the priority order of all implicit button types is reset.
 ** CUSTOMIZATION
 *** Customizable Display Program File Mappings:
 The variables:
 hpath:internal-display-alist
 hpath:external-display-alist-macos
 hpath:external-display-alist-mswindows
 hpath:external-display-alist-x)
 are all customizable and their default values utilize the per operating
 system generic 'open' commands based on file suffix associations (for
 file types not handled by Emacs).
 The new customizable variable, `hpath:external-file-suffixes', holds a
 regular expression of operating system independent file suffixes to
 open outside Emacs with the Action Key when not handled by
 `hpath:native-image-suffixes'.
 ** PROGRAMMING
 *** With the Hyperbole menu Cust/Debug-Toggle enabled, the messages printed
 for each Smart Key press now include the action type and its arguments
 for improved debugging.
 *** Edebuggable Hyperbole Types: `defib' and `defact' type definitions are
 now interactively debuggable via edebug-defun {C-M-x}.
 *** ebut:program: Programmatically create an explicit Hyperbole button at
 point from LABEL, ACTYPE (action type), and optional ARGS for actype.
 *** gbut:ebut-program: Programmatically add global explicit buttons at the
 end of the personal button file.
 *** kbd-key implicit button type: Interactive creation now allows for a
 full key series, not just a single key binding.
 *** kbd-key:is-p: Added this new predicate to test whether point is within
 a brace-delimited key series.
 *** kbd-key:execute: Added to programmatically or interactively execute a
 non-normalized key series stored in a string.
 *** hypb:def-to-buffer: Quick copying of program definitions and insertion
 at the start of another buffer. Can be bound and used in key series.
 *** smart-lisp-find-tag: New function that automatically finds tags tables
 and jumps to Emacs Lisp definitions. It can be used in any type of
 file as an action button, e.g. .
 *** ibut:at-p: Trigger an error if any implicit button type predicate
 permanently moves point to simplify debugging such predicates.
 *** hypb:string-count-matches: Count regexp matches in a string.
 ** ACE WINDOW PACKAGE INTEGRATION - fast window and buffer switching
 *** After installing the ace-window package and loading Hyperbole, execute
 (hkey-ace-window-setup "\M-o") to enable the following capabilities:
 *** Fast Window Links: The hkey-window-link command bound to {M-o w}
 rapidly creates a link button at point in the selected window, linking
 to point in the window chosen when prompted. See "DEMO2#Displaying
 File and Buffer Items and Moving Buffers".
 *** Throw A Region Elsewhere Within the Same Buffer: {M-o t }
 when used with a selected region can now throw to the source buffer as
 long as point is outside the selected region in the target window.
 ===========================================================================
 * V7.1.3
 ===========================================================================
 SMART (ACTION AND ASSIST) KEYS
 - Global Org Link Activation: The Action Key now activates Org links in
 non-Org buffers if 'inhibit-hsys-org' is nil (the default). The Assist
 Key shows help.
 - Org Agenda Item Display: The Action Key displays the Org node
 associated with Agenda items such as TODOs in another window. The
 Assist Key shows help.
 - Org Mode: Raised to near top priority in implicit button types so that
 pathnames, URLs, etc. within Org links are handled by Org rather than
 Hyperbole.
 - Smart Dired Sidebar: Smart Key support for the dired-sidebar
 package. See "(hyperbole)Smart Key - Dired Sidebar Mode".
 - Helm Mode: The Smart Keys do all sorts of things in helm completion buffers
 and the associated minibuffer. See "(hyperbole)Smart Key - Helm Mode".
 - Magit Mode: Action Key expands/collapses like {TAB} and Assist Key
 jumps to items like {RET}. See "(hyperbole)Smart Key - Magit Mode".
 BUTTON TYPES
 - {Key Series} Button Support for Helm and Counsel: Key series buttons
 with M-x commands now work properly when counsel-mode or helm-mode are
 enabled and M-x is rebound.
 - Markdown In-file Links: With point on the link title, in-file links are
 now activated properly (previously point had to be on the link itself).
 - Git#directory Buttons: New flag, hibtypes-git-use-magit-flag, which if
 set to t and Magit is available, then when activating a git directory
 button, such as git#/hyperbole, use Magit rather than Dired.
 - Explicit Buttons Work Immediately: Previously you had to save the buffer
 in which you created an explicit button before it would work. Now they
 work immediately after creation.
 DOCUMENTATION
 - Helm Mode: Added Hyperbole Manual section, "Smart Key - Helm Mode"
 that works on helm completions. See "(hyperbole)Smart Key -
 Helm Mode".
 - Hyperbole Slides: Slides used in a talk by the author on the history
 and capabilities of Hyperbole, see "HY-TALK/HY-TALK.org".
 - Magit Mode: Added Hyperbole Manual section, "Smart Key - Magit Mode"
 that expands/collapses/jumps to Magit items. See "(hyperbole)Smart Key -
 Magit Mode".
 ===========================================================================
 * V7.1.2
 ===========================================================================
 BUTTON TYPES
 - Link Creation via Drag: Automatic link referent detection has been
 expanded. You can now drag the Smart Mouse Key across windows or use
 'hkey-operate' to create an explicit link button to an Emacs
 Bookmark or to a Texinfo Node.
 - link-to-texinfo-node Action Type: Now takes a first file parameter,
 rather than working only on the current buffer.
 KOUTLINER
 - Visual Command Support: Use of these additional Emacs commands:
 beginning-of-visual-line, end-of-visual-line, and kill-visual-line.
 MENUS
 - Global Key Bindings for Hyperbole Menu Items: Use
 {M-x hyperbole-set-key RET} to create a shorter global key binding
 to any Hyperbole minibuffer item.
 - Gbut/Create: When invoked with a prefix argument, will create a
 global implicit button rather than an explicit button. Simple provide
 a name/label and the text of the implicit button including delimiters.
 - Gbut/Delete: Added to delete explicit or implicit global buttons.
 - Gbut/Modify: The name/label and the text (and thus the action) of global
 implicit buttons may now be modified. Hyperbole automatically determines
 whether a button is explicit or implicit from the button name selected.
 MOUSE
 - Click Emacs Buttons with Left Mouse Button: When using mouse-1
 to follow Emacs buttons/links, Emacs actually uses the binding
 of mouse-2. With unshifted Hyperbole mouse keys, this mouse-2
 binding is incompatible as it is the Action Key. This release
 resolves this problem and allows either mouse-1 or mouse-2 to be
 used to click on native Emacs buttons.
 - Drag and Drop Region with Left Mouse Button: When
 'mouse-drag-and-drop-region' is non-nil and a region is active,
 Hyperbole now properly supports using mouse-1 to visually drag from
 within the region and drop the text somewhere else. Then click the
 left mouse button again to de-activate the dropped region before
 typing.
 ===========================================================================
 * V7.1.1
 ===========================================================================
 DEMO
 - Global Buttons: Added a new example of a labeled global implicit button
 displaying a todo file maintained in Koutliner format. See
 "DEMO#Global Buttons".
 - Within one Emacs session, invoking the DEMO with {C-h h d d} now leaves
 point where it was so you can continue working your way through it.
 - You can now move between matching < and> as well as { and } delimiter
 pairs with {C-M-n} and {C-M-p}.
 BUTTON TYPES
 - Gbut/Rename: Added renaming of global explicit and named labeled
 buttons.
 - {kbd-key} Key Series: Greatly expanded the keys handled by
 brace-delimited implicit key series buttons. Added support for
 , , C-M-, non-ASCII CONTROL and META key codes, keypad
 keys, function keys, and these modifier keys: CONTROL, ALT,
 HYPER, META, SUPER and SHIFT (when whitespace separated).
 - Action Implicit Buttons: May now start with Lisp special forms like
 'progn' and 'or'.
 - Longer Button Labels: The default max length of a Hyperbole button
 label has been increased from 100 to 200 characters. The variable
 hbut:max-len controls this. If you locally set this to 0 in any
 new button type definition, then for that type of button, there
 will be no maximum limit. Since Action Implicit Buttons can be
 a series of Lisp calls, they are now unlimited in length.
 ===========================================================================
 * V7.1.0
 ===========================================================================
 BUTTON TYPES
 - In-buffer Labels: Fixed a number of in-buffer text handling issues with
 the creation of explicit buttons, maximizing reuse of existing text in
 labels.
 - link-to-file Action Type: Extended to allow file path to include either
 :line-num:column-num or just :line-num at the end (translated to character
 location within the button).
 DOCUMENTATION
 - Bookmark Mode: Added Hyperbole Manual section, "Smart Key - Bookmark Mode"
 that allows linking to Emacs Bookmarks. See "(hyperbole)Smart Key -
 Bookmark Mode".
 MENUS
 - Activate Any Labeled Buffer Button: Hyperbole's top-level menu 'Act'
 command either activates any button at point or prompts for the choice of
 any labeled explicit or implicit button within the buffer to activate.
 The pulldown menu item, Activate-Button-in-Buffer, behaves the same.
 - Org-mode in Q&A Appendix: Rewrote this section to account for improved
 integration.
 ===========================================================================
 * 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
 (hkey-ace-window-setup "\M-o") to enable the following capabilities:
 - Region Throws: The hkey-throw command bound to {M-o t} now throws the
 active (highlighted) region, if any, into the target window's buffer,
 rather than replacing its buffer with the source window buffer. If
 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 still throws the source buffer to the target
 window. See "DEMO#Displaying Items via Drags 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.
 CUSTOMIZATION
 - hproperty:flash-face: Face used when flashing a button; now customizable.
 - hproperty:highlight-face: Face used to highlight a line; now customizable.
 - inhibit-hsys-org: See ORG MODE section below.
 GLOSSARY
 - Hlink Definitions: Added Action Button, Elink, Ilink, Glink definitions.
 HYCONTROL
 - Windows Grid by File Pattern: {C--1 C-c @} prompts for a glob-type file
 pattern, finds all the matching files and then displays them in an auto-sized
 windows grid based on the number of files.
 - Autosize Windows Grid of Marked Items: When in a Dired, Buffer Menu or IBuffer
 buffer and items are marked, {@} will display them in an auto-sized window grid
 rather than prompting for a size.
 - 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".
 - HyControl Now Accepts Negative Prefix Args: If the minus key is pressed when
 HyControl is invoked or after any other prefix arg command, it will invert the
 current prefix arg value (or when zero, set the prefix arg to -1).
 HYROLO
 - 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}".
 - 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
 - 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
 - Implicit Button Support: Org-mode's local binding of {M-RET} by default
 now activates Hyperbole implicit buttons when within them.
 - 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
 will look up in-buffer identifier references with imenu. If imenu's
 index is rendered invalid due to large changes in a buffer, Hyperbole
 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
 ===========================================================================
 BUTTONS
 - Action Buttons: A new, universal syntax for creating implicit buttons
 that execute any existing action types or Elisp functions. Such
 buttons are delimited by angle brackets, , and come in three types:
 action type invocations, function calls and variable displays. See
 "(hyperbole)Action Buttons" for examples and details on this exciting
 new capability.
 - Labeled Implicit Buttons: Optional <[labels]> that precede implicit
 buttons. This enables implicit buttons to be activated by name when
 in the current buffer or anywhere when added to the global buttons
 file (personal button file).
 - Link to Buttons: New implicit button types that link to buttons based
 on their categories and labels:
 In Buffer Syntax Implicit Button Type
 ===========================================================================
  link-to-ebut
  link-to-gbut
  link-to-ibut
 - Other New Implicit Button Types:
 debugger-source: Jump to the source of errors from the Python pytype package
 ipython-stack-frame: Jump to the source of ipython stack traces and exceptions
 - Other New Action Types:
 link-to-bookmark: Display an Emacs bookmark
 - Much Faster Implicit Buttons: Major speedup in implicit button identification
 and activation even with the new generalized Action implicit button type
 syntax, due to internal optimizations.
 - Pathname Flashing: Pathname implicit buttons now flash when activated.
 - Pathname References: Pathname implicit buttons may contain both link anchors
 and line and column numbers. Format is:
 "[#]:[:]"
 - Shell Script Link Anchors: Link anchors now work for shell script editing modes
 as well using comment lines as the anchors, e.g. "myscript.sh#Env Variables".
 - Dir Variable Separators: Variables in paths no longer require a trailing directory
 separator. Both of these are live Hyperbole paths:
 "${hyperb:dir}DEMO#Smart Mouse Keys"
 "${hyperb:dir}/DEMO#Smart Mouse Keys"
 - Jump Thing: Added xml-mode support for pressing the Action Key when on a start or
 end tag pair to select the whole region between them. {C-c .} also moves between
 the start and matching end tag. See "(hyperbole)Smart Key Thing Selection".
 DOCUMENTATION
 - DEMO: New sections on Button Files and Global Buttons.
 - Action Types: link-to-gbut, link-to-ibut - Added.
 - hpath:native-image-suffixes: documented this setting for controlling
 image types that Hyperbole displays within Emacs.
 - Implicit Button Types: Split off type descriptions to this new
 subsection and added these types: ripgrep-msg, ipython-stack-frame,
 ilink (link to implicit button), glink (link to global button), and
 elink (link to explicit button).
 - DEMO (Action Buttons): Added description and examples.
 - Path Variables: Better documented how these are handled.
 - Hyperbole Manual, DEMO (Implicit Buttons): Added description and
 example of implicit button labels.
 - Glossary: Updated Implicit Button and Global Button entries with
 changes.
 - Installation: All new manual section on multiple ways to install Hyperbole.
 KOUTLINER
 - When 'c' (clip to lines per cell) is omitted from a viewspec, clipping
 now changes to whatever the default number of lines per cell is
 (typically, unlimited). The same goes for the 'l' spec (limit display
 to a certain level of cells).
 MENUS
 - Pulldown Menus: Implicit-Button/Label: Added to add a label.
 Implicit-Button/Rename - Added to rename the label
 of an implicit button.
 - Minibuffer Menus: hui-mini.el (hui:menus): Added Ibut/Label and
 Ibut/Rename.
 ORG MODE
 - Radio Targets and Links: Smart Keys now handle these.
 - Links: Smart Keys handle both internal and external Org mode links.
 PROGRAMMING
 - ibut:at-type-p: Added to test if point is on a specific type of
 implicit button.
 - hbut:key, ebut:key, ibut:key, hbut:rename, hui:hbut-rename,
 hui:hbut-operate: Added to allow renaming of any type of labeled
 Hyperbole button.
 - hypb:region-with-text-property-value: Added and used in hysy-org.el.
 - hsys-org-mode-function, hsys-org-mode-p: Added to determine when
 hsys-org actions are activated.
 - ebut:key-src-set-buffer, hbut:key-src-set-buffer, hbut:key-list,
 hbut:ebut-key-list, hbut:ibut-key-list, hbut:label-list): Added
 to allow selection of labeled Hyperbole buttons in current buffer by
 name.
 - gbut:get, hbut:map, ibut:label-map, ibut:key-src, ibut:key-to-label,
 ibut:label-to-key, hui:ebut-act, ibut:summarize, ibut:label-start,
 ibut:label-end, ibut:label-p, ibut:get, hui:ibut-label-create,
 hui:ibut-rename, hui:ibut-message, ibut:alist, ibut:list, ibut:map,
 ibut:next-occurrence, ibut:label-regexp, gbut:ibut-key-list, ebut:to,
 gbut:to, ibut:to, ibut:label-separator, hbut:label-regexp,
 ibut:rename, hbut:get: Added to support implicit button labels and
 links to buttons.
 hbut:label-p: Updated to handle implicit button labels.
 ibut:label-separator-regexp, hbut:outside-comment-p: Added.
 - elink, elink:start, elink:end: Added for in-buffer links to explicit buttons.
 glink, glink:start, glink:end: Added for in-buffer links to global buttons.
 ilink, ilink:start, ilink:end: Added for in-buffer links to implicit buttons.
 - hsys-org-set-ibut-label: Added and used in org-mode ibtype.
 org-mode, hsys-org-at-block-start-p: Added Action Key activation of
 Org blocks when on 1st line of def.
 SMART (ACTION AND ASSIST) KEYS
 - Emacs Bookmark Menu Mode: Jump to the bookmark at point.
 - hpath:find-program: Changed to prioritize hpath:native-image-suffixes
 over hpath:internal-display-alist over hpath:external-display-alist-macos
 instead of the reverse. This prevents external viewers from being
 used when internal viewers are also in effect.
 ===========================================================================
 * V7.0.3
 ===========================================================================
 ACE WINDOW PACKAGE INTEGRATION - fast window and buffer switching
 - After installing the ace-window package and loading Hyperbole, execute
 (hkey-ace-window-setup "\M-o") to enable the following capabilities:
 - Selected Window Buffer Replace: Added the ability to 'replace' the
 selected window's buffer with the buffer of another window. Use
 {M-o r }. To swap the buffers between the same two windows,
 use {M-o m . See "(hyperbole)Keyboard Drags" for setup and
 use instructions.
 - New Frame Commands: Any of these M-o commands that involve two windows
 can use a new frame as the target window by using a  of 'z'.
 So, {M-o t z} throws the current buffer to a new frame with a single
 window displaying that buffer. The new frame will be the same size as
 the prior frame to match the behavior of HyControl.
 - Integrated Ace Window commands with Smart Key Drags and added commands
 for use with the mouse that select Ace Window source and target windows
 by clicking with the mouse: hmouse-click-to-drag,
 hmouse-click-to-drag-stay, hmouse-click-to-drag-to,
 hmouse-click-to-replace, hmouse-click-to-swap, hmouse-click-to-throw.
 - {M-o i } is now for use only when on a listing item such as
 in Dired or Buffer Menu. It no longer creates Hyperbole buttons in
 non-item areas to avoid confusion. Now it will just trigger an error
 if not on a listing item.
 SMART (ACTION AND ASSIST) KEYS
 - MSWindows Paths: Hyperbole now recognizes typical MSWindows paths (both
 local and remote shares) and can convert an in-buffer path between POSIX
 and MSWindows formats multiple times, even paths involving mount points.
 See "DEMO#POSIX and MSWindows Paths".
 MSWindows paths may be used within links and implicit path
 buttons just like POSIX paths, whether running Emacs under a POSIX
 system or MSWindows. If under POSIX, a remote MSWindows path must be
 accessed through a mount point to the network share. Hyperbole caches
 such mount points when it is loaded. Use {M-x
 hpath:cache-mswindows-mount-points RET} to update them if more mounts
 are made later. See also the NEW COMMANDS section herein for how to
 convert a path between POSIX and MSWindows formats.
 - GitLab and Github Links: Added Gitlab implicit links with equivalent
 functionality to those of Github. Added "people" reference support to
 list people who are part of a formal organization as well as a "staff"
 alias. Added "contributors" reference support to list project
 contributors as well. Improved Github implicit issue links: gh#gh-34
 and gh#issue/34 now properly reference an issue in the current project.
 - Ripgrep: Added new ripgrep-msg implicit button type which jumps
 to the source referenced by ripgrep (rg) output. By default,
 ripgrep outputs pathnames only once before all matching lines
 within that path. Ripgrep may also be used with the Hyperbole
 `hypb:rgrep' command by setting 'hypb:rgrep-command'. See
 "https://github.com/BurntSushi/ripgrep".
 - Markdown Mode: Smart Keys now support Markdown internal file link
 references and navigation.
 - Org Mode: When in an *Org Help* buffer, the Smart Keys now defer to
 org-mode to handle jumps to its own locations for compatibility.
 Similarly, in org-mode buffers when not on an Org link or heading,
 and the {M-RET} Action Key is pressed, Hyperbole defers to Org's
 org-meta-return command. Hyperbole bindings of {C-c RET}, {C-c .}
 and {C-c @} also defer to org-mode.
 - Drag-based Kill, Copy and Yank: Added support for dragging across
 frames.
 - Python Identifiers: If a Jedi server is running and the Action Key is
 pressed on a Python identifier, Hyperbole will use Jedi to find the
 definition even within nested module references, e.g. a.b.c. Also
 improved basic identifier definition finding.
 - Company Mode Completion: Support for the Emacs company-mode completion
 package. An Action Key press on a company-mode completion item will
 display the definition of that item and an Assist Key press will
 display its documentation, if any.
 - Treemacs Mode: Now supports standard Hyperbole end-of-line proportional
 scrolling.
 - ChangeLog Mode: Smart Keys now work on Emacs Lisp references in
 changelogs.
 - Improved String Matching: For lines that begin with part of a string
 that started on another line, Hyperbole now presumes that point is
 within a string rather than between two strings, even though the
 delimiters on the line make this ambiguous. This provides more
 accurate string recognition.
 - Improved Path Matching: For quote delimited paths, other quote marks
 are excluded from matches, so if checking for a doubly quoted path,
 single quotes are not allowed in the string.
 HYCONTROL
 - Help Buffer Quitting: If HyControl is active, normally {q} quits
 it, but now if point is in an Emacs help buffer, {q} will quit
 from the help buffer instead. Use {Q} to quit from HyControl
 unconditionally.
 NEW COMMANDS
 - Buffer Sliding: Four new commands are available that can be
 bound to things like control arrow keys: hkey-buffer-move-left,
 hkey-buffer-move-right, hkey-buffer-move-down and
 hkey-buffer-move-up. Each one slides the current buffer one
 window in the direction specified and all other buffers slide
 around to match.
 - MSWindows and POSIX Path Toggling: In "hpath.el", added
 (hpath:substitute-posix-or-mswindows-at-point) and
 (hpath:substitute-posix-or-mswindows) commands to toggle the
 format of a path at point or in a string between POSIX and
 MSWindows styles.
 PROGRAMMING
 - Added hypb:map-plist, equivalent to mapcar but maps over
 key-value pairs in property lists (where the key and value are
 individual elements in the list).
 - In "hui-select.el", added functions to return info. on the
 context-sensitive region that this library selects.
 (hui-select-get-region) returns the region that would be
 selected at point and (hui-select-get-region-boundaries)
 returns a cons of the start and end position of the same region.
 - In "hpath.el (hpath:delimited-possible-path), added optional
 include-positions parameter which if non-nil, adds start and end
 positions to returned value.
 - In "hversion.el", added (hyperb:wsl-os-p) flag to test whether
 Emacs is running under Microsoft Windows Subsystem for Linux (WSL)
 since the system-type variable does not reflect this.
 DOCUMENTATION
 - Popup Menus: Documented how to invoke the Koutliner and
 HyRolo popup menus in Emacs. See "(hyperbole)Menu Commands".
 - DEMO: Added sections:
 "DEMO#Gitlab (Remote) References"
 "DEMO#POSIX and MSWindows Paths"
 - Updated Hyperbole Manual with new features.
 ===========================================================================
 * V7.0.2
 ===========================================================================
 ACE WINDOW PACKAGE INTEGRATION
 - Item Throws: Added the ability to 'throw' an item or a buffer to
 a window while leaving the selected window the same. Use {M-o t
 }. This works in Dired, Buffer Menu, iBuffer Menu and
 Treemacs modes and lets you throw multiple items to multiple windows
 quickly. See "(hyperbole)Keyboard Drags" for setup and use
 instructions.
 ===========================================================================
 * V7.0.1
 ===========================================================================
 SMART (ACTION AND ASSIST) KEYS
 - Keyboard Drags: Keyboard emulation of many Smart Mouse Key drag actions.
 See "(hyperbole)Keyboard Drags".
 - Keyboard Help: When {M-o} is bound to the `hkey-operate' command to
 emulate drag depress and release events; when in the release window
 prior to pressing the second {M-o}, {C-h A} now reports the drag
 action associated with the current release point. See "(hyperbole)C-h A".
 - Smart Treemacs: Smart Key and item drag support for the Treemacs package.
 See "(hyperbole)Smart Key - Treemacs".
 - Ace Window: Integrated Hyperbole item drag and link creation with this
 package's direct window selection. Use {M-o i }.
 You typically can display any Dired or Buffer Menu item in any window
 with a single 3 keystroke command! See "(hyperbole)Keyboard Drags"
 for setup and use instructions.
 HYROLO
 - Fixed Google Contacts support to prompt only once for authorization.
 ===========================================================================
 * V7.0.0
 ===========================================================================
 (See the "Changes" file for even more details of changes).
 BUTTONS AND SMART (ACTION AND ASSIST) KEYS
 - Git References: New implicit button and action type with a compact syntax
 that displays many types of git entities, e.g. git#commit/55a1f0. Such
 references work across all git repositories on your local disks.
 See "DEMO#Git (Local) References" or the commentary at the top of the
 "hib-social.el" file for extensive examples of these references. {C-h
 f git-reference RET} explains its syntax.
 - Github References: New implicit button and action type with a compact
 syntax that displays many types of github entities,
 e.g. gh#emacs-helm/helm/1878, displays issue #1878 for user emacs-helm
 and project helm. See "DEMO#Github (Remote) References" or the
 commentary at the top of the "hib-social.el" file for extensive
 examples of these references. {C-h f github-reference RET} explains
 its syntax.
 - Extensive new support for cross-window and cross-frame drags of the
 Action and Assist Mouse Keys. See "DEMO#Smart Mouse Keys" and the Info
 manual section, "(hyperbole)Smart Mouse Key Drags" for details. These
 actions allow for rapid display of buffers, windows and frames wherever
 you like.
 Major new features include:
 * Dragging items from Dired or the Buffer Menu for display in existing
 or new windows and frames. Action Key drag from the first line (or
 header line) to another window to move the listing buffer itself.
 Visual pulsing of source and destination to highlight the transfer
 taking place (hmouse-pulse-flag controls this). A following click on
 an item displays it in the source window, replacing the Dired or
 Buffer Menu listing.
 * Dragging from a buffer or an item to a modeline splits the window of
 the modeline and displays the buffer/item dragged in the leftmost
 or uppermost of the split windows.
 * Cloning or moving an Emacs window to a similarly sized new frame or
 another existing frame.
 * Displaying a buffer in specific other windows.
 * With Emacs 26 on macOS, Hyperbole detects the window of any drag
 release or whether the release was outside of Emacs, e.g. in another
 application whose window is atop an Emacs frame (uses a Python script
 included with Hyperbole, so Python must be available or this will do
 nothing).
 The hmouse-verify-release-window-flag (default is t) controls whether
 checking for non-Emacs areas on macOS is done or not, as this slows
 Smart Key action handling at least 1/3 of a second in a number of cases.
 - {}-delimited Key Sequence Implicit Buttons have been greatly expanded.
 An Action Key press on any of the following execute the associated commands:
 {M-x occur RET} - M-x extended commands
 {M-x apropos RET hyperbole RET} - commands with arguments
 {C-x 2 C-x 3} - sequences of commands
 {ESC: (+ 2 3) RET} - lisp expressions
 - Pathname Environment Variables: Implicit Buttons may contain environment
 variables such as "${PATH}/python" and Hyperbole resolves them to the
 first matching directory when activated.
 - Compressed Elisp: Quoted, compressed Emacs Lisp source file names without
 any path now work as implicit buttons that display the source file, with
 or without the compressed file suffix, e.g. "subr.el" or "subr.el.gz".
 - Prefixed URLs: Partial URLs with prefixes such as, url:photos.google.com
 or url=calendar.google.com, can now be displayed with Action Key presses
 even though they lack a www site name or an http protocol prefix.
 - Link to File: When modifying an explicit file link button, a variable in
 a pathname is maintained as is any prior in-file location when prompting
 for changes.
 - Yanking Explicit Buttons: When copying or moving explicit buttons, they
 are now re-highlighted when yanked into a new position.
 - EWW Support: Added Action and Assist Key support for browsing links in
 eww (the Emacs web browser) and for activating history links in the eww
 history buffer.
 - Open Office Documents: An Action Key press on an Open Office pathname
 displays it in Open Office. See hpath:external-open-office-suffixes for
 file suffixes supported.
 - macOS Apps: An Action Key press on a pathname that ends in ".app" on a
 macOS system will run the app externally (previously it would have been
 browsed as a directory).
 - File Page Browsing: Dynamic table-of-contents-type browsing for files
 separated into pages with form-feed (Control-L) page separators. Use
 {M-x pages-directory RET} to generate the listing of pages and then press
 the Action Key on any entry to jump to it.
 - Explicit Buttons in Comments: Explicit buttons in programming languages
 are now matched only within comments to avoid language syntax that looks
 like the delimiters of an explicit button, e.g. in Rust.
 - New hproperty:but-highlight-flag: This controls whether Hyperbole
 explicit buttons are highlighted with a special colored face or not. By
 default, they are.
 - Python Backtraces: Action Key presses jump to the associated source
 line.
 - Python Symbols: Action Key presses now look these up in any buffer whose
 name includes Pydoc: or Python, mainly help buffers.
 - Compressed File Grep: {C-h h f g} now uses zgrep when available to
 handle compressed source files.
 - Grep -A Support: The grep -A option produces context lines around any
 matched lines but uses a different syntax for separating line numbers at
 the beginning of lines. The Action Key now supports jumping to the
 source of any such lines.
 - Dired Quit: An Action Key press at the end of the first line in a Dired
 buffer now quits and executes requested actions, just as presses at the
 end of the buffer do.
 - Image Thumbnail Browsing: See the Info manual section,
 "(emacs)Image-Dired", for how to create a buffer of image thumbnails.
 Once created, the Action Key displays a scaled version of the original
 image in an Emacs window. The Assist Key displays the original image in
 an external viewer.
 - Emacs Push-buttons: An Assist Key press on an Emacs push-button previously
 displayed its keyboard-action help string but not its mouse-action help
 string. Now it displays the mouse-action when appropriate.
 - Texinfo References: An Action Key press on an Emacs Lisp @findex
 (function) or @vindex (variable) entry displays the documentation for
 that entry.
 - Debbugs Issues: Eliminated match of #id-number as a bug reference; 'bug'
 or similar prefix is now required so there is no ambiguity with social
 references including 'git #commit-number'.
 CUSTOMIZATION
 - Smart Key Hooks: New hooks run before and after Smart Key depress and
 release events: action-key-depress-hook, action-key-release-hook,
 assist-key-depress-hook and assist-key-release-hook.
 DOCUMENTATION
 - FAST-DEMO: New, simplified introductory demo to Hyperbole focused on
 implicit buttons. Includes links to Hyperbole videos and the prior
 "DEMO". {C-h h d d} display "FAST-DEMO" and {C-u C-h h d d} displays
 the prior "DEMO".
 - Why Use Hyperbole: "HY-WHY.kotl" lists use cases for Hyperbole with
 hyperlinks to associated "DEMO" sections for each. View this via
 the minibuffer menu with {C-h h d w} or via the `Why-Use?' Hyperbole
 menubar menu entry.
 - Hyperbole HTML Manual: The HTML version of the Hyperbole Manual now uses
 the same css stylesheet as used for the Hyperbole Home page, making
 it look much better and easier to navigate.
 - Drags: Updated Hyperbole Manual with all new Smart Mouse Key drag actions.
 - Smart Key Help: Improved help documentation for Smart Keys when they
 contain multiple clauses connected with 'or' logic, e.g. do 'a' or 'b'
 or 'c'.
 - New Hyperbole Manual Sections:
 * Referent Display - setting of where link referents are displayed
 * Smart Mouse Key Drags
 * Smart Mouse Drags outside a Window
 * Smart Key - Image Thumbnails
 * Future Work - Direct Manipulation
 - Git References: In the Implicit Buttons section of the Hyperbole Manual,
 added documentation for git-reference, git-commit-reference and
 github-reference.
 - Toggle Key Bindings: In the Smart Key Bindings section of the Hyperbole
 Manual, explained hyperbole-toggle-bindings (toggles keyboard and mouse
 keys) rather than hmouse-toggle-bindings (toggles only mouse keys).
 Moved the latter to the Global Key Bindings appendix.
 - Other Hyperbole Manual Section Changes:
 * Button Colors: Added doc on hproperty:but-highlight-flag.
 * Glossary: Added Windows Grid entry.
 * Hook Variables: Added doc of: action-key-depress-hook,
 action-key-release-hook, assist-key-depress-hook
 and assist-key-release-hook.
 * HyControl: Added Google Contacts use and additional Concept Index entries.
 * Koutliner: Centralized all key binding index entries under "koutliner, ".
 * Manual Overview: Improved pointer to DEMO.
 * Smart Key - WWW URLs: Added browse-url-browser-function and Cust/URL-Display reference.
 * Using URLs with Find-File: Added URL browser customization menu reference and image.
 - New DEMO File Sections:
 * Table of Contents Browsing
 * Dragging Buffers, Windows and Items
 * HyControl Frame Commands and Windows Grid subsections
 * HyRolo
 * Running Dired on the Current Directory
 HYCONTROL
 - HyControl Minor Modes: HyControl is now two minor modes, one for frames
 and one for windows. It uses standard key bindings and standard Emacs
 event processing instead of its own event loop, so any keys not bound in
 a HyControl mode now work normally. HyControl Windows Mode displays
 HyWin in the modeline and HyControl Frames Mode displays HyFrm while
 active. Both modes invert the modeline colors so you don't forget you
 are in a special mode.
 - {@} is an incredible new key binding and command that creates a grid of
 windows within a frame by splitting the frame into a number of equally
 sized windows specified by a number of rows and columns (typically as
 prefix arg digits). Each window shows a different buffer, if possible,
 with a prefix arg of 0 prompting for a major mode and first displaying
 buffers of that mode.
 The same {@} command works in Dired, Buffer Menu and IBuffer modes and
 first displays any items marked for display in the windows grid,
 i.e. marked with the {m} command.
 Hyperbole also supplies the global key binding {C-c @} so this command
 can be used at any time.
 The variable, hycontrol-display-buffer-predicate-list, determines which
 buffers are first displayed in the grid except when filtering by major
 mode or by items marked in a listing buffer.
 {M-x hycontrol-windows-grid-repeatedly RET} allows rapid visual testing
 of different grid layouts or filters as it prompts you for a grid size,
 displays it and then prompts you again until your press RET without
 giving a size.
 See "Demo#Windows Grid" for example use.
 - {a} adjusts the selected frame width by cycling through a list of common
 fixed percentages such as 25% and 50% (given by the variable,
 hycontrol-frame-widths.
 {A} does the same for the selected frame's height, using
 hycontrol-frame-heights.
 - {f} now clones a window to a new frame without deleting the source window
 {F} moves a window to a new frame and deletes the the source window
 - {i}, {j}, {k}, {m} first expand the selected frame to an edge based on
 their respective positions on a U.S. keyboard, e.g. {i} expands the
 frame to the top edge; with further invocations, they keep the frame at
 that edge but cut its perpendicular dimension in half (or to any
 percentage specified as an argument), leaving the particular edge fixed.
 This allows both rapid expansion and contraction of frames with just 4
 keys whenever needed.
 It is easiest to understand by simply trying the keys. See "Demo#Frame
 Commands" for example use.
 - {c} for frame edge location cycling now is available in HyControl
 Windows mode.
 - {p } displays a virtual numeric keypad and moves the selected frame
 to the screen edge position based on the numeric keypad layout, e.g. 3
 moves it to the southeast corner of the screen. This is for keyboards
 that do not have a physical numeric keypad. Before a number is
 selected, {C-g} or {q} will exit and return to the top-level of the
 active HyControl mode.
 - {-} in HyControl Windows mode minimizes a window size while trying to
 display its entire buffer. Now it will resize the window to 1 line if
 it cannot display all lines or if all lines are already displayed.
 - Minibuffer Help: Improved help strings shown in the minibuffer while
 HyControl is active. Added {?} key which toggles this display on and
 off.
 - ESC: Removed this as a quit key since now that regular key sequences are
 supported, this is often used as a meta key prefix. Use {q} to quit.
 - Minibuffer Prompts: Automatically quit from any HyControl mode whenever
 a minibuffer prompt becomes active so that arguments may be typed
 normally. Examples include use of {M-:} for Lisp expression evaluation
 and M-x for entering commands by name.
 HYROLO
 - Google Contacts: New support for searching your Google Contacts with the
 HyRolo Contact Manager; for advanced users only. Requires use of the
 Emacs google-contacts package and the non-Emacs gpg public key package
 to support Google services authorization. Once configured, these
 contacts are automatically searched together with local HyRolo files any
 time a contact search is performed. See the Google Contacts part in
 "(hyperbole)HyRolo Settings".
 - Dynamic HyRolo List: The HyRolo list of files to search is now computed
 dynamically so you can enable Big Brother Database (BBDB) or Google
 Contacts support after HyRolo is initialized and these contacts will also
 be searched.
 KEYS
 - Unshifted Mouse Keys: By default, Hyperbole mouse keys are Shift-Middle
 (Action Key) and Shift-Right (Assist Key). For frequent mouse users,
 there is now {M-x hmouse-add-unshifted-smart-keys RET} which
 additionally makes the Middle mouse key the Action Key and the Right
 mouse key the Assist Key, replacing their default Emacs functions. {M-x
 hmouse-toggle-bindings RET} will toggle between the Emacs and Hyperbole
 mouse bindings.
 - Smart Key Reload: If you ever edit any of the Smart Key contexts or
 actions in "hui-mouse.el", "hui-window.el", "hibtypes.el" or
 "hactypes.el" and re-byte-compile those files, then you may reload your
 new settings with {M-x hmouse-update-smart-keys RET}. No need to reload
 or restart Hyperbole.
 - Jump Thing: Added Jump Thing key binding entry to Hyperbole menus. This
 key jumps between the start and end of a matching delimiter or tag pair.
 - Mod Mouse Keys: Disallowed this feature meant to enable one hand on the
 keyboard while the other hand pressed the mouse keys as Control and Meta
 modifier keys. Use would conflict with Emacs bindings of Control and
 Meta mouse keys.
 KOUTLINER
 - `e' Viewspec: Removed ellipses viewspec because ellipses can no longer
 be turned off with modern Emacs outlining.
 MENUS
 - Prefix Arguments: Prefix arguments may now be given to any Hyperbole
 menu command that accepts them.
 - Action Doc Strings: If a menu item has no help string but its action is
 a function with a doc string, then that doc string will be used to
 display help for the menu item.
 - Key Bindings: The pulldown menu, Hyperbole/Options/Change-Key-Bindings
 now displays the current keys bound to each command for easy reference.
 ===========================================================================
 *				 V6.0.2
 ===========================================================================
 BUTTONS
 - pathname Implicit Button Type: generalized to handle hash-style links to
 HTML files, to Github Markdown # sections and to Emacs outline *
 sections. So an Action Key press on any of the following links displays
 the link referent:
 "man/hyperbole.html#Questions-and-Answers"
 "README.md#why-was-hyperbole-developed"
 "DEMO#HTML Markdown and Emacs Outline Hash Links"
 Even links split across 2 lines like this now work: "DEMO#Social Media
 Hashtags and Usernames", as long as point is on the first line.
 Within HTML and Markdown files, in-file hash links without any file name
 prefix work as well.
 HTML hash-links are case-sensitive; other hash-links are not. Hash links
 typically use dashes in place of the spaces that referents may contain,
 but if the link is enclosed in quotes, Hyperbole allows spaces to be used
 as well. In fact, it is best practice to always enclose hash-style links
 in quotes so Hyperbole can distinguish them from other similar looking
 constructs, such as social media hashtags (see "(hyperbole)Social Media").
 Pathnames surrounded by literal non-ASCII quote marks now work as well.
 For example, ‘http://ftp.gnu.org/gnu/hyperbole/’.
 - New Implicit Button Type, markdown-internal-link, displays any in-file
 Markdown link referent, aside from pathnames and urls. Together with
 other types, all Markdown links can now be followed by the Action Key.
 - social-reference Implicit Button Type: Disabled this type within quoted
 strings (all modes) and within parentheses (markdown-mode), so in-file
 hash link references are not matched as social hash tags. Made the list
 of modes a variable, hibtypes-social-inhibit-modes.
 - New link-to-web-search Action Type: Allows global and explicit buttons
 to link to specific web term searches from `hyperbole-web-search-alist'.
 - org-mode Implicit Button Type: Improved to invoke org-meta-return when
 not on an Org link or outline heading.
 DOCUMENTATION
 - Added pointer to HyControl video and {C-c \} binding which invokes
 HyControl window control.
 - README.md File: New Org-mode user testimonial.
 - DEMO File: Added description and exercise using the new Find/Web menu.
 - Added README.md.html introduction with images combining README, INSTALL
 and HY-ABOUT information.
 - Full set of hand-written changes are now in the file "Changes". The
 former name, ChangeLog, is now auto-generated from the version controlled
 'git log' but not as complete.
 KEYS
 - New variables, action-key-eol-function and assist-key-eol-function, used
 to control what the Action and Assist Keys do at the end of a line.
 Default behaviors remain as before but now one can set these to do
 something other than scrolling, if desired. See "(hyperbole)Smart Key -
 Smart Scrolling"
 - When in HyControl, pressing {ESC} now quits in addition to {q}.
 MENUS
 - New submenu, Find/Web, for quick access to major web search engines.
 The Find/Web menu looks like this:
 Web> Amazon Bing Dictionary Elisp Facebook Google Hub(git) Images Maps RFCs StackOverflow Twitter Wikipedia Youtube
 Hyperbole binds the key {C-c /} for quick access to this menu, if it is
 not already bound prior to Hyperbole's initialization. The
 Cust/Web-Search menu, {C-h h c w}, sets the option,
 hyperbole-web-search-browser-function, which determines whether web
 search results are displayed within Emacs or with an external web
 browser. A short video introduction to the Find/Web menu may be found at
 https://youtu.be/8lMlJed0-OM.
 Advanced users can change the search engines listed in the Find/Web menu
 with M-x customize-variable RET hyperbole-web-search-alist RET. Changes
 are automatically reflected in the Hyperbole menus once applied.
 Remember each search engine name must begin with a unique letter and each
 URL must have a %s format field indicating where to place the web search
 term when a search is performed. See "(hyperbole)Web Search Engines".
 ===========================================================================
 *				 V6.0.1
 ===========================================================================
 NOTE: Version 6.0.1 is the first public release by the author since version
 4.18. All version 5 releases were test releases, so all V5 and V6 features
 are new in 2016 and you should look through them all.
 BUTTONS
 - New Implicit Button Type, social-reference: for social media hashtag or
 username references, social-reference. Action key activation
 displays the web page associated with the hashtag or username.
 References can look like #hashtag or @username for Twitter
 references. fb#hashtag or facebook@username for Facebook references
 or in#hashtag or instagram@username for Instagram references. See
 the new file "hib-social.el" for more information.
 DOCUMENTATION
 - The introductory parts of the manual have been improved and the flow
 from section to section is better. Added menu key sequences to
 "(hyperbole)Suggestion or Bug Reporting". Expanded and added
 instructions on using the customize interface to change the functions
 run by Smart Key modeline clicks. See "(hyperbole)Smart Key Modeline".
 VARIABLES
 - hsettings.el is now included in the Hyperbole package rather than
 generated (formerly called hsite.el). Use the Hyperbole customization
 variables to change anything in there rather than editing the file
 manually as before.
 ===========================================================================
 *				 V6.0.0
 ===========================================================================
 HYROLO
 - The Hyperbole contact manager has been renamed to HyRolo and all of its
 identifiers now begin with hyrolo-. If you had a custom value of
 `rolo-file-list' in your ~/.emacs file, you should rename it to
 `hyrolo-file-list'.
 KEYS
 - Removed the {RET} key bindings of the Action Key in read-only modes since
 it was not consistent across all modes and probably was little used. It
 also could interfere with mode-specific usage of this key. Just use the
 standard Action Key bindings.
 MAIL
 - Implicit mail address buttons are recognized in many more programming
 modes. See the value of `hypb:mail-address-mode-list'.
 VARIABLES
 - Hyperbole is now integrated with the Emacs option customization system,
 allowing for interactive editing and permanent setting of many Hyperbole
 options. Use {M-x customize-browse RET} and find the Hyperbole group
 under Applications. Hyperbole's options are divided into logical
 subgroups such as Rolo and Koutliner. See "(emacs)Easy Customization"
 for details on the customization system and "(hyperbole)Customization"
 for Hyperbole specifics.
 - Renamed any Hyperbole hook variables that had a colon in their names
 to use a hyphen instead.
 WINDOW CONFIGURATIONS
 - Similarly, the commands from the Win/ menu from Wconfig have been
 renamed to begin with hywconfig- and the library is now called
 hywconfig.el.
 ===========================================================================
 *				 V5.15
 ===========================================================================
 BUTTONS
 - New Implicit Button Type, debbugs-gnu-mode: When on a GNU Debbugs listing
 entry in debbugs-gnu-mode, an Action Key press displays the discussion of
 the selected issue; an Assist Key press pretty prints the status of the
 issue to a window below the listing window. This augments the
 debbugs-gnu-query implicit button type from V5.14 which recognizes
 bug/issue ids and queries in any buffer.
 - Initial Org Mode Support: The new implicit button type, org-mode, follows
 Org mode hyperlinks and cycles display views of Org mode outline headings.
 When on a heading, the Action Key cycles the view of the subtree at point
 and the Assist Key cycles the view of all headings in the buffer.
 Suggest other good ideas for Smart Key actions on Org entities and we'll
 likely implement them.
 - Links to Info Manual Index Items: You can now drag between windows with
 the Action Mouse Key depressed to an Info Manual index menu entry to
 create an explicit button link to it (or use {C-h h e c} with an action
 type of link-to-Info-index-item). Then the button will always take you
 to the line in the manual referenced by that index item. This also works
 with other Info menu items and cross-references. Implicit buttons that
 reference index items work too, like "(hyperbole)C-c C-m"! And when you
 are creating the link, full completion of the file name (within
 parentheses) and the index item name is provided; just type ? to list
 completions after typing a few characters. Since Emacs and most GNU
 programs include Info manuals, you now ​have ​a simple way to link to and
 ​ ​jump​ ​to any marked item within any manual.
 Previously, when creating a link to an Info manual node, Hyperbole
 would ignore cross-references and menu items and just link directly
 to the node rather than anything it referenced. To get that behavior
 now, simply link to a place in the node that does not reference another
 place.
 - Link Button Creation: Hyperbole now shows you what you linked to at
 global or explicit link button creation time. Previously, it showed you
 only the type of the link. So if you drag across windows from a button
 label to an Info index item now, you will know that the link goes to the
 index item entry and not to the index node containing the item reference.
 - New Implicit Button Type, pathname-line-and-column: A whitespace or quote
 delimited existing pathname followed by a :line-num and an optional
 :column-num displays the path at line-num and column-num. So
 "~/.emacs:10:40" shows your Emacs initialization file at line 10 and
 column 40. The column number is optional.​
 - GNU Info Manual Key Sequences: Previously, Hyperbole recognized​ ​key
 sequences delimited by curly braces only, {}. Now it recognizes​ the​
 ​quotation ​marks used in GNU Info manuals as well and can execute them
 with an Action Key press within Info buffers.
 - Imenu Item Recognition: When the Emacs imenu library is in use and an
 identifier menu has been generated for the current buffer, an Action Key
 press on an identifier at point jumps to the identifier definition
 within the current buffer; an Assist Key press prompts with completion
 for an identifier defined within the buffer and then jumps to its
 definition.
 DOCUMENTATION
 - Smart Key Debugging: Added a section, "(hyperbole)Smart Key Debugging",
 to the Hyperbole Manual, documenting the usage of the Customize Menu
 option, Toggle-Smart-Key-Debug (minibuffer menu Cust/Debug-Toggle,
 {C-h h c d}).
 KEYS
 - Toggle Hyperbole Keys: The new command, {M-x hyperbole-toggle-bindings
 RET}, toggles Hyperbole mouse and keyboard keys off and on. This is not
 bound to a key because it will make Hyperbole unusable until the keys are
 re-established with another toggle. This forces you to know what you are
 doing before you utilize this feature.
 MENUS
 - Minibuffer Keyboard Direct Selection: You have always been able to click
 with your mouse on a minibuffer menu item to directly select it. Now
 Hyperbole has the keys {TAB} or {M-f} to move to the next menu item and
 {Shift-TAB}, {M-TAB} or {M-b} to move to the previous item, with each
 cycling back when it reaches the end or beginning of the menu. The
 fastest way to select minibuffer menu items from the keyboard remains
 typing the first letter (case-insensitive) of the menu item.
 - Minibuffer Menu Navigation Changes: A press of {RET} with point at the
 end of a menu, quits from the menu. {RET} with point in a menu prefix
 (before the '>' character), returns to the top-level Hyperbole menu.
 Clicks of the Action Mouse Key do the same thing, so now you can
 navigate and quit from menus with just the Action Mouse Key.
 ===========================================================================
 * 			 V5.13 and V5.14
 ===========================================================================
 BUTTONS
 - Instant Bug Lookups and Queries: New Gnu Debbugs bug/issue tracking
 implicit button type, debbugs-gnu-query, that jumps to the description
 and discussion of issues by issue number and displays an issue's status.
 This works for the GNU Hyperbole issue tracker as well as many other GNU
 projects. All of these button formats may be embedded within any text:
 #id-number
 bug#id-number, bug# id-number, bug #id-number or bug id-number
 bug?attr1=val1&attr2=val2&attr3=val3
 bug#id-number?attr1=val1&attr2=val2&attr3=val3
 Note that `issue' or `debbugs' may be used in place of `bug'.
 See the documentation at the start of "hib-debbugs.el" for more
 information.
 - During the creation of link-to-Info-node explicit buttons with an
 argument of the type (filename)nodename, full completion is offered for
 both the filename and the node name; just type ? to list completions
 after typing a few characters. You now can drop the .info suffix from
 filenames as well, so "(hyperbole)Smart Keys" works fine as a node
 reference.
 - Implicit links from the output of the UNIX apropos command now work
 properly in Emacs 25.
 - Implicit pathname matches now handle compressed Emacs Lisp files found
 anywhere within the directories of `load-path' and do not try to expand
 paths that begin with a ~.
 - New variable, `hpath:info-suffix', is a regular expression of Info
 filename suffixes which may be omitted when using parenthesized Info
 filenames in links; this allows for compressed Info file matches and Info
 pathnames of the form "(Hyperbole)" to work. That displays the top node
 of the Hyperbole Manual in the Info browser.
 - Pathnames ending in .mp3, .wav or .ogg are played as music files rather
 than displayed if your Emacs has support for this. Modify the value of
 the variable, `hpath:internal-display-alist' to add more formats.
 - New per-window system association list variables determine what if any
 file types within Hyperbole hyperlinks are displayed by external programs
 outside of Emacs. See the values of and documentation for:
 `hpath:external-display-alist-macos', `hpath:external-display-alist-mswindows',
 and `hpath:external-display-alist-x'.
 - Added support for &, ~, and ^ as identifier characters in Lisp tags and
 removed #.
 DOCUMENTATION
 - DEMO File: Major updates to reflect the latest Hyperbole features. Added
 sections on HyControl, Creating and Modifying Explicit Buttons and
 Path Suffixes and Variables. Try it out with {C-h h d d}.
 - Hyperbole Manual
 - Updated all screenshots in the manual; thanks to Mats L.
 - In the "(hyperbole)Internal Viewers" section, added a description of
 the file formats supported by the default setting of the
 `hpath:internal-display-alist' variable.
 - Added sections "(hyperbole)Smart Key Modifiers" and
 "(hyperbole)Smart Key Modeline".
 - Added a "(hyperbole)Glossary" entry for Chord Keyboard.
 - In "(hyperbole)Smart Key Thing Selection", added documentation of the
 {C-c RET} key for syntactical region marking and the {C-c .} key for
 delimited thing jumping between start and end.
 - In the Cust/ menu section of "(hyperbole)Menus" which lists all
 Hyperbole key bindings, indicated which keys are bound only if not
 bound prior to loading Hyperbole.
 HYCONTROL
 - Frame placement calculations now account for window system decorations
 around frame, leading to improved placement offsets around screen edges.
 See the documentation for `hycontrol-set-screen-offsets'.
 MENUS
 - On the Hyperbole menubar menu, the Types submenu which shows
 documentation for Hyperbole types has been moved below the Documentation
 menu to match the Hyperbole minibuffer menu location. Also added a Types
 menu item under the Explicit-Button menu to match the one under the
 Implicit-Button menu.
 - On the Hyperbole Customize/Change-Key-Bindings menubar menu, renamed
 these entries and added Mark-Thing-Key. Similar updates done to the
 minibuffer menu.
 MOUSE AND SMART KEY SUPPORT
 - An Action Key press on a Hyperbole minibuffer menu key sequence now
 invokes the associated menu action. Try it with {C-h h d g} to see the
 Hyperbole glossary. An Assist Key press shows help for the menu item.
 - Changed the `assist-key-default-function' which applies in an unrecognized
 context to trigger an error by default to match the behavior of the
 Action Key. Its prior value, toggle display of or hide the Smart Key
 summary, is performed by an Assist Key click in the right of a modeline
 or via minibuffer menu with {C-h h d s}.
 - Point is now left within the Smart Key summary by default and it is in
 help mode so you can page through it with SPC and DEL keys and then quit
 from it with {q}.
 - A click of the Action Mouse Key within an inactive minibuffer window
 displays the Hyperbole minibuffer menu, allowing you to invoke menu
 entries with the mouse. A click of the Assist Key in the same place
 displays the buffer, window and frame jump menu just as does a click
 within the middle of a modeline since it is easy to miss by a little and
 click on one or the other. These behaviors are controlled by the new
 variables, `action-key-minibuffer-function' and
 `assist-key-minibuffer-function'.
 - Distributed Window System Support: Previously, Hyperbole supported mouse
 control only on the screen on which it was launched. If you used
 emacsclient or other means to create a frame on another screen or outside
 of a terminal, that frame would not have Hyperbole mouse support even
 though it was under a window system. Now each frame receives mouse
 support whenever its window system has mouse support.
 - Improved support for using the Action and Assist Mouse Keys as Control-
 and Meta- modifier keys, mainly for use with a chord keyboard or to
 balance hand use to reduce carpal tunnel stress. Made `hmouse-mod-mode'
 a regular minor mode. See "(hyperbole)Smart Key Modifiers" for more
 details.
 ROLO
 - Fixed entry sorting to work with Emacs 25.
 ===========================================================================
 *				 V5.12
 ===========================================================================
 BUTTONS
 - Prevented keyword matches as identifiers in Java, C++, C, Objective-C
 and Python. 
 - Prevented @ annotation matches when matching to Java identifiers/tags.
 - In Info documentation browsing mode, added support for index nodes and
 for fixed header line and text-property-based breadcrumb header lines
 now used in Emacs, so the Action Key can now follow links associated
 with all of these entities.
 - In compilation buffers, e.g. {M-x make RET}, if an error line has a
 relative pathname which Hyperbole cannot resolve, it will prompt
 for the directory in which to resolve the path.
 DOCUMENTATION
 - Added printable hyperbole.pdf version of the Hyperbole Manual.
 - DEMO file: Updated horizontal and vertical drag exercises to
 correspond to current Hyperbole behavior.
 - Added chapter on HyControl, window, frame and buffer control.
 - In the Hyperbole Manual Glossary, added Buffer, Frame, HyControl
 and Window definitions. 
 - Added additional Q&A in an appendix.
 - Clarified and fixed Smart Key modeline behavior documentation.
 - Made example text larger for easier reading.
 - Added Screen definition to the Glossary.
 EMACS SUPPORT
 - Hyperbole now includes the fastest, easiest-to-use Emacs window and frame
 management system available; we call it HyControl. If you use a lot of
 Emacs windows or frames (typically, window system windows), this is for
 you. HyControl lets you interactively adjust the current layout of your
 windows and frames down to the pixel-level if desired. You keep
 adjusting the location, size and display elements of your windows and
 frames until they look as you like and then you simply quit HyControl and
 go back to work.
 - Expanded Hyperbole menu of buffers by major mode to allow for
 `hui-menu-max-list-length' number of buffers, by default, 24.
 - Made a right to left horizontal drag from near a right-side window divider
 properly shrink the window width under Emacs 25.
 KEYS
 - The Hyperbole Screen submenu provides access to HyControl as well as the
 key binding {C-c \}.
 - Removed {C-c C-t} hmouse-toggle-bindings key binding. This
 should be used rarely, so force use of {M-x hmouse-toggle-bindings RET). 
 - Updated "hmouse-mod.el" library for Emacs 25; it allows using the Smart
 Mouse Keys as Control and Meta modifiers when desired.
 KOUTLINER
 - Improved recognition of Klinks, preventing false matches.
 - Added missing {C-c C-i}/{C-c TAB} binding mentioned in the EXAMPLE.kotl
 file; sets cell attributes.
 - {C-t} Transpose characters - Added error checks at the beginning of cells
 and end of lines for times when there are not 2 chars to transpose.
 ROLO
 - Improved {M-s} interactive string searching for rolo match buffer strings.
 Made {C-u M-s} do a regexp search for rolo match buffer strings.
 - Documented the {l} hyrolo-locate command in the Hyperbole manual.
 - The format of the rolo entry date added to new entries is now configurable
 via the variable, `hyrolo-date-format'. It uses the formatting
 strings listed in the documentation of the function `format-time-string'.
 - All rolo find and search commands are now case-insensitive.
 - Using a numeric prefix argument with rolo find commands now
 properly limits the number of matches to a maximum of that number.
 - If the Big Brother Database (BBDB) is loaded before the rolo, its
 `bbdb-file' is added to the list of files searched by the rolo.
 You can manually added this file to `hyrolo-file-list' as well and
 its format will automatically be handled by the rolo.
 ===========================================================================
 *				 V5.11
 ===========================================================================
 BUTTONS
 - Improved support for remote pathname access (outside local
 filesystems).
 EMACS SUPPORT
 - Much faster and better lookup of active Emacs Lisp identifiers
 when the Action Key is pressed over one. Face definitions are
 also found now. TAGS files are used only if the identifier has
 not been loaded within the current Emacs session.
 KOUTLINER
 - Proper support for isearch temporary display of invisible text
 when it contains a search match. {C-s}, interactive search,
 expands and contracts text dynamically to show any search
 results, just as it does in the regular Emacs outline mode. You
 can toggle whether such searches include invisible/hidden text
 (the default) or not. Use the
 Customize/Toggle-Isearch-Invisible-Text menubar item or the
 Cust/Isearch-Invisible minibuffer menu item to toggle this
 setting.
 MAIL AND NEWS READERS
 - New variable, `inhibit-hyperbole-messaging' with default value
 of t inhibits Hyperbole's support for explicit buttons within
 mail and news buffers. When t, Hyperbole will not alter
 messaging mode hooks nor overload functions from these packages,
 preventing potential incompatibilities.
 If you want to use Hyperbole buttons in mail and news buffers,
 use the new Customize/Toggle-Messaging-Explicit-Buttons menubar
 item or the minibuffer menu Cust/Msg-Toggle-Ebuts item. These
 not only change the variable value but also add or remove the
 setup hooks as necessary.
 ROLO
 - New {o} key binding for an overview of all Rolo matches at all
 levels, one line per entry.
 - {t} top-level cells command works in all cases now.
 - {Shift-TAB} added as an additional key to move backwards one
 Rolo match.
 - Improved operation of {l} and {M-s C-s} commands that search for
 occurrences of match strings and allow extending the search term.
 - Support for looking up contacts in the Big Brother Database
 (BBDB) file of email addresses, when that package is used.
 The functions, hyrolo-grep-bbdb finds regular expression matches
 and hyrolo-fgrep-bbdb finds string matches. All regular Rolo
 match buffer commands may then be applied. The {e} command for
 editing an entry signals an error when applied to the BBDB file,
 however.
 SMART KEYS
 - The Assist Key when pressed in the middle portion of a modeline
 now pops up a very useful menu of display-oriented commands.
 Jump to buffers categorized by major mode, to windows by buffer
 name, or to frames by name. Manage your windows and frames
 quickly with this menu as well. Another can't live without
 feature. This comes from the new file, hui-jmenu.el.
 - Added Python etags support for jumping to Python definitions.
 With the separate OO-Browser package, definition location is
 much better than just with etags.
 See "(hyperbole)Smart Key - Python Source Code" for help.
 - The Hyperbole Manual Smart Key Reference appendix now has a
 subsection for each context, allowing quick reference of a
 particular Smart Key context. Also, added documentation for
 delimited thing selection, copying and moving.
 - New function, hyperbole-popup-menu, to display the Hyperbole
 menubar menu at the mouse point (or the left of the menubar when
 running on a dumb terminal). This is useful as a setting
 of `action-key-default-function' if you want some undefined
 Action Key context to popup this menu in order to use Hyperbole
 commands.
 ===========================================================================
 *				 V5.10
 ===========================================================================
 EMACS SUPPORT
 - Hyperbole now downloads, builds and installs as a regular
 Emacs package (but from a special archive location while pre-testing).
 - Automatic time-zone handling under MS Windows (already existed
 for UNIX-like operating systems). Plus support for 3 mouse
 buttons under Windows.
 IMPLICIT BUTTON TYPES
 - Updated the extended find-file commands which handle http (www) and ftp
 URLs to support the Tramp library included with newer versions of Emacs.
 Use the menu item Hyperbole/Customization/Find-File-Accepts-URLs to
 enable or to disable this. See "(hyperbole)Using URLs with Find-File"
 for details.
 KOUTLINER
 - Editing commands that normally delete/replace an active region
 now do this in the Koutline. If a region extends beyond one
 cell, an error is triggered or if `kotl-mode:shrink-region-flag'
 is set to t, the Koutliner automatically shrinks the region to
 the first cell within the region and then continues the editing
 operation.
 - Updated yanking and other editing commands for improved
 compatibility with Emacs 25.
 - Internal improvements to many tree handling, filling and view
 changing commands.
 - New Shift-TAB key binding to demote trees (shift them up a
 level), for compatibility with other outliners.
 MENUS
 - The new Find/Locate-Files menu item (minibuffer menu
 Find/LocateFiles) prompts for a pattern and displays a list of
 all matching pathnames found throughout the file system. On Mac
 OS X, this uses Spotlight (the mdfind command); on UNIX, it uses
 the `locate' command. Within the result *Locate* buffer, you
 can then use the Find/Grep-Files menu item to find matching
 lines within only these paths (files and directories).
 SMART KEYS
 - Action Key now ignores JavaScript keywords when searching for
 identifiers to match.
 - Commands that interactively prompt for a Koutline cell label now
 offer completion and require a match to a visible outline cell.
 This helps prevent operating on an invisible cell unintentionally.
 THING SELECTION
 - Selection of open/close matched tag pairs and jumping between
 them now works in web-mode, which supports multiple web
 languages within one file (previously only html-mode was
 supported). Also, can now select chained identifiers like:
 parent.child.subchild in html and web modes with the {C-c
 RETURN} thing selection key.
 - Can now select comments when at a comment start; try it with
 the Action Key.
 - Can now select Lisp symbols with colons in them within help
 buffers since they often appear there.
 VARIABLES
 - hyperb:init-hook renamed to hyperbole-init-hook, a more standard name.
 See the GNU Hyperbole Manual for its usage.
 ===========================================================================
 *				 V5.09
 ===========================================================================
 FRAMES
 - The Window-Configuration menu (minibuffer Win/ menu) now stores and
 restores frame-specific window configurations, allowing each frame to be
 dedicated to different types of work or groups of buffers.
 INSTALLATION
 - Hyperbole initialization is greatly simplified. A single "~/.emacs"
 line of the form:
 (require 'hyperbole (expand-file-name "hyperbole" "/")
 loads and initializes Hyperbole. Please change your site-wide or
 personal initialization to this. (No more setting of hyperb:dir and
 load-path nor copying of hsite-ex.el to hsite.el is required; Hyperbole
 does this for you).
 KEYS
 - A new Customize Menu option, Toggle-Smart-Key-Debug (minibuffer menu
 Cust/Debug-Toggle, {C-h h c d}), displays a message in the minibuffer
 every time the Action Key or Assist Key is pressed, showing the context
 of the press and its associated action, allowing you to easily see
 what is happening whenever you use a Smart Key.
 These messages are all prefaced with "(HyDebug)" and are accumulated in
 the *Messages* buffer for later viewing.
 - Smart Keys work in any completion buffer now, e.g. the ido.el completion
 buffer.
 - Horizontal and vertical mouse drags within a single window, that do not
 begin on a thing delimiter, are now simpler and more consistent. An
 Action Key drag splits the window either below (horizontal drag) or
 side-by-side (vertical drag). An Assist Key drag deletes the window.
 - Hyperbole no longer uses the right mouse button, so it is free for popup menus.
 The Assist Mouse Key is always on the Shift-Right mouse button as well as
 on a C-u prefix to the Action Mouse Key.
 - A new setting, `hmouse-middle-flag', when set to t (true) before Hyperbole
 is loaded adds the middle mouse key as an Action Key. InfoDock does this
 by default.
 - ibuffer-mode, the dired-like menu listing for buffers, is now supported
 by the Smart Keys; it behaves similarly to that of Buffer-menu-mode.
 - Xref item listing mode is now supported by the Smart Keys; The Action
 Key displays an xref file line or just a file containing an xref.
 The Assist Key displays the same but leaves point in the listing buffer.
 Xref is a built-in Emacs package that displays definitions and
 cross-references of identifier strings. It is similar to etags, but
 more general. 
 KOUTLINER
 - Now compatible with the latest version of outline.el (using invisible overlays).
 - All menus for the Hyperbole auto-numbered outliner, called the Koutliner,
 now begin with 'K'. Some used to start with 'O'. To edit the example
 Koutline, use {C-h h k e}.
 - {C-c C-a} - Show-all, expand all cells in the current view.
 {C-c C-o} - Overview, show only first line of outline cells.
 {C-c C-t} - Top-level, hide all cells below level 1 and show
 only the first line of each level 1 cell.
 By default, these commands no longer affect the display of blank lines
 between cells. But if given a prefix argument, they toggle blank
 lines display for quick view changes.
 - Values of `user-mail-address' or `message-user-fqdn' are now
 used to set the creator and modifier names in Koutline cells.
 MAIL LISTS
 - The menu item that composes mail to the bug-hyperbole mail list now
 includes any (HyDebug) messages output when the Hyperbole configuration
 option, hkey-debug is enabled (via the Customize Menu or via
 {C-h h c d}).
 ===========================================================================
 *				 V5.08
 ===========================================================================
 DOCUMENTATION
 - Added web version of the Hyperbole Manual.
 HYPERLINKS
 - Action Key presses on Texinfo menu items and @node item references now
 display the associated Texinfo node. @code and @var references to Emacs
 Lisp identifiers now show the documentation for the identifiers. As
 before, cross-references and file includes show the referenced items;
 keyboard key sequences invoke their associated bindings.
 - Action Key press on an Emacs push button activates the button. An Assist
 Key press shows help for the button.
 KEYS
 - Delimited things, including lists, comments, strings, arrays/vectors,
 sets, functions and markup pair tags (e.g. ), may now be
 selected, copied or moved with the Action and Assist mouse and keyboard
 keys whenever point is on the first character of the starting or ending
 delimiter. For strings and comments, point must be on the first line.
 - New {C-c .} binding that jumps between the start and end delimiters of
 delimited things. Try it on matching markup tag pairs in HTML and SGML
 modes. If point is not immediately before or after a delimiter, this
 generally does nothing.
 - New {C-c RET} binding selects bigger and bigger syntactical units within
 a buffer with each successive invocation. Double clicks of the left
 mouse button do the same thing. Try it, you'll like it.
 ===========================================================================
 *			 V5.07
 ===========================================================================
 EMACS VERSIONS
 - Support for the latest pre-releases of Emacs 25 and new versions of
 XEmacs.
 HYPERLINKS
 - URL handling updated along with customization menus to support most
 popular web browsers in use.
 - Action Key on a mailto: URI starts composing mail to that address.
 - When testing file formats/suffixes for an external viewer in
 which to display the file, as a fallback, a MIME system mailcap
 file is used to find additional possible viewers. See
 "http://www.wikiwand.com/en/Mailcap" for information on mailcap files.
 - Jump to JavaScript identifier definitions.
 - History, {C-h h h}, now restores full multi-window and multi-frame display
 configurations (within a single Emacs session), rather than just returning
 to a prior location in a buffer.
 - Type {q} in a Hyperbole Help buffer hide that buffer and return to your prior
 location.
 KEYS
 - By default, Hyperbole now removes any mode-specific, local key
 bindings that conflict with the global Smart Key bindings
 (typically {Meta-Return}). Use the Customize/Toggle-Override-Local-Keys
 to disable (or re-enable) this feature.
 KOUTLINER
 - When running under InfoDock, its Go and Options menus now appear within
 the Koutliner menu.
 - With a prefix argument, Koutlines are exported to HTML with soft newlines
 rather than hard newlines, so text will flow based on browser window size.
 This option will remove line-by-line formatting within a cell, however.
 MENUS
 - New Find menu which can reduce a buffer to just matching or non-matching
 lines, run the 'grep' or 'fgrep' utilities on a file directory tree, or
 list matching lines in the current buffer or across all buffers with
 attached files.
 - Renamed Customization menu to Customize.
 - New Customize/Change-Key-Bindings menu lets you rebind any Hyperbole
 keys for your current emacs session.
 ------- VERY OLD CHANGES BELOW HERE -------
 ===========================================================================
 *				 V4.18
 ===========================================================================
 ACTION AND ASSIST KEYS
 - Default Action Key action is to signal an error (rather than display
 the Hyperbole minibuffer menu) since it was too easy to confuse new
 users with this behavior. More skilled users can set
 `action-key-default-function' to do what they would like.
 - Fixed bug that caused proportional scrolling to not be the default when 
 the Action Key is pressed at the end of a line.
 KOUTLINER
 - Fixed filling behavior when used with the `filladapt' package under
 InfoDock.
 - Improved text file importation process.
 ===========================================================================
 *				 V4.17
 ===========================================================================
 IMPLICIT BUTTON TYPES
 - The Action Key now recognizes existing local files without any
 delimiters (aside from whitespace). This allows you to display files
 from directory listings or virtually anywhere within documents.
 Relative pathnames are resolved relative to the directory associated
 with the current buffer.
 - Extended find-file commands to handle http (www) and ftp URLs
 if the efs package is available and the
 Hyperbole/Customization/Find-File-Accepts-URLs is enabled.
 See "(hyperbole)Using URLs with Find-File" for details.
 - Improved display of special files via external viewers.
 - Added support for jumping to the source of errors from the Weblint Perl
 package.
 - The `make' error implicit button type now accounts for movement from
 one directory to another within make output so that the right source
 file is selected.
 CONTACT MANAGER
 - Default personal rolo file renamed to "~/.rolo.otl" ("C:_rolo.otl" on
 Windows). When the contact manager is loaded, it will automatically
 prompt you to rename this file when necessary. You should rename it
 but if you choose not to the old rolo file will be searched.
 - Added `rolo-display-format-function' which can be used to customize the
 display of rolo search matches. See the Info manual section,
 "(hyperbole)HyRolo Settings" for details. 
 KOUTLINER
 - Fixed interaction problem with the standard editor autofilling
 functions.
 ===========================================================================
 *				 V4.16
 ===========================================================================
 This release fixes a number of small issues with tags table handling under
 GNU Emacs and Koutline export to HTML.
 ACTION AND ASSIST KEYS
 - Added support for selection of function names from a buffer in
 fume-list-mode created by the func-menu.el package.
 ===========================================================================
 *				 V4.15
 ===========================================================================
 ACTION AND ASSIST KEYS
 - Added support for the pop-tag-mark command {M-*} available in some
 editors to move back to prior code locations displayed from clicking
 the Action Key on an identifier or other cross-reference. {C-u M-*}
 moves forward (instead of back) through this location history list.
 - Added support for multiple TAGS file searches when looking for an
 identifier definition from an Action Key click. Each TAG file found in 
 an ancestor directory of the current directory is searched until an
 exact match is found (otherwise, an error message is displayed).
 This works only under newer editors whose tag support includes multiple
 tag file searching.
 - Added support for Action Key clicks on identifiers displayed in
 `help-mode' by the emacs Lisp variable and function documentation
 command under newer editor versions.
 - On case-insensitive OSes, automatically load OO-Browser Environment
 files named `oobr' instead of `OOBR'.
 ===========================================================================
 *				 V4.11-4.14
 ===========================================================================
 CONTACT MANAGER
 - Support for editing entries found from logical expression queries.
 EMACS VERSIONS
 - Support for XEmacs version 20 and above.
 - Support for NT Emacs and XEmacs on NT.
 KOUTLINER
 - New Demote, Promote, Tab-Key-Inserts-Spaces and Tab-Key-Tabs-Over
 items added to the Edit menu.
 - Hyperbole/Koutliner menu items are now deactivated when the
 current buffer is not a Koutline.
 - Meta-Backspace under XEmacs now does the right thing (deletes a word
 backwards by default).
 HYPERLINKS
 - An entry in (hpath:get-external-display-alist) used to externally display
 special file types may now contain a list of executables, the first of 
 which is found on a system is used to do the display. The executable
 to use is recomputed each time a file is displayed to account for any
 changes in executables found in the search path.
 - Abbreviated URLs of the form www.domain.com are now properly
 recognized (there was a bug in earlier versions).
 - Added support for CRLF line endings used under Microsoft OSes.
 - Improved button highlighting initialization.
 IMPLICIT BUTTON TYPES
 - New type, gnus-push-button, for clicking on or pressing buttons
 embedded in GNUS articles, e.g. to collapse and expand signatures.
 - Improved debugger stack backtrace recognition and source line jumping.
 - MANIFEST.suffix files are now recognized and treated like files named
 MANIFEST (allowing you to browse the contents by pressing the Action
 on entries within the file).
 - URL browsing now uses the `browse-url-browser-function' variable to
 determine which web browser to invoke. The menus have been converted
 to use this variable as well. Hyperbole will automatically read
 old settings of `action-key-url-function' and convert to this new
 standard.
 Additionally the Grail (Python-based) and Lynx (text-based) browsers
 have been added to the Customization menu.
 - Added initial point-and-click Python support.
 MOUSE SUPPORT
 - Better support for 2-button mice.
 ===========================================================================
 *				 V4.10
 ===========================================================================
 ACTION AND ASSIST KEYS
 - When a region is active within your editor, the Action Mouse Key pastes
 the region within the window where it is clicked.
 - Better handling of selection of C++ `operator' methods.
 - An Action Key press on an entry in an OO-Browser OOBR-FTR feature tag
 file jumps to the definition of the entry within the source code.
 - Greatly improved selection of minibuffer arguments from completion
 buffers with the Action Key.
 - An Action Key click on any filename with OOBR (case-sensitive) within
 its name will now load the file as an OO-Browser Environment and
 display its classes within the OO-Browser. (This used to work only for
 Files whose exact name was OOBR or OOBR-FTR.)
 - An Action Key press on a file whose suffix is .rdb now loads the file
 as an InfoDock RDB in-memory relational database file. The InfoDock
 RDB package is available separately as part of InfoDock.
 - Added support for sending a URL to another web browser with an Action
 Key click when in a W3 web browser buffer. Eliminated support for the
 old Mosaic browser.
 IMPLICIT BUTTON TYPES
 - New type, id-cflow, used to browse C code call trees produced by
 InfoDock's "id-cflow.el" module. See that file for details if you have
 InfoDock.
 - grep-msg type that displays source lines associated with grep messages
 and compiler error messages now supports Microsoft JVC error messages.
 - Improved URL identification, including support for terse URLs that
 contain no protocol prefix, e.g. www.gnu.org.
 CONTACT MANAGER
 - The Rolo/Search-for-String (rolo-fgrep) command can now do logical
 searches using prefix logical expressions surrounded by parentheses:
 (or string1 string2)
 (xor string1 (and string2 string3)) ;; xor is exclusive-or
 (not string1)
 - Accelerated location of the alphabetized insertion point for a new
 contact entry by 3-fold.
 KOUTLINER
 - Koutlines can now be converted to nice looking HTML documents with one
 command, `kexport:html', on the menus as Koutline/Export-to-HTML.
 Relative identifiers, hyperlinks and idstamps are all properly exported
 to the HTML document. Other cell attributes are not yet exported.
 - Autonumber labels in new outlines are now terminated with a "."
 rather than a space by default to better delimit labels.
 - Added kotl-mode:tab-flag which can allow easy insertion of many tab
 characters and can make the TAB key demote cells only when point is at
 the beginning of the cell.
 - Added support for indenting regions within a cell via the
 kotl-mode:indent-region command.
 - New menu item, Import-to-Koutline, for importing star-delimited
 outlines, other koutlines and Augment-system post-numbered outlines
 (ignore this if you don't know what the Augment system is).
 EMACS VERSIONS
 - Support for GNU Emacs version 20 and above.
 DOCUMENTATION
 - The Hyperbole online manual can now be browsed automatically from
 within the Hyperbole distribution without the need to install it
 separately within the editor.
 ===========================================================================
 *				V4.024-V4.027
 ===========================================================================
 DOCUMENTATION
 - Rewrote the Hyperbole manual for clarity and ease of reading. Added
 a number of images.
 ACTION AND ASSIST KEYS
 - Improved recognition of local file URLs.
 - Disabled the {C-c t} key which usually switches between Hyperbole
 and personal mouse settings since this is too easy for novices to
 press and then not know why their mouse keys have changed.
 - Emacs Lisp filenames without any pathname information are
 now properly displayed when the Action Key is depressed over
 them and they are delimited by quotes.
 - Action Key press over .dvi file names now invoke the Xdvi previewer
 by default.
 - Action Key press on Fortran90 identifiers now jump to their
 definitions if a TAGS table has been built.
 - Action Key press in a Texinfo file on an @xref, @pxref or @ref
 keyword displays the associated node within the Texinfo file. An
 Action Key press within the braces of the cross-reference displays the
 online Info node associated with the cross-reference, if the Info
 manual has already been installed.
 - Image files may be displayed within the editor if the editor supports
 this and image-mode is available.
 - The new variable, hypb:mail-address-mode-list, determines the major modes
 in which Action Key presses on  mail addresses start
 composing mail to that address.
 - Action Key presses on lines in ctags files (tags) or etags files (TAGS)
 jump to either the pathname on the line or the definition of the tag
 on the current line.
 - Eliminated trailing commas from inclusion in URLs sent to a browser.
 KOUTLINER
 - Improved paragraph filling even more under InfoDock.
 - Eliminated local {M-BS} binding if it is already bound
 when the Koutliner is invoked.
 - Added +V interactive reading extension for reading a Koutliner View
 Spec within a Lisp command.
 - Added Label-Type/Set-Label-Separator menu item for changing the
 separator between Koutline cell numbers and their body text.
 - Added an `Example' menu item to the Koutliner menu to simplify
 interactive editing of the EXAMPLE.kotl file.
 BUTTONS
 - Info-directory-list setting is now recognized during
 link-to-Info-node button creations.
 MENUS
 - Added an item to add and remove the Hyperbole Menu from the menubar.
 MAIL READERS
 - Updated VM interface for version 6.19.
 ===========================================================================
 *				 V4.023
 ===========================================================================
 ACTION AND ASSIST KEYS
 - Action Key clicks on HTTP URLs use the Emacs internal web browser
 if not running under a window system.
 CONTACT MANAGER
 - Date stamps are added to each rolo entry when created and updated
 when edited. This feature can be toggled on and off with: M-x
 rolo-toggle-datestamps RET, or via the Toggle-Rolo-Dates menu
 item on the Customization menu.
 - wrolo-add-hook is called after a new entry is added.
 wrolo-edit-hook is called after an entry is displayed for editing.
 ===========================================================================
 *				 V4.02
 ===========================================================================
 ACTION AND ASSIST KEYS
 - Support for new ID-edit mode (a part of InfoDock) that allows rapid,
 cutting, copying and yanking of regions plus fast display management.
 In this mode, the Action and Assist keys yank the previously selected
 region at point.
 - An Action Key press on a Java identifier jumps to its definition
 (if an associated TAGS file or OO-Browser environment exists). The
 same is true for an `@see' cross-reference within a Java comment. The
 variable, `smart-java-package-path,' determines where Java
 package source can be found when the OO-Browser is not in use.
 - An Action Key press on a double or single quoted Emacs Lisp filename
 (without any path) displays the file by looking for it among the
 directories in the variable, `load-path'.
 - If the Action Key is pressed on a function identifier that is defined
 in the same buffer as the reference clicked upon, it will now be
 displayed faster, since the func-menu package will be used. The
 reference identifier will also flash when pressed, if the display
 device supports this.
 EMACS VERSIONS
 - Further support for MS-DOS, Windows NT Emacs, and Win-Emacs.
 - Fixed configuration setup problem when running Emacs on a dumb
 terminal.
 KOUTLINER
 - XEmacs 19.14 and above: Fixed display of current viewspec in the
 modeline to accommodate modeline extents (specialized modeline regions).
 This eliminated an error that occurred when reading in an Koutline file.
 - Fixed bug that prevented installation of Koutliner mode-specific
 menubar when running InfoDock.
 MENUS
 - New Hyperbole/About menu item added. In minibuffer menus, this item is
 found under the Doc/ menu.
 - New window system menu, Hyperbole/Customization (and minibuffer menu,
 Cust/) added to set Hyperbole options, including where Hyperbole link
 referents are displayed, where URLs are displayed and whether to use
 proportional or windowful scrolling when a Smart Key is pressed at the
 end of a line.
 - The default setting of where Hyperbole link references are displayed
 may be set in "hsite.el" via the variable, `hpath:display-where'
 (after Hyperbole has been installed using `make install').
 See its documentation for detail.
 - The Hyperbole/Global-Button menu now includes a menu item that will
 activate each existing global button. The Hyperbole/Explicit-Button
 menu does the same thing for explicit buttons in the current buffer.
 CONTACT MANAGER
 - Rolo-edit, bound to {e} in the rolo match buffer, now works properly
 if the rolo is loaded before the rest of the Hyperbole system.
 ===========================================================================
 *			 V4.00 and V4.01
 ===========================================================================
 ACTION AND ASSIST KEYS
 - New variable, action-key-url-function, sets the function used to
 display URLs which are activated as implicit buttons with the Action
 Key.
 - Action or Assist Key presses at the end of a line now scroll
 proportionally, by default. See the documentation for the variable,
 smart-scroll-proportional, and the Smart Scrolling section of the
 Hyperbole DEMO file, for more information.
 - Fixed bug that prevented browsing Info files in dired with the Action
 Key.
 BUTTON TYPES
 - "hsys-w3.el" is now automatically loaded so that the Action Key can
 follow URLs by default. It defines the implicit button type, www-url. 
 - New implicit button type, text-toc, makes table of contents entries in
 README files jump to the associated section of the file. Try it with
 this file once you have loaded the current version of Hyperbole.
 DOCUMENTATION
 - A lot of work has gone into reorganizing and rewriting the Hyperbole
 manual to improve its readability and completeness. A full chapter on
 the Koutliner has been added. Please take some time to read the parts
 of interest to you and send your feedback on what is good and what is
 not to the mail list, .
 EMACS VERSIONS
 - MS-DOS and Windows NT Emacs 19 or Win-Emacs: Made Hyperbole work under
 all of these PC Emacs versions.
 - Emacs 19: Fixed bug that prevented Action Key selection of minibuffer
 menu items.
 - Emacs 19: Hyperbole menubar menus are now properly displayed.
 - Emacs 19: Action Key press on a filename that has a .info suffix
 displays the Top node for that info file in the Info browser.
 KOUTLINER
 - You can now view and edit koutlines with blank lines between cells
 turned off. {C-c b} now toggles between showing or hiding blank lines.
 - Minibuffer menu item Otl/Below renamed to Otl/Downto so could add
 Otl/Blanks which toggles blank lines on and off.
 - {C-c C-o} which displays one line per cell, for an overview, now also
 turns off blank lines.
 - {C-c C-i} adds an attribute to the current cell. It changes the
 attribute's value if it already exists. Completion on existing
 attribute names from the cell is provided.
 - {C-c h}, which displays cell attributes, when given "0" as the cell id
 now displays the zero cell's attributes in addition to any other
 attributes shown.
 - By default, the Koutliner separates labels from cell contents by
 two spaces. If you want to change the separator for the current
 outline, use {C-c M-l}. {C-u C-c M-l} will additionally change
 the default separator value used when new outlines are created.
 - If you invoke {M-x kotl-mode RET} on a non-read-only, non-koutline
 buffer, it converts each paragraph in the buffer into a level 1 cell,
 and thereby creates a koutline buffer. The conversion uses the
 buffer-specific variable, `paragraph-start' to determine the paragraphs
 in the buffer.
 - If you save a koutline to a file whose name does not end in .kotl,
 e.g. with {C-x C-w} (kfile:write), it will still be treated as a valid
 koutline when you read it in again. You can create a koutline file
 without the standard suffix via {M-x kfile:find RET} or by converting a
 buffer to a koutline via {M-x kotl-mode RET}.
 - Each koutline now maintains a current view setting that is saved with
 the outline and restored when it is first displayed. View settings
 include: show/hide blank lines, show a fixed number of lines per cell,
 show a fixed number of levels in the outline, show all lines and cells,
 show/hide ellipses after truncated outline entries, set cell numbering
 (label) types.
 - View settings are controlled by single character codes called view
 specs. The current view spec setting for a koutline appears in the
 modeline following the name of the outline. The current view spec
 setting may be changed interactively with {C-c C-v}.
 See <${hyperb:dir}/kotl/example.kotl, 2b16=048> for details on valid
 view specs.
 - Minibuffer menu item Otl/View changed to Otl/Vspec to set a view
 specification. Use {C-x C-r} to view a Koutline in read-only mode.
 - Added View menu to Koutliner popup and pulldown menus. Moved
 view-related tree operations from Tree menu to View menu.
 - Fixed importation of star outline and Augment-style files.
 - The elements of a another buffer or file may be inserted into a
 koutline as a set of cells by using the {C-x i} command. When prompted,
 you may use a buffer name or file name from which to insert.
 The cells will be inserted as the successors of the current cell unless
 {C-u C-x i} is used and then they are inserted as the initial children
 of the current cell.
 See the documentation for the variables, kimport:mode-alist and
 kimport:suffix-alist, for information on mode and suffix-specific
 conversions performed on files before they are inserted.
 Use {M-x kimport:insert-file-contents RET} to insert the entire
 contents of a file into the current cell at the location of point.
 - {M-x kimport:file RET} will prompt for a file and a new koutline file
 to create and will insert the elements of the file in the new outline.
 (You can also use buffer or buffer names as arguments instead of file
 names.) See the documentation for the variables, kimport:mode-alist
 and kimport:suffix-alist, for information on how the importation type
 is determined.
 - {C-c +} appends the contents of one cell to the end of another. Added
 this as Append-Cell to popup and pulldown menus.
 - {M-w}, copy-region, now works properly in read-only outlines.
 CONTACT MANAGER
 - {e} within a rolo match buffer edits the associated entry within your
 rolo source file. Fixed bug that caused {e} to fail when entries
 are collapsed within the match buffer.
 - {C-h h r e}, rolo-edit, just displays your personal rolo file if you
 hit {RET} without specifying an entry name to edit.
 - {m} within a rolo match buffer composes mail to the the e-mail
 address at point or the first address following point. Also added as
 Rolo/Mail minibuffer menu item and Rolo/Mail-to-Address for window
 system menus.
 - New variable, wrolo-yank-reformat-function, permits reformatting of an
 entry yanked into the current buffer with {C-h h r y}, rolo-yank.
 WINDOW CONFIGURATIONS 
 - The minibuffer menu items, Win/PopRing and Win/YankRing now redisplay
 the Win menu after performing their actions. This allows you to yank
 or pop window configurations repeatedly until you get to the one you
 want.
 

AltStyle によって変換されたページ (->オリジナル) /