2024-03-10  Bob Weiner  <rsw@gnu.org>

* hversion.el:
  hyperbole.el: Release version 9.0.1

* Makefile (version): Add version check for file HY-ANNOUNCE.

* hload-path.el (make-directory-autoloads): Remove 'ext:' since this is an Emacs
    built-in library available in version 28 and above.

* hvm.el: Remove from Hyperbole as VM (the mail reader) is a very old package that is
    not available in normal package distributions today.

* hsys-org.el (hsys-org-search-internal-link-p,
               hsys-org-search-radio-target-link-p):
  hactypes.el (link-to-org-id-marker): Conditionalize call of 'org-fold-show-context'
    on whether 'org-fold' feature exists.

2024-03-08  Mats Lidell  <matsl@gnu.org>

* test/hmouse-drv-tests.el (hmouse-drv--hmouse-choose-link-and-referent-windows--two-windows-same-frame)
    (hmouse-drv--hmouse-choose-link-and-referent-windows--two-windows-different-frame):
    Add tests for choosing the windows non interactively.

* hmouse-drv.el (hmouse-choose-link-and-referent-windows): Only pick next
    window from the selected frame when there are two windows in the frame.

2024-03-04  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (elink): Change "elink_" arg to "" so button lbl-key is
    set properly.
              (glink): Change "glink_" arg to "" so button lbl-key is
    set properly.
              (ilink): Change "ilink_" arg to "" so button lbl-key is
    set properly.
  hactypes.el (link-to-ibut): 'hbut:current may be the prior ilink that
    invoked this action for the ibut at point; before activating the
    button, call 'ibut:at-p' to ensure attributes are properly set.  Fixes
    ilink bug.
  hbut.el (ibut:to-text): Rewrite to assume 'hbut:current has been set
    by the caller.

2024-03-03  Bob Weiner  <rsw@gnu.org>

* hbut.el (hbut:act): If arg 'hbut' is given as a symbol, ensure its properties
    are copied to 'hbut:current so subcalls can reference them.

* hactypes.el (link-to-ibut): Fix to use 'ibut:to-text' instead of 'ibut:to'.

* hbut.el (ibut:label-start, ibut:label-end, ibut:label-regexp,
           ibut:label-instances-regexp, ibut:next-occurrence,
	   ibut:previous-occurrence): Fix doc strings to refer to ibut name.
          (ibut:label-instances-regexp): Rename to 'ibut:name-instances-regexp'.
	  (ibut:label-regexp): Rename to 'ibut:name-regexp'.

* hyrolo.el (hyrolo-install-markdown-mode): Centralize install of this package.
            (hyrolo-install-markdown-mode): Add 'package-refresh-contents'
    call so CI/CD tests pass when installing this.

* HY-NEWS: Updated with Hyperbole changes since 2024-01-07.

* hyrolo.el (hyrolo-any-file-type-problem-p): Use 'nongnu' archive instead
    of 'melpa' for 'markdown-mode' package.

2024-03-02  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el: Create temp files in tests without setting
    temporary-file-directory. It can interfere with native code compilation.

2024-02-27  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el (kotl-mode-tests--gen-kotl-outline)
    (kotl-mode-tests--func, kotl-mode-tests--sanity-check-function-list)
    (kotl-mode--sanity-check-function)
    (kotl-mode--sanity-check-key-bound-commands): Sanity check kotl-mode
    user level commands.

2024-02-25  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el (hyrolo-tests--mail-to)
    (hyrolo-tests--location-movement): More hyrolo tests.

2024-02-25  Bob Weiner  <rsw@gnu.org>

* FAST-DEMO: Add <hyperbole-run-tests hyrolo> ERT multiple test run example.

* hui.el (hui:ibut-link-directly): Fix doc to say 'Action Key' instead of 'Assist Key'
            and on error to go to Action Key depress buffer, not Assist one.
         (hui:ebut-link-directly): Fix doc to say 'Assist Key' instead of 'Action Key'.
            and on error to go to Assist Key depress buffer, not Action one.

2024-02-24  Bob Weiner  <rsw@gnu.org>

* Makefile (lint): Rename 'package-lint' target to 'lint' and doc in comments.

* hyrolo.el (hyrolo-isearch-for-regexp): Update to use minibuffer hook
    instead of unread-command-events since that was not working.  Including
    a newline in the regexp which 'hyrolo-hdr-and-entry-regexp' does, may
    also cause the 'hyrolo-locate' command bound to {l} to fail.

* man/hyperbole.texi (HyRolo Searching): Update this section with doc
    on auto-expansion and how to hide entries again.

* MANIFEST (HYPERBOLE INTERNALS):
  Makefile (HYPERBOLE_FILES): Add .mailmap.

2024-02-22  Mats Lidell  <matsl@gnu.org>

* test/MANIFEST: Add hywconfig-test.el.

2024-02-21  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el (hyrolo-tests--hyrolo-reveal-mode-kotl-file): Add
    test for reveal mode with kotl file.

* Makefile (HYPERBOLE_FILES): Do not require README. It has been removed.
    (website, release, git-tag-release, ftp): Add confirmation of
    successful operation.

==============================================================================
V9.0.1 changes ^^^^:
==============================================================================

2024-02-19  Mats Lidell  <matsl@gnu.org>

* .mailmap: Add git .mailmap for mapping name and emails for commit authors.

2024-02-19  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-show-post-command): Add.
            (hyrolo-outline-minor-mode): Toggle use of 'hyrolo-show-post-command'.

* hyrolo.el (hyrolo-mode): Set these two missing variables:
    'hyrolo-entry-group-number' and 'hyrolo-entry-trailing-space-group-number'.
            (hyrolo-outline-level): Fix to use the length of match to
    'hyrolo-entry-group-number'.
            (hyrolo-min-matched-level): Fix 'hyrolo-top-level'.  First
    'outline-regexp' match was ignored when computing min-level; fix to include.
  test/hyrolo-tests.el (hyrolo-tests--top-level-outline-for-all-file-types):
    Fix kotl-mode match string to include only the top-level entry line.

2024-02-18  Mats Lidell  <matsl@gnu.org>

* Fix flycheck/flymake warnings.

2024-02-18  Bob Weiner  <rsw@gnu.org>

* test/hyrolo-tests.el (hyrolo-demo-show-overview,
                        hyrolo-tests--hyrolo-reveal-mode): ): Fix to handle
    that {TAB} now auto-expands the whole subtree of the matching entry.

* hyrolo.el (hyrolo-next-match, hyrolo-previous-match): Temporarily add
    'hyrolo-outline-show-subtree' call.
            (hyrolo-markdown-mode, hyrolo-outline-mode, hyrolo-org-mode):
    Change all `reveal-mode' calls to new `hyrolo-reveal-mode', which is
    temporarily a no-op until its functionality can be debugged in *HyRolo*
    buffers.

2024-02-12  Bob Weiner  <rsw@gnu.org>

* hsys-org.el (hsys-org-fix-version): Reorder to have `org-macs' near front.

* hbut.el (hbut:act-label): Add to match same func for ebuts and ibuts.

2024-02-12  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el (hyrolo-tests--modify-test-data): Helper for
    modifying org test data for outline and markdown files.
    (hyrolo-tests--outline-content-otl)
    (hyrolo-tests--outline-content-md): Use hyrolo-tests--modify-test-data.
    (hyrolo-tests---org-expected-outline-for-top-level)
    (hyrolo-tests---org-expected-outline-for-overview): Add expected
    outline for org test data.
    (hyrolo-tests--top-level-outline-for-all-file-types): Test top level outline.
    (hyrolo-tests--overview-outline-for-all-file-types): Test overview outline.

2024-02-11  Mats Lidell  <matsl@gnu.org>

* test/hbut-tests.el (hbut-tests--ebut-act-calls-hbut-act)
    (hbut-tests--ibut-act-calls-hbut-act): Add test for new act functions
    with error cases.

* hui-menu.el (hui-menu-explicit-buttons): Use ebut:act-label.

* hbut.el (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.  Allow calling only with an ebut or ibut respectively.  If
    falling back on 'hbut:current', check that it is of the same type as the
    call.

2024-02-08  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el: Make hide tests more forgiving about hiding
    section headers. Allows test cases to be used with different versions
    of org.
    Expand test verification strings so it is easier to view the expected
    outcome.

2024-02-05  Bob Weiner  <rsw@gnu.org>

* Makefile (README.md.html): Rewrote to use md_toc and pandoc programs for greater
    reliability.
           (README.toc.md, README.md.html): Add to git repo for package distribution.
* MANIFEST, Makefile: Add README.toc.md and remove README.

2024-02-04  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Hyperbole Overview): Update summary to include all newly
    supported file formats.
                     (HyRolo Concepts): Remove comment that HyRolo entries can begin
    with optional whitespace; the code does not support this.

* hyrolo.el (hyrolo-add): Ensure when matching for initial # characters, do not match
    to those later in the line.
            (hyrolo-markdown-mode): Fix to match only to lines starting with # as an
    entry prefix; don't use `markdown-regex-header' since that allows '- ' as an
    entry prefix.

* hsys-org.el (hsys-org--set-fold-style): Add and use in 'hsys-org-fix-version'.

2024-02-03  Mats Lidell  <matsl@gnu.org>

* test/demo-tests.el (fast-demo-key-series-shell-apropos): Skip test if
    apropos command is not available. Useful for running test-all using
    silex docker-emacs images.

2024-02-03  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-move-to-entry-end): Add doc string; add 'condition-case' in
    case of 'outline-before-first-heading' error (see advice from "org-compat.el").
  hui-mouse.el (smart-outline-to-entry-end): Reverse parts of if clause; add
    'condition-case' in case of 'outline-before-first-heading' error (see advice
    from "org-compat.el").
    (hyrolo-cache-get-major-mode-from-pos): Fix error msg to reflect >= not >.

2024-02-01  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el (hyrolo-tests--hyrolo-section-header): Helper that
    returns a HyRolo section header.
    (hyrolo-tests--hyrolo-reveal-mode): Add reveal mode test.

2024-02-01  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-hdr-move-after-p): Updated to skip over trailing empty lines.
* test/hyrolo-tests.el (hyrolo-demo-no-following-same-level-heading,
                        hyrolo-demo-move-between-entries-on-same-level): No longer
    need to go to next record after moving past a header followed by a blank line.

2024-01-31  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-move-to-entry-end): Handle potential error raised if called
    with point before the first entry.

2024-01-30  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el (hyrolo-tests--outline-as-string): Add helper that
    returns how the buffer looks to the eye.
    (hyrolo-tests--outline-hide-other)
    (hyrolo-tests--outline-hide-sublevels)
    (hyrolo-tests--hyrolo-outline-show-subtree): Add tests for hyrolo
    outline show and hide commands.

2024-01-28  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-org-outline-level): Fix to not move point; was causing errors
    when moving forward to next sibling.
            (hyrolo-org-outline-level): Remove and use 'hyrolo-outline-level' instead
    to centralize any issues.

* hmouse-tag.el (find-ert-test-regexp): Change ert test definition lookups to use
    the path stored in each test symbol's 'ert--test' property by changing from
    using the 'xref-find-definitions' in 'find-function-regexp-alist' to using
    this newly defined regexp instead.

* hyrolo.el (hyrolo-reveal-open-new-overlays, hyrolo-reveal-close-old-overlays):
    Wrap 'funcall' in 'hyrolo-funcall-match' so uses HyRolo outline settings.
            (hyrolo-markdown-mode): Add missing (require 'markdown-mode).
	    (hyrolo-show-levels): Remove call to 'hyrolo-outline-hide-subtree'
    to ensure reveal-mode does not expand current entry, since if point is within
    file header this displays the first entry on the final visible line of the file
    header rather than the next line.  Callers of this function should instead set
    'hyrolo-reveal-ignore-this-command' to t (which was already being done).
            (hyrolo-outline-hide-subtree, hyrolo-outline-hide-body)
             hyrolo-outline-hide-entry, hyrolo-outline-hide-leaves,
             hyrolo-outline-hide-other, hyrolo-outline-hide-sublevels,
             hyrolo-outline-show-branches, hyrolo-outline-show-children,
             hyrolo-outline-show-entry, hyrolo-outline-show-subtree): Add
    '(setq hyrolo-reveal-ignore-this-command t)' to these hide/show commands.
            (hyrolo-funcall-match): Fix edge-case of bob and eob off by one
    error in 'hyrolo-cache-set-major-mode' argument.
            (hyrolo-boolean-only-flag): Declare this so 'boundp' test passes.

2024-01-27  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-google-contacts-insert-data): Remove local let of (child nil).
            (hyrolo-edit, hyrolo-add): Call '(set-auto-mode t)' to change from any
    HyRolo-specific major-mode for quick reading to the file's normal mode for editing.
            (hyrolo--funcall-with-outline-regexp): Add to avoid setting 'outline-regexp'
    with a 'let' and call from 'hyrolo-map-matches' and 'hyrolo-funcall-match'.

* hyrolo.el (hyrolo-auto-mode-alist): Add new variable to control major modes used
    by files read in for HyRolo searches.
            (hyrolo-find-file-noselect): Remove Org mode-specific logic and instead
    utilize 'hyrolo-auto-mode-alist'.
            (hyrolo-outline-mode): Add for use with .ou?tl files with HyRolo.
            (hyrolo-min-matched-level): Ensure never returns less than 1.
            (hyrolo--cache-major-mode): Use `hyrolo-auto-mode-alist' to override
    the default `major-mode' used on file entry matches within the *HyRolo* buffer.
  hypb.el (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.el (hyrolo-any-file-type-problem-p): Rename call here of above function.
  hyrolo-logic.el (hyrolo-logic): Change call from 'hyrolo-find-file' to
    'hyrolo-find-file-noselect' to enable use of 'hyrolo-auto-mode-alist'.

2024-01-23  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-reveal-ignore-this-command, hyrolo-reveal-open-new-overlays,
             hyrolo-reveal-close-old-overlays, reveal-post-command):
    Enable Hyperbole extended version of 'reveal-mode' that supports 'org-fold'.

2024-01-21  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:add-to-invisibility-spec): Add and use wherever
    'add-to-invisbility-spec' was.

* hload-path.el (auto-mode-alist):
  hyrolo.el (hyrolo-file-suffix-regexp): Allow for suffix .outl to invoke outline
    mode in addition to .otl.

* hmouse-tag.el (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'.
  hsys-xref.el (hsys-xref-definitions): Use above flag to fix improper cyclic
    calling of 'smart-emacs-lisp-mode-p'; visible as very slow Elisp tag finding
    in ChangeLog mode.

* hsys-org.el (hsys-org-log-and-fix-version): Add to log state when fixing a mixed
    Org mode installation.
  test/hy-test-dependencies.el: Remove require of 'pp' library and move logging
    into "hsys-org.el".

* hyrolo.el (hyrolo-map-matches, hyrolo-funcall-match): Move 'sit-for' to the end
    of the function to ensure happens last.

* hui-window.el (hmouse-alist-add-window-handlers):
  hui-mouse.el (outline-mode-hook):
  hui-menu.el (hui-menu-about):
  hmouse-tag.el (smart-emacs-lisp-mode-p, smart-tags-noselect-function):
  hib-debbugs.el (debbugs-gnu):
  hbut.el (hbut:ibut-key-list): Remove # quoting around function lists as edebug
    cannot handle this.

* test/hy-test-dependencies.el (hsys-org-fix-version): Improve log msgs for
    this function.

2024-01-20  Bob Weiner  <rsw@gnu.org>

* hsettings.el (hyperbole-web-search, hyperbole-read-web-search-arguments): Update
    to not prompt for search-term if the service is a function rather than a string.
    In such cases, the function should prompt for the search term.
               (hyperbole-web-search-alist): Add 'ducKduckgo' search engine.

2024-01-20  Mats Lidell  <matsl@gnu.org>

* hmouse-sh.el (hmouse-move-point-eterm): Remove unused function.

* Cleanup using flycheck resolving info and warning messages.

* Update copyright date of latest updated version to be 2024 for all files
    with copyright string that so far have been updated in git under 2024.

* test/hsettings-test.el: New test file for hsettings.
    (hsettings-test--hyperbole-web-search): Test hyperbole-web-search.

* Makefile (package-lint): Add explicit loading of package-lint from Melpa
    for this target. Only needed there.

* test/hy-test-dependencies.el: Do not load package-lint for running
    tests.
    (string-replace): Remove not needed compatibility code.

* test/hyrolo-tests.el (hyrolo-tests--outline-content-otl)
    (hyrolo-tests--outline-content-md): Use replace-regexp-in-string for
    compatibility with old Emacs versions.

2024-01-17  Bob Weiner  <rsw@gnu.org>

* test/hy-test-dependencies.el (org-reloaded): Show Org src dir.
                               (string-replace): Conditionally define
    this from "compat" package, since is from Emacs28 and not available
    in Emacs27.

* hsys-org.el (hsys-org-fix-version): Rewrite to reload any Org libraries
    previously loaded from the wrong builtin Org path, if a newer
    user-installed Org version exists on the 'load-path'.
              (hsys-org-get-libraries-to-reload): Add to compute wrong
    Org libraries loaded and use in above function.

2024-01-16  Mats Lidell  <matsl@gnu.org>

* 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.

2024-01-15  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-to-entry-beginning): Rewrite to move properly.
            (hyrolo-move-backward): Remove, no longer used.

2024-01-16  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el
    (hyrolo-tests--forward-same-level-all-file-types-level1-depth2)
    (hyrolo-tests--forward-same-level-all-file-types-level2): Add test
    with more file types and second level headings.

    (hyrolo-tests--outline-content-org, hyrolo-tests--outline-content-otl)
    (hyrolo-tests--outline-content-md); Add test content constants.

    (hyrolo-tests--gen-kotl-outline): Add depth arg to kotl to generate
    child cells in test data.

2024-01-15  Bob Weiner  <rsw@gnu.org>

* test/hyrolo-tests.el (hyrolo-tests--forward-same-level-all-file-types-level1):
    Fix test error by removing last forward list element so does not move past.

* hyrolo.el (hyrolo-map-matches, hyrolo-funcall-match): Disable 'orgtbl-mode'
    only if enabled.

* man/hkey-help.txt: Add ref to Org Meta Return.

* hui-mouse.el (smart-hyrolo): Extend to edit source location from any line
    within the header, not just the @loc> line.
  man/hyperbole.texi (Smart Key - HyRolo Match Buffers): Document above change.

* kotl/kotl-mode.el (kotl-mode): Set 'outline-level' to 'hyrolo-outline-level'
    which works for all HyRolo supported modes.

* hyrolo.el (hyrolo-mode-map): Change {b} to 'hyrolo-outline-backward-same-level'.
    Change {f} to 'hyrolo-outline-forward-same-level' and rewrite.
            (hyrolo-outline-get-last-sibling, hyrolo-outline-get-next-sibling):
    Add to support {f} and {b} commands.
            (hyrolo-mode): Add set of buffer read-only to ensure no editing.  Any
    commands that change text therein need to also update the buffer caches.
            (hyrolo-forward-same-level, hyrolo-backward-same-level): Remove,
    duplicates of above hyrolo-outline-* functions.
            (hyrolo-outline-next-visible-heading): Change to return whether any
    next heading/header is found.
            (hyrolo-outline-forward-same-level, hyrolo-outline-backward-same-level):
    Rewrite based on 'hyrolo-outline-next-visible-heading'.
            (hyrolo-outline-get-level): Add and call from above 2 functions.
	    (hyrolo-markdown-outline-level): Remove and use 'hyrolo-outline-level'.
	    (hyrolo-outline-level): Fix to handle kotl-mode properly.
	    (hyrolo-outline-move-subtree-up, hyrolo-outline-move-subtree-down,
	     hyrolo-outline-insert-heading, hyrolo-outline-demote,
	     hyrolo-outline-promote): Barf if buffer is read-only for these cmds.

2024-01-15  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el (hyrolo-tests--forward-same-level-all-file-types-level1)
    (hyrolo-tests--forward-same-level-org-level2): Add tests for hyrolo
    forward and backward movement on same level.

2024-01-14  Bob Weiner  <rsw@gnu.org>

* hypb.el (require 'org): Add to define 'org-show-all'.  Fix typo
    missing leading h in 'hsys-org-enable-smart-keys'.

* hsys-org.el (hsys-org-fix-version): Remove unused 'org-dir-version'.

* hsys-xref.el (smart-emacs-lisp-mode-p): Declare this function.

* hycontrol.el (hycontrol-windows-grid-buffer-list): Remove use of
    free variable, 'mode', since this is never called when a specific
    'major-mode' is set.

* hsys-org.el (package): Add (require 'package).

* hmouse-tag.el (smart-tags-display): Fix missed rename of
    'hsys-xref-item-buffer' and 'hsys-xref-item-position'.

* hui.el (hui:ebut-act, hui:ebut-act): Fix 'hui:hbut-operate' call
    to use 'hbut:act' which takes a button argument as opposed to
    'ebut:act' and 'ibut:act' which each take a label argument.

2024-01-13  Mats Lidell  <matsl@gnu.org>

* test/hbut-tests.el (ebut-program-link-to-directory): Remove test in
    favor of almost identical copy but keep the simpler name.

    (ebut-program-link-to-directory-in-non-file-buffer)
    (ebut-program-link-to-directory-in-message-mode-buffer)
    (ebut-delete-removes-ebut-in-non-file-buffer)
    (ebut-delete-removes-ebut-in-message-mode-buffer): Add tests for
    non-file buffer and non-file in message-mode buffer.

2024-01-13  Bob Weiner  <rsw@gnu.org>

* test/hy-test-dependencies.el: Print status of resolving any
    multi-version/mixed Org installations.

* hyrolo.el (hyrolo-any-file-type-problem-p): Disable printing
    output if 'hyrolo-boolean-only-flag' is non-nil, used in
    testing.
 test/hyrolo-tests.el (hyrolo-tests--get-file-list-wrong-suffix):
    Use above flag.

* Makefile (test-ert): Do not ellide any stack traces, i.e. set
    'ert-batch-print-length' to nil.
    Change test SELECTOR= to test= and document how to run.

* hyrolo.el (hyrolo-any-file-type-problem-p): Disable printing of
    any output when 'hyrolo-boolean-only-flag' is non-nil, typically
    used for testing purposes.

* hui.el (hui:ebut-unmark): Fix to handle a non-file-based buffer as
    'key-src'.

* hsys-org.el (hsys-org-fix-version): Add.  Add .org suffix to
    'auto-mode-alist' as it may be removed in this function.  Return
    t when Org is reloaded, nil if not.  Require Org libraries even
    when no reload is done.  Handle when 'org-version' differs from
    version number in 'org-dir'.
  hyperbole.el (hyperb:init): Add call to 'hsys-org-fix-version' when
    detect a mixed version installation of Org, typically part of
    built-in Org loaded before loading a newer packaged version.

* hargs.el (hargs:at-p): Fix 'no-default' arg handling to not select
    non-existent dirs and files when no-default is true.

* hsys-xref.el (hsys-xref-definitions): Fix to pass symbol, not string to
    'ert-test-boundp'.

* hmouse-drv.el (hkey-help-show): Rename local var from 'org-help' to
    'hkey-org-help' to eliminate any confusion that this is an Org variable.

* hyrolo.el (hyrolo-any-file-type-problem-p): Print error buffer to stdout
    when run noninteractively (batch mode).

* hyrolo.el (hyrolo-org-mode): Conditionalize org-fold usage as it is only
    available in newer Org versions.  Add missing forward declarations.

* hyrolo.el (hyrolo-org-mode): Add newer Org 9.7-pre hide/show support.
  test/hyrolo-tests.el (hyrolo-tests--outline-hide-show-heading,
  	                hyrolo-tests--outline-show-when-moving-out-of-hidden-line):
    The above change fixes these tests, so they have been re-enabled.

* hmouse-tag.el (smart-lisp-identifier-chars): Add @ char as advised
    functions use the orig-function@advice-wrapper-name to refer to the
    advice.

* hpath.el (hpath:variables): Move 'load-path' and 'exec-path' before
    'Info-directory-list' as they should be higher priority matches.
    Remove old 'Info-directory'.

2024-01-12  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:display-file-with-logo): Expand any folded headings
    in the file.

    Improve use in tests by doing the following when in batch mode
    (noninteractive): Kill off any non-modified buffer showing the file
    to display before freshly reading it.

2024-01-10  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (hkey-alist): Move 'smart-eolp' to immediately before
    'smart-org' clause.
  hsys-org.el (hsys-org-cycle-bob-file-list): Add to list files auto
    set to 'org-mode' with minor 'view-mode' that allow org global
    cycling of headings with {TAB} when at the beginning of buffer and
    not on a heading.
  hyrolo.el (hyrolo-verify): Allow buffers associated with files from
    'hsys-org-cycle-bob-file-list' as well.
  hui-mouse.el (smart-org-bob-and-non-heading-p): Check whether {TAB} or
    {M-RET} should org-global-cycle at point."
               (smart-eolp): Allow for org global cycling at start of
    buffer on a non-heading line in Hyperbole doc files when displayed from
    Hyperbole menu items.
  hypb.el (hypb:insert-hyperbole-banner): Update so Hyperbole logo link
    does not include the first blank line, allowing for a different
    action on {RET} there.

* hyrolo.el (hyrolo-verify): Remove mentions of HyNote (not in this release).

* hypb.el (hypb:display-file-with-logo): Remove call (skip-syntax-forward "-")
    so point stays at the beginning of buffer for Org global display cycling.
    Replace 'id-browse-file' and 'view-mode' with 'hyrolo-mode'.

* hsys-flymake.el (repeat-mode): Add missing (require 'repeat) since
    'repeat-mode' function used herein is not autoloaded.
                  (flymake-mode-hook): Check whether `repeat-mode' is
    fboundp or not before trying to enable it (should be autoloaded when
    it exists, probably in Emacs 28 or greater).

2024-01-09  Bob Weiner  <rsw@gnu.org>

* hsys-xref.el: Add forgotten file.

2024-01-09  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el (hyrolo-tests--outline-next-visible-heading-md)
    (hyrolo-tests--outline-next-visible-heading-all)
    (hyrolo-tests--outline-next-visible-heading-kotl)
    (hyrolo-tests--outline-next-visible-heading-all-file-types)
    (hyrolo-tests--outline-show-when-moving-out-of-hidden-line): Add more
    test cases for hyrolo outline show, hide and movement.

    (hyrolo-tests--gen-kotl-outline, hyrolo-tests--verify-hidden-line)
    (hyrolo-tests--verify-not-hidden-line): Add helper functions and use.

2024-01-09  Bob Weiner  <rsw@gnu.org>

* hact.el (htype:def-symbol, htype:names, actype:def-symbol): Change call
    from 'make-symbol' to 'intern' for efficiency.

2024-01-07  Bob Weiner  <rsw@gnu.org>

* hbut.el (hbut:actype, ibut:type): Add for Hyperbole API use.
          (ibut:at-type-p): Rewrite using 'ibtype:elisp-symbol' and
    'ibut:type'.
          (ibut:is-type-p): Add to give both an ibut and a type for
  comparison and API use.
         (ibtype:def-symbol, hattr:report): Change call from 'make-symbol'
  to 'intern' for efficiency.

* hmouse-tag.el (smart-tags-noselect-function): Change function reference
    to new name, 'hsys-xref-definition'.

* MANIFEST:
  Makefile (EL_COMPILE):
  hsys-xref.el (hsys-xref-definitions): Move xref utility functions
    from "hmouse-tag.el" to here and add Hyperbole unique hsys- prefix.

* test/hy-test-helpers.el (hy-delete-files-and-buffers): Add helper for
    cleaning up multiple files and buffers.

2024-01-06  Mats Lidell  <matsl@gnu.org>

* Makefile (HYPB_ERT_BATCH, HYPB_ERT_BATCH_BT):  Add command line arg to
    run test specified by selector. Example to run all hyrolo tests

      make test SELECTOR=hyrolo

    Bonus. Control size of backtraces so that we get more info on
    errors. For full backtrace add command line argument FULL_BT=

      make test SELECTOR=hyrolo FULL_BT=

2024-01-06  Bob Weiner  <rsw@gnu.org>

* Makefile (test-all): Revert to use 'ert-run-tests-interactively' again
    instead of 'ert-run-tests-batch' so get interactive *ert* features
    including {b} to show backtraces for failed tests.  With new updates,
    now can run a previously run test from its definition with the Action
    Key and it will simply update the result in the existing buffer rather
    than overwriting the buffer with just that test.

* test/hypb-ert-tests.el (hypb-ert-tests--edebug-is-called): Fix this
    test by removing mock of `edebug-defun' which is necessary to set
    the symbol property that registers the name as an ert test.  Without
    this, `hypb-ert-run-test-at-definition' will not run the test.

2024-01-05  Bob Weiner  <rsw@gnu.org>

* test/hypb-ert-tests.el (hypb-ert-tests--edebug-is-called):
  hypb-ert.el (hypb-ert-run-test-at-definition,
               hyperbole-run-test-definition,
               hyperbole-run-test-definition:help): Remove 'test-name' arg
    and find any name at point instead.  Return t if run a test, else nil.
    Simplify logic.

* hmouse-tag.el (smart-emacs-lisp-mode-p): Include 'ert-results-mode'.
                (smart-lisp-find-tag): Allow 'tag' arg to be a symbol,
    not just a string.  This allows it to be used as a target function
    in 'find-function-regexp-alist' which is used in the ert results buffer
    with the {.} command to jump to the ert test definition at point.
                (xref-definitions, xref-definition): Rewrite to handle
    ert-deftests.

* Makefile (test-all): Change 'ert-run-tests-interactively' to
    'ert-run-tests-batch' because this shows tracebacks of any tests that
    fail in the *Messages* buffer, speeding debugging.  Although it does
    have the side-effect of not producing the interactive *ert* buffer that
    lets you jump to test source.  However, you can paste the test results
    into another Emacs and use Hyperbole to jump to test/symbol definitions.
           (test-all-output): Save outputs including backtraces written
    to *Messages* buffer in file "ERT-OUTPUT".

* test/hib-kbd-tests.el (kbd-key-hy-demo-factorial-test): Remove use of *ert*
    buffer which may not exist if run in batch mode.

* hyrolo.el (hyrolo-any-file-type-problem-p): If problem occurs within a 'let',
    then show backtrace so know where the let-binding was set.

2024-01-04  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-org-mode): Force font-lock-mode off in this major mode for speed.
            (hyrolo-funcall-match): Add optional arg 'backward-flag' to select
    proper major mode for a *HyRolo* match file when moving backwards.
  test/hyrolo-tests.el (hyrolo-tests--outline-next-visible-heading,
                        hyrolo-tests--outline-next-visible-heading-two-sections):
    Fix tests to work with fixed {n} and {p} commands.

* hui-mouse.el (hsys-flymake): Move loading of this library here from "hibtypes.el".
  hsys-flymake.el (hsys-flymake-issue-at-point, hsys-flymake-issue-at-point:help):
    Remove this ibtype and its :help function.  Hyperbole uses 'hkey-alist' Smart
    Key invocations of functions from this file instead now.
    Also, add documentation of all commands and key bindings.

* test/hyrolo-tests.el: Changed all 'header' to 'heading'.
    (hyrolo-tests--generate-heading-contents-for-tests): Generalized to take
    a 'heading-prefix-char' argument, to allow for markdown outline generation
    as well.

* hyrolo.el (hyrolo-hdr-move-after-p): Fix and improve to handle point
    anywhere within a file header, not just on delim or loc lines.
            (hyrolo-outline-next-visible-heading,
             hyrolo-outline-previous-visible-heading): Fix to handle file
    headers properly when moving more than one entry at a time.

2024-01-03  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-eolp): Change 'hsys-flymake-get-issue-at-point' to
    correct 'hsys-flymake-get-issue-at-position' call.
               (hkey-alist): If in the flymake linter list of issues buffer,
    jump to or show issue at point.
  man/hkey-help.txt:
  man/hyperbole.texi (Implicit Button Types): Remove
    'hsys-flymake-issue-at-point' ibtype (use {C-c C-l g} command instead.
    Document new 'hkey-alist' behavior from above.
* man/hyperbole.texi (Smart Key - Occurrence Matches): Move to proper
    priority order.
                     (Smart Key - Flymake Mode): Add and add table of
    Hyperbole key bindings in source buffer 'flymake-mode'.
                     (Glossary - Flymake): Add.
                     (Implicit Button Types): Remove hsys-flymake ibtype
    since would only apply if no other type applies and this could be
    confusing and inconsistent to users.  Leave it commented out in the
    code so a user can enable it at a higher priority if desired.

* hypb-ert.el (hypb-ert-run-test-at-definition): Fix to edebug function
    when not previously defined.
  test/hypb-ert-tests.el (hypb-ert-tests--edebug-is-called): Make edebug
    test work.

* hib-debbugs.el (declare-function): Revert declarations to use
    "ext:debbugs-gnu" from "ext:debbugs" since the newer package
    does not have many of the functions that Hyperbole presently uses.

* MANIFEST:
  man/hkey-help.txt:
  man/hyperbole.texi (Implicit Button Types):
  hibtypes.el (hsys-flymake):
  Makefile (EL_COMPILE): Add "hsys-flymake.el" to Hyperbole.

2024-01-02  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (text-toc): Fix doc on whitespace handling before and after
    TOC header and TOC entry lines.
  hactypes.el (text-toc): Fix not handling different whitespace in TOC
    entry vs. section header.

* hui.el (hui:hbut-help): Return custom button help function symbol if any;
    otherwise, return the function used, 'hbut:report.  This is used in
    Smart Key help which previously was not displaying the proper action
    for the Assist Key when on a Hyperbole button.
  hmouse-drv.el (hkey-help): Update to display proper Assist Key help.

2023-01-02  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el (hyrolo-tests--level-number)
    (hyrolo-tests--generate-header-contents-for-tests)
    (hyrolo-tests--gen-outline): Add helper for constructing org files for
    tests.
    (hyrolo-tests--outline-next-visible-header)
    (hyrolo-tests--tab-through-matches)
    (hyrolo-tests--outline-hide-show-heading)
    (hyrolo-tests--outline-up-header, hyrolo-tests--edit-entry)
    (hyrolo-tests--outline-next-visible-header-two-sections): Add test for
    working with hyrolo matches.
    (hyrolo-tests--get-file-list-change)
    (hyrolo-tests--get-file-list-wrong-suffice): Add hyrolo tests for
    get-file-list.

* test/hypb-ert-tests.el (hypb-ert-tests--def-at-p)
    (hypb-ert-tests--edebug-is-called): Add tests for hypb-ert.

2024-01-01  Bob Weiner  <rsw@gnu.org>

* hypb-ert.el (hypb-ert-def-at-p): Update doc.  Fix grouping ref that was
   1 that should have been 2 since optional "\\(-async\\)" added to the
   regexp.

2023-12-31  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:create, ibut:at-p): Change to call 'smart-eolp' instead of
   'eolp' so can handle flymake issues where an overlay/char-property is
   added at the end of a line only and we want an implicit button created
   for this.

* hui-mouse.el (hkey-alist): Add logic for new hsys-flymake library to handle
    diag issues at the end of the line where we want an implicit button to
    fire rather than typically eol handling.

* hbut.el (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 <ibtype-sym-or-name>) executes the ibtype action if the
    current buffer context supports it.

* hyrolo.el (hyrolo-file-list): Add 'hyrolo-set-file-list' after loading the hyrolo
    library (at the end of the file) if 'hyrolo-file-list' has been set by the
    user or the customization system prior to loading HyRolo.

2023-12-30  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-show-levels): Add top-level save-excursion so point does
    not move.
            (hyrolo-outline-next-visible-heading): Rename
    'hyrolo-next-visible-heading' to this.

* FAST-DEMO (Action Buttons): Update to include ert test definition within
    the file so do not have to load all of the test files to run the demo.

* hbut.el (ebut:label-p): For <action> buttons, allow unlimited length
    button labels since might be an entire long sexpression.

* hib-debbugs.el (debbugs-gnu-query:list): Debbugs support libary has been renamed
    from 'debbugs-gnu' to just 'debbugs'.

2023-12-29  Bob Weiner  <rsw@gnu.org>

* test/hui-tests.el (hui--link-possible-types): Make use .otl rather than .outl
    file suffix which automatically invokes 'outline-mode'.

* hyrolo.el (hyrolo-to-entry-end): Fix bug where HyRolo fgrep would get stuck
    in Org buffers without any outline delimiters due to this function moving
    backwards.

* HY-ANNOUNCE:
  README.md:
  FAST-DEMO (Introductory Videos): Add 3 EmacsConf 2023 videos on Hyperbole.

* hui-mouse.el (hkey-alist): Add 'ert-results-mode' support using rsw's new
    "ert-results.el" library.  Add 'smart-ert-results' and
    'smart-ert-results-assist' support functions.  Fix many flycheck warnings.

* hmouse-tag.el (smart-lisp-find-tag): Fix issue where 'hkey-value' was used
    as tag when it was not a string, causing failures on known function lookups.

2023-12-29  Mats Lidell  <matsl@gnu.org>

* test/demo-tests.el (fast-demo-markdown-anchor-with-spaces)
    (fast-demo-elisp-or-env-vars, fast-demo-elisp-library-in-load-path)
    (fast-demo-info-manual-references, fast-demo-grep)
    (fast-demo-python-trace-back, fast-demo-man-k)
    (fast-demo-action-button-shell, fast-demo-action-button-fill-column)
    (fast-demo-display-demo-using-action-buttons)
    (fast-demo-display-kotl-starting-from-cell)
    (fast-demo-outline-section-anchor-and-relative-line-number)
    (fast-demo-markdown-anchor-with-spaces)
    (fast-demo-elisp-library-in-load-path)
    (fast-demo-elisp-or-env-vars): Add remaining test cases for fast-demo.

2023-12-28  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:pre-self-insert-command): Add these kotl-mode
    commands: kill-line, kill-region, kill-sentence, kill-or-copy-region, yank,
    yank-from-kill-ring, yank-pop, and yank-rectangle.
                   (kotl-mode:to-valid-position-commands): Make list of commands
    modifiable.

* hypb-ert.el (hypb-ert-def-at-p): Add support for `ert-deftest-async' from the
    "ert-async.el" package.

* hactypes.el (text-toc): Tighten section matching by ensuring it matches to the
    beginning of the text of the line aside from any initial whitespace.
    Previously, it could match to any part of the line and was not regexp-quoted,
    leading to occasional mis-matches.

* hmouse-tag.el (smart-lisp-at-non-htype-tag-p): Fix to remove any action button
    trailing '>' character.  Already removed any leading '<'.  Match to symbol
    and word chars between <> to handle all action button labels.
  hibtypes.el (action): Add support for executing ert-deftests and update doc
    string for this.
  man/hyperbole.texi (Action Buttons):
  DEMO (Using Action Buttons):
  FAST-DEMO (Action Buttons): Add example action button of a Hyperbole ert test.
  man/hyperbole.texi (By Dragging): Eliminate repeated paragraph and update mouse
    key references.

2023-12-27  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-window-link): Invert the meaning of the prefix arg, so without
    one, creates implicit buttons and with creates explicit buttons.  This is the new
    V9 standard as then by default there is no need to prompt for a button name.
  hui-window.el (hmouse-alist-add-window-handlers): Invert drag between windows so
    without a prefix arg, creates implicit buttons and with, creates explicit ones.
  hui.el (hui:ibut-link-directly):
  FAST-DEMO (Implicit Buttons):
  DEMO (Creation via Dragging, Creation via Ace Window):
  man/hyperbole.texi (Keyboard Drags, Smart Mouse Drags between Windows):
  man/hkey-help.txt: Update doc on above.

2023-12-26  Mats Lidell  <matsl@gnu.org>

* test/hmouse-drv-tests.el:
  test/hibtypes-tests.el:
  test/hib-kbd-tests.el:
  test/demo-tests.el: Set enable-local-variables to nil for test cases
    where DEMO and FAST-DEMO is loaded to avoid getting queried.

2023-12-26  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:to-markup-anchor): If 'referent-regexp' starts with '^', add
    "[ \t]*" instead of "[ \t]+" to the expression in case it matches the whole line.

* hui.el (hui:link-possible-types): Change outline heading line link to trigger only
    for outline, org and kotl modes when point is anywhere on the heading line.
    Include non-zero column in pathname so returns to the original point.  Produce a
    'link-to-string-match' type.
  hbut.el (ibut:insert-text): Change 'actypes::link-to-string-match' to use a pathname
    format ibut rather than a <link-to-string-match> action button when the occurrence
    number is 1.

* hui-select.el (hui-select-scan-sexps): Don't use 'hui-select-syntax-table' in Lisp
    modes as its use of matching angle brackets prevents proper sexp selection when
    on the opening parentheses of anything with angle brackets inside, e.g. (< 2 3).

* hyrolo-logic.el (hyrolo-fgrep-logical): Fix quoting for Lisp read and regexp
    operator handling.
  hyrolo.el (hyrolo-fgrep): Fix to handle 'r-<operator>' regexp logic operators.
  man/hyperbole.texi (HyRolo Searching): Add doc for regular expression-based
    logic operators.

* hyrolo-logic.el (hyrolo-map-logic): Update to handle multi-file formats
    in 'hyrolo-display-buffer'.
                  (hyrolo-map-entries, hyrolo-map-kotl): Add doc string.
		  (hyrolo-fgrep-logical): Rename arg 'whole-buffer-flag' to
    'koutline-flag' to match its purpose.  Does not seem to be sent as true
    anywhere in the existing code base.

* hyrolo.el (hyrolo-hdr-in-p): Add to test if in a HyRolo file header.
            (hyrolo-hdr-to-first-line-p): Add to move to file header start.
	    (hyrolo-outline-hide-subtree): If point is on a file header in the
    'hyrolo-display-buffer', then collapse the entire file from the current
    end-of-line forward.  This makes {h} work within file headers.
            (hyrolo-hdr-move-after-p): Handle point on single text line between
    header delimiters.
            (hyrolo-outline-show-subtree): If point is on a file header in the
    'hyrolo-display-buffer', then show/expand the entire file.  This makes {s}
    work within file headers.
  man/hyperbole.texi (HyRolo Keys): Update to document latest {h} and {s} behavior.
  hbut.el (hbut:get-key-src): Call (hyrolo-hdr-move-after-p) so if in a file
    hdr, backwards search finds its @loc line rather than going to prior one.

* hyrolo.el (hyrolo-outline-level): Fix to return level 1 when on a file header
    separator or @loc> line.
            (hyrolo-outline-up-heading): Rewrite and fix to handle edge cases.
	    (hyrolo-name-at-p): Fix to store the current line and col in a text
    property when possibly hierarchical name is found/used so can jump to the
    specific line within an entry when editing.
            (hyrolo-to): Fix to jump to stored current line and col after finding
    a possibly hierarchical name in HyRolo.

* man/hyperbole.texi (HyRolo Keys): Update doc for 'hyrolo-edit', {e} key, and
    how it handles datestamps.  Mention 'hyrolo-date-format'.

* hactypes.el (link-to-kcell): Fix to use any source location, e.g. in HyRolo
    display matches buffer.

* hsys-org.el (hsys-org-agenda-item-at-p):
  hui-mouse.el (smart-org):
  man/hyperbole.texi (Smart Key - Org Mode): Update doc to note the context is
   an Org agenda item within an Org agenda view, not the item in its source
   context.

* test/hy-test-helpers.el (hy-test-helpers:ensure-link-possible-type): Add.
  test/hui-tests.el (hui--link-possible-types): Use above function to ensure
    'hui:link-possible-types' returns one given type only for each test herein.

2023-12-26  Mats Lidell  <matsl@gnu.org>

* test/hy-test-helpers.el (hy-delete-dir-and-buffer): Add test helper for
    removing buffers for temp folders.

* test/hui-tests.el (hui--link-possible-types): Add test for
    hui:link-possible-types.

2023-12-26  Bob Weiner  <rsw@gnu.org>

* test/hyrolo-tests.el: Fix with-simulated-input where prompting for 'y'.

* hyrolo.el (hyrolo-map-matches, hyrolo-funcall-match): Ensure point ends up
    on a visible point so that reveal-mode does not force and unhide of the entry.
    Remove the above logic from 'hyrolo-show-levels' since it calls
    'hyrolo-map-matches'.
            (hyrolo-mode): For now, stop enabling 'reveal-mode'  until can get it
     working right with the enabling of 'outline-minor-mode' when switch major modes
     in "*HyRolo*", typically using 'hyrolo-funcall-match' or 'hyrolo-map-matches'.

* test/hyrolo-tests.el (hyrolo-sort-test): Enable this test.
  hyrolo.el (hyrolo-add): Fix this function to insert sub-entries in the right
    location so 'hyrolo-sort-test' passes.

2023-12-25  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-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.
  Add new variable `hyrolo-entry-regexp' which does not match to file headers.

* hyrolo.el (require 'reveal): Add since overload its functions now.

* kotl/kotl-mode.el (kotl-mode:reveal-toggle-invisible): Fix by adding
    'get-buffer' call around 'hyrolo-display-buffer'.  Otherwise, the buffer
    comparison would always fail.

* hyrolo.el (hyrolo-hdr-move-after-p): Modify to handle when point is not at
    the start of but is on a hdr separator or loc line.
            (hyrolo-to-entry-beginning): Fix to move past any file hdr.
            (hyrolo-map-matches): Fix calls to this that are mode-specific by adding
       second arg of t.
            (hyrolo-show-levels): Rewrite so handles all behavior for {t} and {o}
       key bindings.
            (hyrolo-overview, hyrolo-top-level): Simplify for new version of
       'hyrolo-show-levels'.
            (outline-mode-hook): Fix to capture only one whitespace char in
       'outline-regexp' so 'hyrolo-outline-level' function works properly.
            (hyrolo-grep-file): Require a final blank line so that
       'outline-hide-sublevels' won't hide it and combine with any next file header.
       (hyrolo-min-matched-level): Fix to start with max val rather than min val.

* man/hyperbole.texi (HyRolo Keys): Document [ and ] keys to move to prev and
    next buffer/file @loc> line.

* hyrolo.el (hyrolo-to-entry-end): Don't move back one char if on end of line.

* hbut.el (hbut:source-prefix):
  hmoccur.el (moccur-source-prefix): Clarify doc.

* hyrolo.el (hyrolo-markdown-suffix-regexp): Add and use in `hyrolo-file-suffix-regexp'
    to capture all Markdown suffixes.
            (hyrolo-any-file-type-problem-p): Use above regexp here.  Separate out
    invalid files due to invalid suffixes from files with invalid major modes due
    to not being in 'auto-mode-alist'.
            (outline-mode-hook): Add to configure outline-mode for use with HyRolo.
	    (hyrolo-org-mode): Update to set all local hyrolo variables.

* kotl/kotl-mode.el (kotl-mode): Set 'outline-regexp' to match 'hyrolo-hdr-and-entry-regexp'
    to account for file headers in 'hyrolo-mode' (multi-format major-mode).

2023-12-24  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-any-file-type-problem-p): Add to handle file suffixes
    that HyRolo cannot handle and to install the markdown-mode package as
    necessary when a Markdown file is specified in 'hyrolo-file-list'.
            (hyrolo-let-file-list, hyrolo-set-file-list): Call above function.
    This fixes failures with Markdown files improperly put into fundamental-mode
    which means their headings are not recognized properly.
            (hyrolo-to-previous-loc, hyrolo-to-next-loc): Add and
    bind to [ and ] keys in 'hyrolo-mode-map'.
    (hyrolo-hdr-prefix-regexp): Add so do not repeat expression multiple places
       and add this to `outline-regexp' in all major-modes supported by HyRolo.

* hload-path.el (auto-mode-alist): Setup to invoke 'outline-mode' on ".otl"
    suffixed files.

* man/hyperbole.texi (HyRolo Concepts):
  hyrolo.el (hyrolo-file-list): Update doc to specify allowable file suffixes
    and types.

2023-12-23  Mats Lidell  <matsl@gnu.org>

* test/hpath-tests.el (hpath--expand-no-wildcards-existing-path)
    (hpath--expand-variations-non-existing-path)
    (hpath--expand-elisp-variable, hpath--expand-environment-variable)
    (hpath--expand-auto-variable-alist, hpath--resolve-auto-variable-alist)
    (hpath--expand-list-return-a-list, hpath--expand-list-match-regexp):
    Add tests for hpath:expand and hpath:expand-list.

2023-12-23  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:major-mode-from-file-name): Add for initial use in "hyrolo.el".

* hactypes.el (link-to-regexp-match): Fix to use arg 'n' in the regexp search.

* kotl/kotl-mode.el (kotl-mode): Ensure local vars are set if current buffer
    is HyRolo display matches buffer.

* hypb.el (hypb:remove-from-plist, hypb:do-remove-from-plist): Add for use in
    "hywconfig.el".
  hywconfig.el (hywconfig-add-by-name, hywconfig-delete-by-name,
                hywconfig-restore-by-name): Fix all wconfig by name functions
    which were storing only unnamed window configs.  Change all to return a
    boolean value based on whether the operation succeeds or not.
               (hywconfig-set-names): Replace with 'hywconfig-named-set-entries'.
               (hywconfig-named-get-entries, hywconfig-named-put,
                hywconfig-named-get): Add.
	       (hywconfig-get-names): Replace with 'hywconfig-named-get-names'.
	       (hywconfig-set-window-configuration): Add doc.
	       (require 'set): Remove, no longer used.

* kotl/kotl-mode.el (kotl-mode): Disable 'change-major-mode-hook' addition of
    'kotl-mode:show-all' if in the HyRolo display buffer.

* hyrolo.el (hyrolo-hdr-and-entry-regexp): Add 'hyrolo-hdr-regexp' and 'hbut:source-prefix'
    so are not skipped during hide/show operations.  Also do this in
    'markdown-mode-hook' and 'kotl-mode'.

* test/hyrolo-tests.el (hyrolo-demo-move-between-entries-on-same-level,
                        hyrolo-demo-no-following-same-level-heading): Fix
    header skipping by using 'hyrolo-hdr-move-after-p'.
                       (hyrolo-fgrep-find-all-types-of-files): Fix by adding
    proper headling structure to each file type.
                       (hyrolo-fgrep-and-goto-next-visible-md-heading): Fix
    by removing one '#' from expected heading level.

* kotl/kotl-mode.el (kotl-mode:reveal-toggle-invisible): May be in the
    'hyrolo-display-buffer', so wrap a 'hyrolo-funcall-match' call around
    'outline-reveal-toggle-invisible' call to ensure proper match buffer mode
    is set for koutline matches.

* hyrolo.el (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-grep-file): Remove first arg from call to 'hyrolo-add-match'.
    Remove unused local 'curr-entry-level-len' which would not work for Markdown
    'outline-regexp' anyway.

2023-12-21  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-funcall-match, hyrolo-map-matches): Use (1- (point-max))
    when 'end' is nil, i.e. only a single file has been found and the start of
    of the next one used to determine the end of this one has not yet been added.

* man/hyperbole.texi (Implicit Button Types): Add doc for 'hib-python-traceback'
    and 'hyrolo-stuck-msg'.

* hibtypes.el (Info-node): Tighten match to limit valid chars after closing paren.
              (hyrolo-stuck-msg): Add to jump to the position where a HyRolo match
    became stuck, if ever happens, when point is on the error.
  hyrolo.el (hyrolo-grep-file): Update 'Stuck looping in buffer' msg so can be
    used in 'hyrolo-stuck-msg' ibtype.

* hyperbole.el: The 'describe-package' function fails under Emacs 28 when multiple
    maintainers are listed under the 'Maintainer' header but later Emacs versions
    support a 'Maintainers' header, so include both.  Change to using 'Authors'
    instead of 'Author'.

2023-12-20  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-edit-entry, hyrolo-locate): Wrap in 'hyrolo-funcall-match' call
    to fix these functions to work with multiple modes.
            (hyrolo-funcall-match): Ensure 'unwind-protect' end forms are run within
    'hyrolo-display-buffer'.

* kotl/kview.el (kview:outline-regexp): Add grouping for kcell label matches; used
    in `hyrolo-display-buffer'.
  kotl/kotl-mode.el (kotl-mode): Add local settings of 'hyrolo-entry-group-number'
    and 'hyrolo-entry-trailing-space-group-number'.

2023-12-18  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-move-backward, hyrolo-move-forward): If FUNC is a lambda
    (not a function symbol), then temporarily narrow to the current match buffer
     before applying FUNC.
     (hyrolo-to-entry-end): Remove unused arg '_curr-entry-level-len'.
     (hyrolo-grep-file): Remove unneeded passing of 'curr-entry-level-len' arg to
     (hyrolo-outline-previous-visible-heading, hyrolo-next-visible-heading): Fix
     doc strings to mention stops at match buffer headers.

2023-12-17  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-move-backward, hyrolo-move-forward): If on a kotl-mode entry,
    ensure move to a valid position.

2023-12-16  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:expand-list): If path comes back nil from 'hpath:expand', then
    ignore any potential file wildcards.

2023-12-15  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode): Fix check of 'kotl-previous-mode' to not set local
    vars if prior mode was the same, i.e. kotl-mode.

* hyrolo.el (hyrolo-hdr-move-after-p): Add to move after any hdr lines in any buffer.
            (hyrolo-grep-file, hyrolo-map-level, hyrolo-map-level, hyrolo-show-levels:
    Change to call 'hyrolo-hdr-move-after-p'.
            (hyrolo-move-forward, hyrolo-move-backward): Rewrite.
	    (hyrolo-up-heading): Remove, use 'hyrolo-outline-up-heading'.
	    (hyrolo-map-matches, hyrolo-funcall-match): Add optional 'narrow-flag' to
    narrow to the current file of matches.
            (hyrolo-outline-previous-heading): Add.
	    (hyrolo--cache-major-mode): Fix so stored matched buffer major-mode rather
    than hyrolo-mode from the display matches buffer.  Also, reused cached major-mode-index
    values when the major-mode is the same and increment index only when not reused.
            (hyrolo-map-matches, hyrolo-funcall-match): Eliminate save-restriction calls.
	    (hyrolo-cache-get-major-mode-from-pos): Add and use in 'hyrolo-cache-set-major-mode'.
	    (hyrolo-previous-visible-heading): Remove, use
    'hyrolo-outline-previous-visible-heading'.

2023-12-14  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-grep): Remove '(set-buffer display-buf)' since call to
    'hyrolo-display-matches' does this.
            (hyrolo-mode-map): Fix bindings of hyrolo-* overloads of
    'outline-mode-prefix-map' (outline-minor-mode).

2023-12-13  Bob Weiner  <rsw@gnu.org>

* hyrolo-logic.el (hyrolo-map-logic): Add doc for last arg,
    whole-buffer-flag.
                  (hyrolo-logic): Add calls to 'hyrolo--cache-initialize' and
    'hyrolo--cache-post-display-buffer'.
    Also add temporary disabling of 'magit-auto-revert-mode-enable-in-buffers'
    in 'after-change-major-mode-hook' to speed file processing.
                  (hyrolo-map-entries, hyrolo-map-kotl): Add call to
    'hyrolo--cache-major-mode'.
  hyrolo.el (hyrolo-grep-file): Change 'delq' to 'remove' so does not
    permanently modify the 'after-change-major-mode-hook'.

* hyrolo.el (hyrolo--cache-initialize, hyrolo--cache-major-mode): Ensure
    all settings apply to `hyrolo-display-buffer' local variables.
            (hyrolo-find-file): Fix doc string.
	    (hyrolo-set-file-list, hyrolo-let-file-list): Remove call to
    'hyrolo--cache-initialize'.

* test/hyrolo-tests.el (hyrolo-demo-move-to-beginning-and-end-of-file):
    Move to {,} and {.} tests to sep test,
    'hyrolo-demo-move-to-beginning-and-end-of-entry'.

2023-12-12  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-mode): Add trailing space to default `outline-regexp'.
            (hyrolo-org-mode): Add quick enable of basic Org mode for use
    in HyRolo display match searches and use in 'hyrolo-helm-org-rifle'.
            (hyrolo-org-outline-level): Add to not widen the buffer when
    computing the Org outline level when in the display match buffer.

* kotl/kotl-mode.el (kotl-mode):
  hyrolo.el (hyrolo-mode): Change 'run-hooks' to 'run-mode-hooks'.

2023-12-11  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-mode): Add 'hbut:source-prefix' and 'hyrolo-hdr-regexp'
    as level 1 outline entries in outline-heading-alist.
            (hyrolo-mode-outline-level): Delete, use default 'hyrolo-outline-level'
    or per matched file function in 'outline-level'.

* test/hibtypes-tests.el (ibtypes::text-toc-test): Regexp-quote * and allow
    for preceding whitespace.

* kotl/kotl-mode.el (require 'hyrolo): Add.

* hyrolo.el (hyrolo-grep-file): Change 'insert-buffer-substring-no-properties'
    to 'insert-buffer-substring' to keep properties, as need Koutline
    'kcell properties to navigate them properly.

* kotl/kview.el (kcell-view:to-label-end):
  kotl/kotl-mode.el (kotl-mode:to-valid-position): Fix to handle file headers
    in HyRolo display match buffer when displaying parts of Koutlines.

* hyrolo.el (hyrolo-cache-set-major-mode): Move to this function the
    addition of 'hyrolo-hdr-regexp' to both 'hyrolo-hdr-and-entry-regexp' and
    'outline-regexp' within the *HyRolo* display match buffer.
            (hyrolo-markdown-outline-level, hyrolo-cache-set-major-mode):
    Fix markdown 'outline-level' function to always return a non-nil level.

2023-12-10  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-grep): Remove unused local 'hyrolo-buf'.
            (hyrolo-outline-minor-mode): Define and enable in 'hyrolo-mode'.

* hyrolo-menu.el (hyrolo-menu-common-body):
  hyrolo.el (hyrolo-mode-map): Change to 'make-sparse-keymap', name it and inherit
    from a copy of 'outline-mode-prefix-map' where its command bindings are overriden
    with hyrolo- prefixed ones.

* hyrolo.el (hyrolo-move-backward): Change 'outline-previous-heading' call to
    'hyrolo-outline-previous-heading'.

2023-12-09  Mats Lidell  <matsl@gnu.org>

* test/hy-test-helpers.el (hy-test-helpers:consume-input-events): Remove
    not needed recursion-depth check.

2023-12-09  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (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.el (hyrolo-outline-show-subtree): Add to replace usage of
    'outline-show-subtree'.
	    (hyrolo-outline-hide-subtree): Rename from 'hyrolo-hide-subtree'.
            (hyrolo-outline-hide-subtree, hyrolo-overview,
             hyrolo-top-level, hyrolo-move-backward, hyrolo-move-forward):
    Add a wrapper call to 'hyrolo-funcall-match' or 'hyrolo-map-matches'
    which sets appropriate major mode per location in the match buffer.
            (hyrolo-outline-*): Add new functions emulating all 'outline-minor-mode'
    key bindings with above wrapper calls and add to 'hyrolo-mode-map' keys.
* hyrolo-*.el (outline): Change all (outline-*) calls to (hyrolo-outline-*) calls.
    This supports different major modes within the HyRolo match display buffer.

2023-12-08  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode): Update to be usable in `hyrolo-display-buffer'.

2023-12-07  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo--cache-*): Add caching of each 'major-mode' to use for the buffer
    from which a matching HyRolo record is drawn.
    (hyrolo-let-file-list, hyrolo-set-file-list): Add calls to
    `hyrolo--cache-initialize'.
    (hyrolo-grep): Add calls to 'hyrolo--cache-initialize' and to
       'hyrolo--cache-post-display-buffer' when not 'count-only'.
    (hyrolo-grep-file): Add call to 'hyrolo--cache-locals'.
    (hyrolo-grep): Remove concatenated 'outline-regexps' and 'hyrolo-entry-regexps'.
       They are no longer used.  Move header matching in `outline-regexp' and
       `hyrolo-hdr-and-entry-regexp' to 'hyrolo--cache-matched-buffer'.

2023-12-07  Mats Lidell  <matsl@gnu.org>

* test/hywconfig-tests.el (hywconfig-tests--remove-ring)
    (hywconfig-tests--remove-names): Support functions for clearing the
    window config per frame.
    (hywconfig--inital-ring-is-empty, hywconfig--not-empty-if-ring-save)
    (hywconfig--number-of-configs-are-store-up-to-a-max)
    (hywconfig--empty-after-pop-ring-with-one-config)
    (hywconfig--max-minus-one-after-pop-ring-with-max-config)
    (hywconfig--get-not-existing-config-fails, hywconfig--add-by-name)
    (hywconfig--delete-by-name): Tests.

2023-12-04  Bob Weiner  <rsw@gnu.org>

* Makefile (HY-TALK/HYPER*.org): Add Hyperbole talk slides from EmacsConf
    presentations.
  MANIFEST: Update with org files used in talks.

* hsys-org.el (org-link): Expand this actype to open Org links that are in
    non-Org-mode buffers.

2023-12-03  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (annot-bib): Lower priority below 'org-link-outside-org-mode'
    as this can be mistaken for an org link outside an org buffer.

* hactypes.el (link-to-regexp-match): Fix typo.

* hui.el (hui:link-possible-types): Set no-default when checking if
    at a filename; otherwise, will match at any point in a file-based
    buffer, which is only supposed to trigger at the end of the possible
    matches when 'buffer-file-name' is checked.

* test/hyrolo-tests.el (hyrolo-sort-test): Temporarily set to known
    :failing, as is a known bug.

2023-12-02  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-expand-path-list): Eliminate any non-existing
    entries after expansion.
            (hyrolo-date-format): Allow empty string to disable
    date adding/updating in entries.
            (hyrolo-set-date): Add optional 'edit-only-flag'
    when non-nil, replaces existing dates but does not add new ones;
    use as part of an edit command.  Do nothing if 'hyrolo-date-format'
    is an empty string.  These changes support the new file formats
    that HyRolo supports where you don't want a date added when jumping
    to and editing entries.
            (hyrolo-edit-date): Add for use with 'hyrolo-edit-hook'.
	    (hyrolo-edit-hook): Set to 'hyrolo-edit-date'.
	    (hyrolo-toggle-datestamps): Use 'hyrolo-edit-date'.
	    (hyrolo-to): Handle entries of all file types now supported
    by HyRolo.  If kotl-mode, move to first valid position on the line.

* kotl/kotl-mode.el (kotl-mode:example): Fix to prompt to save in
    home directory, not the current directory.

2023-12-01  Mats Lidell  <matsl@gnu.org>

* hmouse-tag.el (ibtype:def-symbol): Declare function to silence warning.

* test/hyrolo-tests.el (hyrolo-sort-test): Set default date format so the
    format used is well defined.
    (hyrolo-fgrep-and-goto-next-visible-md-heading): Use level one heading
    so that heading hierarchy is respected.

==============================================================================
V8.0.2pre changes ^^^^:
==============================================================================

2023-12-01  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-add): Fix that narrow-to-region was narrowing to a
    zero-sized region when point was not on an entry start character.
    Also fix that when moved to point-max trying optimized insertion
    but failing, never moved point back to point-min, so insertion
    would occur at the buffer end rather than the proper point.

* hargs.el (hargs:delimited): Remove use of 'bounds-of-thing-at-point'
    and (require 'thingatpt) since it doesn't use the delimiters given
    and returns wrong results.  This fixes defal tests that were failing.

* hyrolo.el (hyrolo-grep): Fix to ensure 'outline-regexp' setting for all
    matching file types is set locally in the match buffer only.
            (hyrolo-mode): Use 'setq-local' instead of 'make-local-variable'.
	    (require 'outline): Add and remove its function declarations.

* hpath.el (hpath:expand): Fix to allow return of paths with file wildcards
    that are not yet expanded.  Use 'hpath:expand-list' to expand them.
           (hpath:expand-list): Fix to call 'hpath:expand' before resolving
    wildcards, so that variables are resolved first.  Also make 'match-regexp'
    argument optional, in which case all files are matched.  Improve doc string.

2023-11-30  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-grep-file): Add 'backward-search-limit' to minimize
    backward searches to the end of the last match and to prevent
    forward search stalls in some contexts.

* hypb.el (hypb:insert-hyperbole-banner): Keep any initial line of
    variable settings (starts with -*-, e.g. for Org mode as the first
    line.

2023-11-30  Mats Lidell  <matsl@gnu.org>

* test/hui-tests.el (hui--ebut-link-directly-to-file)
    (hui--ebut-link-directly-to-dired, hui--buf-writable-err)
    (hui--gbut-link-directly-ibut, hui--gbut-link-directly-ebut): Add
    tests for ebut-link-directly.

2023-11-29  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el (hyrolo-fgrep-and-goto-next-visible-org-heading)
    (hyrolo-fgrep-and-goto-next-visible-kotl-heading)
    (hyrolo-fgrep-and-goto-next-visible-outl-heading)
    (hyrolo-fgrep-and-goto-next-visible-md-heading)
    (hyrolo-fgrep-and-goto-next-visible-kotl-heading-level-2)
    (hyrolo-fgrep-and-goto-next-visible-kotl-heading-cell-2): Add test for
    moving to next header and that action-key then brings you to the
    matching header.

2023-11-25  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el (hyrolo-fgrep-find-all-types-of-files): Test that
    all files types are searched, matches and give proper @loc>-header.

* hyrolo.el: Move private variables before their first use to remove
    warnings.

* Remove warnings for unknown functions by using declare-function.

2023-11-23  Bob Weiner  <rsw@gnu.org>

* hui-select.el (hui-select-syntax-table): Change to copy syntax
    table so changes do not affect the parent.

* hbut.el (hbut:modify-syntax): Add <> and {} pair support in text
    and fundamental modes.
          (require 'mode-local): Use in 'hbut:modify-syntax'.
  hib-kbd.el (defib kbd-key): Remove explicit syntax setting of braces
    and just temporarily use Hyperbole-modified text-mode syntax table.
  hyrolo.el (hyrolo-mode-syntax-table): Remove explicit syntax setting
    of < > delimiters; inherit from 'text-mode-syntax-table' instead.

* test/hui-select-tests.el (hui-select--thing): Fix to skip 'indent-def
    by removing final newline.  Label each test section with the type
    of match expected.
    (hui-select--thing-interactive-prints-type-of-match): Make similar
    fixes as in above function.

2023-11-22  Mats Lidell  <matsl@gnu.org>

* test/demo-tests.el (fast-demo-key-series-dired-other-window): Add test
    from demo key series.

2023-11-22  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (hkey-alist): Add clause to handle Smart Key when in
    a vertico minibuffer window; make it behave like standard vertico
    which exits and selects the first minibuffer line, not the candidate
    presently selected.

* hui-select.el (hui-select-scan-sexps): Add to fix brace handling
    as a matching pair when selecting things by using previously
    unused 'hui-select-syntax-table'.

* hmouse-tag.el (smart-lisp-bound-symbol-def): Rewrite to support
    Hyperbole type defs like defib, etc.  This improves finding
    the proper definition of a Hyperbole type.
                (find-defact-regexp, find-defal-regexp,
                 find-defib-regexp, find-defil-regexp): Add these
    entries to 'find-function-regexp-alist'.

2023-11-21  Bob Weiner  <rsw@gnu.org>

* hui-select.el (hui-select-initialize): Fix to set 'syntax-table-sym'
    and 'keymap-sym' locally within the function rather than globally
    which would affect modes beyond those in 'hui-select-markup-modes'.
                (hui-select-goto-matching-delimiter): If the key that
    invokes this command in hyperbole's minor-mode is also bound in the
    current major mode map, then interactively invoke that command
    instead.  Typically prevents clashes over {C-c .}.  Previously
    did this only for 'org-mode' but 'kotl-mode' also has a conflict
    that this fixes.
                (hui-select-thing): Apply the same above fix for
    {C-c RET}, {C-c C-m}.
  hui-mini.el (hui-search-web): Apply the same above fix for {C-c /}.
  hycontrol.el (hycontrol-windows-grid): Apply the same above fix for
    {C-c @} and fix 'outline-minor-mode' handling as a prefix keymap.
  HY-NEWS (HYPERBOLE SYSTEM): Document the above fix.

2023-11-19  Bob Weiner  <rsw@gnu.org>

* test/demo-tests.el: Fix a number of these tests to be a bit more
    robust and/or simpler.

* TAGS: Remove from git but keep including in packages and tarballs.

* hycontrol.el (hycontrol-windows-grid): Update to defer to outline
    mode keybindings in much fewer contexts.  Most windows-grid prefix
    args cannot be used by these modes, so execute the windows-grid
    command rather than deferring to these modes.

* hypb.el (hypb:display-file-with-logo): Fix banner insertion if buffer
    is read-only when created.

* hycontrol.el (hycontrol-windows-grid-by-file-pattern): Fix to error
    when num-files or grid-size is zero.

* FAST-DEMO (Implicit Buttons, Hyperbole Explicit and Global Buttons):
    Update to document implicit and explicit link button creation with
    two or more windows on screen.

* man/hyperbole.texi (HyRolo Settings): Document hyrolo-file-list
    support for wildcards, variables and directories.

* hyrolo.el (hyrolo-expand-path-list):
  hpath.el (hpath:expand-list): Expand file wildcards only when
    'find-file-wildcards' is non-nil and document this.

* hmouse-tag.el (smart-lisp-at-known-identifier-p,
                 smart-lisp-find-tag,
                 smart-lisp-at-definition-p): Add support for 'ert-deftest'
    definitions.
                (smart-entire-tags-table-list): Add to compute full list
    of tags tables to use.  Use in 'smart-tags-display' and in
    'smart-tags-find-p'.
                (smart-tags-find-p): Fix that an existing 'tags-table-list'
    was overriding 'smart-tags-file-list'.
  HY-NEWS (ERT Test Case Symbols Jump to Definition): Document new smart
    tags support for ert test case symbols.

* Makefile (LET_VARIABLES): Add to batch tests to automatically enable
    local variables in Hyperbole files that are tested.

* kotl/kotl-mode.el (kotl-mode:split-cell): Remove any whitespace around
    point before splitting the cell.

* HY-CONCEPTS.kotl: Expand and improve button descriptions
  FAST-DEMO: Add pointers to "HY-CONCEPTS.kotl", default to Org mode with
    Smart Keys active.

2023-11-17  Bob Weiner  <rsw@gnu.org>

* test/hyrolo-tests.el (hyrolo-sort-records-at-different-levels): Add
    'hyrolo-find-file' call to ensure current buffer is the first hyrolo file.
                       (hyrolo-sort-test): Change to use 'hyrolo-find-file'.

* hyrolo.el (hyrolo-mode-outline-level): Fix to handle all file formats that
    HyRolo now supports but ignore Emacs outline entry matches without trailing
    whitespace or of formfeeds, as these can cause a hang in HyRolo search.
            (hyrolo-outline-level): Add to handle 'outline-level' calculation
    unique to standard HyRolo entries (asterisk with a following whitespace
    character).
            (hyrolo-find-file): Improve 'outline-regexp' handling and set
    'outline-level' function if an Emacs outline.
	    (hyrolo-add): Compare entry-regexp against default-value of
    'hyrolo-hdr-and-entry-regexp' rather than a literal string.

2023-11-14  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-sort): Fix bug where 'hyrolo-sort-level' had assumed
    the file to sort was in the current buffer but 'hyrolo-sort' had not
    read in that file.
            (hyrolo-map-level, hyrolo-sort-level): Remove 'hyrolo-file' arg
    since had already been using current buffer instead.

* test/hpath-tests.el (hpath:find-report-lisp-variable-path-name-when-not-exists):
    Update test and doc to simply verify that 'hpath:find' errors when called
    with a non-existent path.

2023-11-13  Bob Weiner  <rsw@gnu.org>

* hbut.el (hbut:source): Add save-excursion so does not move point
    to the beginning of the source name.

2023-11-12  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:file-position-to-line-and-column): Add to translate
    character positions to an implicit link to line and column.
  hbut.el (ibut:insert-text): Simplify using the above function.

* hui-mouse.el (hkey-alist): Comment out unreleased hynote-mode clause.

* hyrolo.el (hyrolo-buffer-exists-p): Fix for improved buffer-name matching
    by using 'get-buffer' instead of 'get-file-buffer'.
            (hyrolo-next-match-function): Update to require return of the
    position of the beginning of the match.
            (hyrolo-next-regexp-match): Change to return (match-beginning 0)
    rather than the end.
            (hyrolo-grep-file): Fix to 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 (<entry-name> . <entry-source>).  If no entry delimiters,
    use the current, non-empty line as <entry-name> and add a 'hyrolo-line-entry
    text property to it.
            (hyrolo-to): Add support for non-delimited single line entries.
            (hyolo-edit): Fix to search only over a specified file.
            (hyrolo-helm-org-rifle): Fix to filter out any non-file buffers.
            (hyrolo-kill): Change to not switch buffers since shows whether the
    record was killed or not.

* hpath.el (hpath:expand, hpath:expand-list): Add optional exists-flag to return
    nil if expanded path does not exist.

* hyrolo.el (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'.
  HY-NEWS (HYROLO): Document the above new feature.
            (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-grep): Rewrote for compatibility with new caching scheme.

2023-11-11  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-initialize-file-list): Completely remove this function,
    obsolete since V8.0.1.  Use `hyrolo--initialize-file-list' instead.
            (:group '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.

2023-11-08  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:expand): Add doc for ${variable} expansion.
           (hpath:expand-list): Add to recursively expand matching files within a
    list of directories.

2023-11-07  Bob Weiner  <rsw@gnu.org>

* test/hui-tests.el (hui--ibut-link-directly-to-dired): Fix to handle
    alternative dired formats with text after the last colon on the first
    line.

* hbut.el (hbut:at-p): Document interactive call help display.

2023-11-06  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:link-possible-types): Fix CI/CD build error where ilink was
    inserted when pathname was expected due to batch diff when referent is
    in dired-mode.  Fix to skip button type clauses in this case.
  test/hui-tests.el (hui--ibut-link-directly-to-dired): Check that looking
    at a string before trying to (read (current-buffer)); otherwise,
    'read' will fail.

2023-11-05  Bob Weiner  <rsw@gnu.org>

* test/hyrolo-tests.el (hyrolo-demo-show-overview): Fix by adding
    needed (forward-line 1) before testing for a collapsed node.

* test/kexport-tests.el (kexport:koutline-calls-kexport:html): Fix to
    have proper file suffixes, now required.

* kotl/kexport.el (kexport:koutline): Trigger proper error if called
    outside of .kotl file.

* hyrolo.el (hyrolo-google-contacts-grep, hyrolo-grep-file): Ignore case.

2023-11-04  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:link-possible-types): At end of any line in a dired buffer,
    return (link-to-directory default-directory).

2023-11-01  Bob Weiner  <rsw@gnu.org>

* test/hui-tests.el (hui--ibut-link-directly-to-dired): Fix to be
    compatible with Emacs 27.1 and dependable regardless of what
    is in the dired buffer.

* hpath.el (hpath:substitute-var-name): Fix to not elide variable name
    from path unless path contains an Emacs loadable file name suffix.

* hui-mouse.el (smart-dired): If hit default cond clause and no filename
    on the current line, run dired on the current directory rather than
    triggering an error with a null filename value.
               (smart-dired-pathname-up-to-point): Always return dir
    as a full path ending in a forward slash.  Add optional 'no-default'
    arg and use in 'hargs:at-p' when reading a directory and in 'dired-mode'.

* hui.el (hui:link-possible-types): Fix so when checking if a file ref
    at point, link to the file without any position arg and don't default
    to the current 'buffer-file-name', instead drop through to further
    conditional clauses.

* hbut.el (ibut:insert-text): Fix 'actypes::link-to-file' to shorten arg1
    path relative to source dir, not referent dir.

2023-10-30  Mats Lidell  <matsl@gnu.org>

* hversion.el (hyperb:mouse-buttons):
  hpath.el (hpath:get-external-display-alist): Add mac as possible
    window-system on Mac OS.

2023-10-29  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:find):
  hactypes.el (link-to-file-line-and-column): Change so when in a Koutline, col
    num is relative to the cell indent (in addition to).
              (hpath:find-line): Add 3rd optional argument of 'col-num'.

* kotl/klink.el (klink:parse, klink:create, klink:replace-label,
                 klink:update-label, klink:yank-handler, klink:absolute):
    Update to new file#cell-ref|viewspec syntax.

* hsys-org.el (hsys-org-consult-grep-func): Add customization.
              (hsys-org-consult-grep): Add function.
  man/hyperbole.texi (Glossary:Consult): Document the above.
  HY-NEWS: Add recent updates such as 'hsys-org-consult-grep' and refill
    paragraphs to a common width.

* hui-em-but.el (eval-when-compile (require 'hyrolo)): Comment this out because
    it causes klink ibtype to load with the wrong priority (before hibtypes.el
    loads it).  See comment in the file.
  hinit.el: Fix so hibtypes is loaded before hui-menu to prevent klink defib
  priority from being set improperly.

* kotl/kcell.el (kcell:ref-to-id): Handle string labels at the beginning of cells.
  kotl/kview.el (kcell-view:cell-from-ref): Fix to handle strings returned from
    'kcell:ref-to-id' with idstamp and viewspec and to handle string labels
    at the beginning of cells.

2023-10-28  Bob Weiner  <rsw@gnu.org>

* hpath.el (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.
  test/hibtypes-tests.el (ibtypes::pathname-anchor-line-test):
  test/hmouse-drv-tests.el (hbut-pathname-anchor-line-test,
                            hbut-pathname-line-column-test): Fix relative line
    numbers to match fix for off-by-one error.

* kotl/kotl-mode.el (requires): Remove 'kvspec' and 'kcell' which are already
    required by 'kfile'.  Add 'klink' which is missing.
                    (kotl-mode:goto-heading): Add to go to a string heading at
    the beginning of a cell.  Must end with a colon or a newline.
                    (kotl-mode:goto-cell): Handle cell headings and tighten
    idstamp and relative label checks.
  kotl/kcell.el (kcell:parse-cell-ref): Handle cell headings.

* kotl/klink.el (klink:act): Fix doc to reflect that 'start-pos' arg refers
    to the start of the cell-ref in the link, not to the link's referent.
                (klink:at-p): Limit matches to .kotl? files.

* hpath.el (hpath:find):
* kotl/klink.el (link-to-kotl, klink:parse, klink:at-p, klink:replace-label,
    klink:update-label): Support # anchor refs that use cell-refs to kotl files.
  kotl/kotl-mode.el (kotl-mode:goto-cell-ref): Add for use in kotl anchored
    pathname refs and in 'link-to-kcell' actype.

2023-10-25  Mats Lidell  <matsl@gnu.org>

* test/hui-tests.el (hui--ibut-link-directly-to-file)
    (hui--ibut-link-directly-to-dired)
    (hui--ibut-link-directly-with-label): Test cases for
    ibut-link-directly

2023-10-22  Mats Lidell  <matsl@gnu.org>

* hui-select.el (hui-java-defun-prompt-regexp): Add prompt regexp as
    separate defconst. Update provided by Alan Mackenzie. Thanks.
    (hui-select-initialize): Use new java regexp.

* test/hui-tests.el (hui-gbut-number-of-gebuts-from-mail-mode): Remove
    expected to fail.

* hbut.el (gbut:ebut-key-list): Use hbdata:to-entry-in-file for global
    button file data.

* hbdata.el (hbdata:is-but-data-stored-in-buffer)
    (hbdata:to-entry-in-buffer, hbdata:to-entry-in-file): Refactor into
    three methods to separate out button data stored in a file.
    (hbdata:to-entry-buf): Use new methods.

2023-10-22  Bob Weiner  <rsw@gnu.org>

* hbut.el (gbut:save-buffer): Add function to use after global button file is
    edited.
* hui.el (hui:gbut-delete, hui:gbut-rename, hui:gbut-link-directly): Save
    global button file after create/edit.
         (hui:link-possible-types): Fix missing `no-default' arg when testing
    if on a directory or file name.

2023-10-21  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (markdown-follow-inline-link-p): Fix to process anchored
    path links rather than dropping through to another ibtype since that
    would trigger an error since point would have been moved in order to
    leave it on the path and not the name part of a markdown link.  Remove
    need to move point by calling 'markdown-link-url'.

* hmouse-tag.el (smart-lisp-find-tag): Fix that some tags were not found by
    xref because this function turned on xref-etags-mode in Elisp files
    rather than using its elisp backend.  Remove that code.
                (tags-fix): Remove optional load of this very old file.

2023-10-11  Mats Lidell  <matsl@gnu.org>

* test/hui-tests.el (hui-gbut-number-of-gbuts-with-no-buttons)
    (hui-gbut-number-of-gibuts-when-one-button)
    (hui-gbut-number-of-gebuts-when-one-button)
    (hui-gbut-number-of-gibuts-from-mail-mode)
    (hui-gbut-number-of-gebuts-from-mail-mode): Verify number of global
    ibuts and ebuts.

2023-10-09  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el (kotl-mode-kill-contents)
    (kotl-mode-kill-contents-all): Add kotl-tests for cell contents
    removal.

2023-10-07  Mats Lidell  <matsl@gnu.org>

* hsys-org-roam.el: Byte compile. Warning is handled by declaration.

* Makefile (EL_SRC): Add macro for all el-files, both compiled and not
    compiled.

* hui-mini.el: Update defcustom type for hui-mini menus.

2023-10-05  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el (kotl-mode-kview-buffer-local)
    (kotl-mode-kvspec-saved-with-file)
    (kotl-mode-kvspec-independent-between-files): Add test for buffer
    local kotl-kview.

2023-10-04  Mats Lidell  <matsl@gnu.org>

* kotl/kview.el (kotl-kview): Add kotl prefix to kview and use
    defvar-local.

* General removal of warnings by using defvar and declare-function for
    variables and functions not covered by requires.

2023-10-03  Mats Lidell  <matsl@gnu.org>

* Makefile: Compile each el file in a separate Emacs process so that the
    compilation environment is clean and produces relevant warning
    messages.

2023-10-02  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol--blank-buffer): Add a space in front of buffer
    name so it is hidden from buffer listings.

* test/demo-tests.el (demo-annotated-reference-test):
  test/hmouse-drv-tests.el (hbut-annot-bib-test):
  test/hibtypes-tests.el (ibtypes::annot-bib-test):
  DEMO (Annotated Bibliography Buttons): Remove since won't work when DEMO
    is displayed in 'org-mode'.

* hibtypes.el (annot-bib): Fix doc to mention modes excluded.

* hypb.el (hypb:display-file-with-logo): Temporarily disable use of
    'org-mode' until can fix broken tests by setting 'hsys-org-enable-smart-keys'
    to t.

2023-10-01  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Keyboard Drags):
  DEMO (Creation via Ace Window): Doc prefix args to {M-o w} ace-window
    link button creation.

* hargs.el (hargs:at-p): Fix when on a two part menu item to use the
    more specific part to link to the correct location, e.g. on Index
    entries.

* HY-ABOUT:
  MANIFEST: Format for org-mode display.
  hypb.el (hypb:display-file-with-logo): Add use of 'org-mode' to supplement
    view minor mode.

* hui.el (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.

* hmail.el (hmail:hbdata-to-p): Add 'widen' call when hbdata is in
    the button source buffer and no file is attached, so that it is
    temporarily made visible/searchable.

2023-09-19  Bob Weiner  <rsw@gnu.org>

* test/hibtypes-tests.el (ibtypes::pathname-load-path-line-column-test):
    Fix to handle when a prior hypb.el buffer exists.

* hpath.el (hpath:normalize): Fix arg name to match name in doc.
    Fix to trigger an error if arg is anything but a readable filename.
           (hpath:shorten): Add and use in 'ibut:insert-text'.

* hibtypes.el (pathname-line-and-column): Fix label selection to always
    include whole delimited path.  Previously, only a part of the path
    might flash as a button.

2023-09-18  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Menus):
  hui-mini.el (hui:menu-choose): When on the initial Hy9> prompt of the
    top-level menu and press RET:
      Remove extra call to 'hyperbole-minibuffer-menu'.
      Change so quits the minibuffer menu and leaves Smart Key update
      message in the minibuffer.

* hversion.el (hyperb:path-being-loaded): Remove; no longer used.

* hbut.el (ebut:operate): Add error checks similar to 'ibut:operate'.

* hmouse-drv.el (hkey-window-link):
  man/hyperbole.texi (Keyboard Drags): Add prefix arg doc for {M-o w}
  where ibuts are created.

* hui.el (hui:ibut-link-directly): This may be invoked via 'hkey-either'
    which runs the Assist Key when given a single C-u prefix argument.
    In such a case, don't use the prefix argument as a flag to prompt
    for the ibutton name as we want to just insert the appropriate ibut
    without any prompting.
         (hui:ebut-link-directly): Change "Create button" to "Create ebutton".

* hpath.el (hpath:to-markup-anchor, hpath:to-line): Update to find matches
    outside narrowed area.

2023-09-17  Bob Weiner  <rsw@gnu.org>

* hbut.el (ebut:operate): Fix that ebut metadata was not hidden after an
    'hui:ebut-create' call by adding a conditionalized call to
    'hmail:msg-narrow'.

2023-08-29  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:operate): Fix to ensure point is within button after
    name deletion or new button insertion.

* hui.el (hui:ibut-link-directly, hui:ebut-link-directly,
         hui:gbut-link-directly): Start by clearing 'hbut:current
    attributes.

2023-08-28  Bob Weiner  <rsw@gnu.org>

* hargs.el (hargs:delimited): Fix to add full length (rather than -1)
    chars of opening delimiter to search forward limit so match to
    opening delimiters when point is immediately before.

* hbut.el (ibut:create): Fix to move point within ibut text only if
    found a matching ibut at point.  If point is in front of the text
    delimiter and no name, don't move point.

* hpath.el (hpath:at-p): Fix to not send a string with "::" in it to
    'file-readable-p' which will trigger a no read method found error
    otherwise.  Also, return nil if path is an empty string.

* hibtypes.el (org-id): Tighten match to just Org ID characters and restore
    buffer mode to prior mode when necessary after 'org-id-find' switches
    it to Org mode.

* hui.el (hui:ibut-link-create): Fix to handle name attributes properly.

* hargs.el (hargs:iform-read): Reset global 'hargs:defaults' to nil when not used
    to prevent errant values in any future calls.

* test/hsys-org-tests.el (hsys-org:cycle-on-header-cycles-visibility): Fix to
    handle any moving over invisible lines properly.

* test/hmouse-drv-tests.el (hbut-pathname-env-variable-test): Fix to match
    dir exactly, not just prefix.

* hui-mouse.el (smart-eobp): Autoload so don't have to require for 'completion'
    actype.

* kotl/kotl-mode.el (kotl-mode:to-valid-position): Autoload so don't have to
    require for 'hui-select-indent-def'.

* hload-path.el (make-directory-autoloads): Declare function for when it doesn't
    exist (Emacs 27).
  kotl/kotl-mode.el (kotl-mode:copy-region-to-buffer): Use 'with-current-buffer'
    to prevent warning.
  test/hpath-tests.el (hpath:substitute-value-test): Locally bind hypb:*-var
    to prevent free var reference warning.
  hyrolo.el (hyrolo-google-contacts-insert-data): Locally bind 'child' to prevent
    free var reference warning.

* kotl/kotl-orgtbl.el (kotl-mode:transpose-lines-up): Fix to restore point.
                      (kotl-mode:transpose-lines-down): Implement this command.

* test/hyperbole-tests.el (hyperbole-key-bindings): Fix to handle all variants of M-RET.

* test/kotl-mode-tests.el (kotl-mode-move-up-to-first-line): Add non-failing test.

2023-08-27  Bob Weiner  <rsw@gnu.org>

* test/hui-register-tests.el (hui-register-test--register-val-insert-ibut): Fix this test.

* hbut.el (ebut:to): Simplify so if 'lbl-key' is nil, look only for ebutton at point.
          (ibut:to): Simplify so if 'name-key' is nil, look only for ibutton at point.
    Fix so finds any matching name-key without using attributes of hbut:current.

* hsys-www.el (eww-browse-url): Remove unused '(let ((url-allow-non-local-files t))'.

* hbdata.el (hyperb:user-email): Declare to avoid byte compiler warning.

* hypb.el (hypb-mail-address-tld-regexp, hypb-mail-address-regexp): Moved from "hibtypes.el"
    and renamed to 'hypb:mail-address-tld-regexp', 'hypb:mail-address-regexp'.
          (mail-address-mode-list):  Moved from "hibtypes.el" and renamed to
    'hypb:mail-address-mode-list'.
  hibtypes.el (mail-address)
  kotl/kexport.el (kexport:html-replacement-alist): Update use of above variables.
  hib-social.el:
  hibtypes.el (require 'hypb): Add for defs of above variables.
  hyrolo.el (hyrolo-mail-to): Ref above new var name.

* hib-kbd.el (hui-mini): Add (require 'hui-mini) and move private vars before first
    usage to remove byte-compiler warnings.

* hsys-org.el (hsys-org-at-read-only-p):
  hbut.el (ibut:org-at-read-only-p, ibut:operate): Trigger errors when point is on
    read-only text, read-only Org contexts, explicit buttons, or emacs push-buttons.

* hyperbole.el (hyperbole--enable-mode, hyperbole--disable-mode): Stop setting
    'mark-even-if-inactive' to nil as this is no longer needed.  As a result, remove
    'hyperbole--mark-even-if-inactive'.

* hui.el (hui-kill-ring-save): Fix interactive args to match comment, passing
    (mark) and then (point) rather than (region-beginning) and (region-end).

2023-08-25  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:operate): Skip past any inserted comment chars prior to
    ibut at point.

* hbut.el (ibut:operate): Before call 'ibut:at-p', leave point after any opening
    ibut delimiters, since may have just deleted the button name, for example.

* hbut.el (ibut:delete): Also clear in-memory version of the button.
          (ibut:rename): Clear any in-memory current button attributes so
    cannot reference any invalid buffer locations after rename.  Also, improve
    doc string.

* hbut.el (ibut:to): Replace 'ibut:at-p' calls with 'hbut:current since
    button should have been recoginized and created in-memory before this
    is called.

2023-08-23  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:create): Comment out clear of 'hbut:current attributes to prevent
    failure from 'ibut:at-p' calls when using 'ert-deftest'.

2023-08-22  Bob Weiner  <rsw@gnu.org>

* hypb-ert.el (hypb-ert-def-at-p): With optional 'start-end-flag', return list of
    (test-name test-name-start-pos testname-end-pos).
              (hyperbole-run-test-definition): Use above flag and set name as button
    label to flash in this ibtype.

* hui.el (hui:hbut-operate): Fix so point is temporarily moved to the start of the button
    text before flashing an activating a button.

* test/hmouse-drv-tests.el (hbut-pathname-path-variable-with-three-colons-is-a-path-test):
  test/smart-org-tests.el (smart-org-mode-with-smart-keys-buttons-on-hypb-button-activates)
	                   smart-org-mode-with-smart-keys-on-hypb-button-activates):
  test/hui-register-tests.el (hui-register-test--register-val-insert-ebut):
  test/hypb-tests.el (hypb:installation-type-test): Make work under Windows where path root
    is "c:/".

* kotl/klink.el (klink:at-p): Fix to not confuse Windows path drive prefixes with URL protocol
    prefixes.

* hargs.el (hargs:iform-vector): Fix 'D' to read a dir name, not a file name.

* hbut.el (ibut:program): Capture existing ibut name at point in any error.

2023-08-20  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:operate): Call ibut:insert-text only when hbut:current 'actype
    attribute is non-nil.
          (ibut:operate): Remove appending of 'instance-flag' to hbut:current 'name
    and replace with 'ibut:at-p' call.

2023-08-13  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:set-name-and-label-key-p): Save both name-start and name-end pos.
          (ibut:delete-occurrence): Use above button attributes and remove 'name'
    argument.
          (ibut:delete): Fix to delete ibut name and text.

2023-08-10  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:set-name-and-label-key-p): Fix to find preceding name when point is
    within delimited text; previously was not accounting for text opening delimiter.
          (ibut:label-p): Clarify doc string.

* hui.el (hui:hbut-delete): Improve doc on which implicit button key is used.

* hbut.el (ibut:delete): Fix to delete all occurrences of the same ibut in current buffer.
	  (ibut:delete-occurrence): Add to delete a single named or unnamed ibut if
    buffer is not read-only.
          (ibut:to): Change 'hbut:label-regexp' to 'ibut:label-regexp'.

2023-08-08  Bob Weiner  <rsw@gnu.org>

* hui-mini.el (hui:menus): Remove delq from top-level menu where never
    dynamically delete entries.

* hibtypes.el (parse-label-and-file): Rename to 'hlink:parse-label-and-file' to
    prevent prefix byte-compiler warning.

* kotl/klink.el (klink:create): Fix interactive spec.

* test/hmouse-drv-tests.el (hbut-ib-create-label): Fix by allowing recursive minibuffers.

* kotl/kotl-mode.el (kotl-mode:self-insert-command): Remove special kotl-mode auto-filling
    is handled by regular 'self-insert-command'.  This fixes improper hanging indent auto-
    filling in kcells due to narrowing kcell to text contents only, hiding the cell prefix.
                    (kotl-mode:pre-self-insert-command):
  kotl/kotl-orgtbl.el (kotl-mode:setup-overriding-orgtbl-keymap): Remove reference to
    'kotl-mode:self-insert-command'.

2023-08-06  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:create): Fix to move point inside the delimited text of an ibut rather than just
    outside.
          (ibut:set-name-and-label-key-p): Make interactive so can call and have 'hbut:current
    attributes displayed.

* hargs.el (hargs:iform-extensions-vector): Fix kcell read to not use a completion collection
    but just a type.

* hargs.el (hargs:reading-symbol): Remove, not needed, use 'hargs:reading-type'.

* hyperbole.el: Remove '(hyperbole-mode 1)' call upon loading this file; was for compatibility
    with prior Hyperbole versions but since V8, instructions have been to add that to personal
    init.  Remove it as loading an Elisp file should not enable a minor mode.

* hargs.el (hargs:make-iform-vector): Move saving of prev `hargs:reading-type' to here so does
    not have to be done in multiple places elsewhere.
           (hargs:iform-extensions-vector, hargs:iform-extensions-vector, hargs:iform-read):
    Remove saving of prev `hargs:reading-type' here.

* hargs.el (hargs:iform-extensions-vector): Remove setting of 'prev-reading-p' used to
    restore 'hargs:reading-symbol' value after 'unwind-protect' code block runs for Info-node
    and Info-index-item.  Should be 'hargs:reading-type' instead and this is handled
    automatically by 'hargs:iform-read'.

* hui-mouse.el (hkey-alist): Deprioritize `smart-org' to after hargs argument or minibuffer
    menu reading.

* hactypes.el (link-to-kcell, link-to-mail): Fix interactive call with Hyperbole extension
    format to use `hargs:iform-read'.

* hargs.el (hargs:at-p):
  kotl/klink.el (klink:create): Fix storage of button source buffer default-directory since
    dynamically bound let was not working due to shift to lexically-bound code.  Instead
    store this value in the 'hbut:current 'dir property.

* kotl/kfill.el (kfill:fallback-fill-paragraph): Add '(not (eq fill-paragraph-function t))'
    to fix no function, basic fill case.

2023-08-02  Mats Lidell  <matsl@gnu.org>

* .github/workflows/main.yml (jobs): Add version 29.1 to CI workflow.

2023-07-30  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hyperb:init): Fix potential unbound use of vertico-mouse-mode.

* kotl/kotl-mode.el (kotl-mode:next-line, kotl-mode:previous-line): Fix that moving from
    2nd line to first triggers a begin-of-buffer error and the same at the end of the
    buffer.

* kotl/kfill.el (kfill:forward-line): Fix to report number of lines left to move relative
    to N.

* hmouse-tag.el (smart-tags-display): Replace obsolete 'find-tag' call with
    'xref-find-definitions'.

* hargs.el (hargs:at-p): FIX: Ensure 'vertico-mouse--index' is fboundp before calling it.
    Also fix to return whole string rather than the empty string when point is at the
    end of the minibuffer.
           (hargs:select-p): Clarify potential use of 'value' argument in doc str.
    Also fix so during completion, minibuffer contents are not used unless they match
    a valid completion or are empty and default can be used.
	   (hargs:match-p): Add for when vertico.el is not available and use in
    `hargs:select-p'.

* hmouse-drv.el (action-key, action-key-internal): FIX: Set 'action-key-depressed-flag'
    to t when executing keyboard action-key actions.
                (assist-key, assist-key-internal): FIX: Set 'assist-key-depressed-flag'
    to t when executing keyboard assist-key actions.

* hsys-org.el (hsys-org-global-cycle, hsys-org-cycle): FIX: Temp move point to beginning
    of heading so TAB invocations cycle through all states properly.

2023-07-24  Mats Lidell  <matsl@gnu.org>

* Makefile (install-elpaca):
  install-test/MANIFEST:
  install-test/elpaca/.emacs: Add elpaca install test.

2023-07-22  Bob Weiner  <rsw@gnu.org>

* hargs.el (hargs:at-p): Make Action Keyboard Key behave the same as the Action Mouse
    Key when in the minibuffer, deleting any characters to the right of point.

2023-07-17  Bob Weiner  <rsw@gnu.org>

* hypb-ert.el (require): Wrap 'eval-and-compile' call around this to force require
    of "hbut" which defines 'defal' and prevents compilation error when "hibtypes"
    tries to load this.

2023-07-14  Mats Lidell  <matsl@gnu.org>

* test/hmouse-drv-tests.el (hbut-pathname-line-test)
    (hbut-pathname-line-test-duplicate):  Add tests for pathname with line
    number specification.

2023-07-13  Mats Lidell  <matsl@gnu.org>

* test/hmouse-drv-tests.el (hbut-pathname-anchor-must-match-all)
    (hbut-pathname-anchor-trailing-text): Add tests for pathname with
    anchor.

2023-07-11  Mats Lidell  <matsl@gnu.org>

* Makefile (version, $(pkg_parent)/hyperbole-$(HYPB_VERSION).tar): Do not
    include hyperbole-el.pkg. It is generated by elpa and not needed for a
    plain tar archive of the package.

2023-07-10  Mats Lidell  <matsl@gnu.org>

* hargs.el (hargs:at-p):
  hmouse-drv.el (hmouse-choose-link-and-referent-windows): Use let to
    define free vars.

* hyrolo.el (hyrolo-add-hook, hyrolo-edit-hook): Defvar the hooks.

* hycontrol.el:
  hui-mouse.el:
  hmouse-drv.el:
  hyrolo.el: Add public declarations for multiple libraries.

* hargs.el: Add public declarations for vertico and ivy.

* hactypes.el (link-to-org-id, link-to-org-id-marker): Do not quote as
    functions they are defact and not understood as functions by the byte
    compiler.

2023-07-09  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:delimit): Add name separator after delimiting name if not already
    there but ensure point stays at end of the delimited name.
          (ibut:operate): Update doc string with caller responsibilities.
	  (ibut:program): Fix to send 'edit-flag' to 'ibut:operate' call when point
    is on an existing ibutton.  Remove 'cannot nest error' since 'ibut:operate' will
    now modify the existing ibutton.
          (ibut:insert-text): Don't insert name separator if looking at one in the buffer.
	  (ibut:operate): Fix to not trigger an error when adding a name to an ibut
    that does not have one.

* hypb-ert.el (hypb-ert-*): Change all calls of 'ert' to disable ert's messages
    so that any test's message is displayed after an hypb-ert test case run.
              (hypb-ert): Change 'ert' calls to use 'hypb-ert' and centralize
    'message' function override when possible to deal with different 'ert'
    calling conventions in different Emacs versions.

* hbut.el (ibut:operate): Update doc of each state.

* test/hbut-tests.el: Finish adding all ibut:operate tests; still need to update
    ibut:operate to conform to all tests.

* test/demo-tests.el (demo-annotated-reference-test): Fix to always search from
    buffer start.

2023-07-08  Bob Weiner  <rsw@gnu.org>

* test/demo-tests.el (demo-implicit-button-action-button-boolean-function-call-test):
    Rename to 'demo-implicit-button-action-button-display-boolean-test' so can
    find when search for use of 'display-boolean'.

* hactypes.el (display-boolean): Improve clarity of output message.
  test/hactypes-tests.el (display-boolean-true-test, display-boolean-false-test):
    Update to new output message format.

* hpath.el (hpath:absolute-arguments): Fix to process only string arguments.

* hibtypes.el (action): Fix 'args' not being set right after add display-* actypes.
    Stop storing unneeded ibutton 'action attribute.

* hact.el (actype:action): Fix doc to say may return actype's fboundp symbol.
    Use 'actype:action-body' if always need the body of the function.
          (symtable:actype-p): Fix to return Elisp function symbols as well
    since 'actype:elisp-symbol' is an alias to this defsubst.
          (symtable:hyperbole-actype-p): Add to exclude Elisp function symbols.
          (actype:act): Use above new function.

* DEMO (Completion Selection):
  man/hkey-help.txt:
  man/hyperbole.texi (Smart Key Argument Selection): Update to new minibuffer
    argument handling including Vertico support.

2023-07-05  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:markdown-section-pattern, hpath:outline-section-pattern): Fix
    to allow for opening pair chars after matching anchor (previously had to be a
    :punct: character only).

2023-07-04  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hyperb:init): Activate 'vertico-mouse-mode' when
    'vertico-mode' is used so that the Action Key properly selects completions
    from the candidate list.  Since Vertico displays completions automatically,
    must initialize this before Vertico is invoked so cannot wait until a Smart
    Mouse Key is first pressed.
  hargs.el (hargs:select-p):
           (hargs:at-p): When 'hargs:reading-type' is nil, rather than a
    string, return a list of (completion-so-far exact-completion-match),
    for consumption by 'hargs:select-p'.  Add feature to kill to end of
    minibuffer line and refresh completions when not inserting a fully
    matching completion (works for regular and vertico completions if
    'vertico-mouse-mode' has been enabled prior to using).

* hmouse-sh.el (hmouse-posn-set-point): Avoid setting point to a read-only
    location when vertico-mode is active.

2023-07-03  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-help): Remove ref to XEmacs 'help-selects-help-window'.

* hargs.el (hargs:select-p): Add vertico and ivy completion support.
           (hargs:at-p): Add vertico support.
  hui-mouse.el (hkey-alist): Remove ivy support; move above.

* hact.el (actype:act): Fix error when 'args' are null.

* hbut.el (hbut:action): Fix error when 'atype' is not a symbol.

* hmouse-sh.el (hmouse-drag-region): Disable Hyperbole-specific functionality
    when hyperbole-mode is nil.

2023-07-02  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:ibut-create):
  hbut.el (ibut:program): Prevent from creating a new ibut within a named
    or labeled Hyperbole button.

* hui.el (hui:ibut-create): Call (hattr:clear 'hbut:current) before creating
    in-memory button.

* hib-social.el (hibtypes-social-default-service): Pluralize defgroup name to
    'hyperbole-buttons' to match other files.  Remove duplicate unneeded
    :group from each defcustom.

2023-07-01  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:link-possible-types): If in a .texi but not within a node, don't
    raise error, just use a link-to-file-line instead.

* hui-menu.el (infodock-hyperbole-menu):
  hui-mini.el (hui:menus): Add Link item calling 'hui:gbut-link-directly'.
  man/hyperbole.texi (Global Buttons): Add doc for new Gbut/Link item.
  hui.el (hui:gbut-link-directly): Add to create named global link buttons based on
    current windows.
         (hui:gbut-create): Update to prompt for ibut name when called interactively.
    Also, prompt if 'lbl' arg is nil and prompt for ibut text when called with a
    prefix argument, 'ibut-flag'.  Also check that start and end buffers are the same
    when creating an ibut.
         (hui:ebut-edit, hui:gbut-edit, hui:hbut-label): Fix to not allow blank labels.
         (hui:ebut-link-directly, hui:ibut-link-directly): In body, clear Smart Key
    variables if not called interactively (since interactive clause also clears these
    variables).  Also, if a button already exists at point, return t else nil.  This
    lets the caller know what type of create/edit msg to display.  If not editing
    an existing button, when prompting for a name or label, use any active and
    highlighted region as the name or label.

2023-07-01  Mats Lidell  <matsl@gnu.org>

* hui.el:
  hpath.el:
  hbut.el:
  hbdata.el: Fix single quotes in docstrings.

* kotl/kview.el (kcell-view:to-label-end): Add missing point to error
    message.

* hactypes.el (require): Load hsys-org for org-fold-show-context.
    (link-to-org-id-marker): Use org-fold-show-context.
    (org-roam-id-find): declare-function.

* hyperbole.el: Preload `kotl-autoloads`.  Submitted by Stefan
    Monnier. Thanks Stefan.
    Align header fields consistently with other files.

2023-06-30  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-window-link): Move action/assist-key-clear-varriables
    calls into hui:*but-link-directly calls so happens every time they are
    called.

* man/hyperbole.texi (Glossary): Fix to note gbut:file is a function, not
    a variable.

2023-06-29  Mats Lidell  <matsl@gnu.org>

* hyrolo.el: Remove redundant `:group` args.  Remove obsolete `*` in
    `defcustom` docstrings. Contribution from Stefan Monnier. Thanks Stefan.

* hbut.el (defib): Remove redundant indent property. Change by Stefan
    Monnier.

2023-06-27  Bob Weiner  <rsw@gnu.org>

* test/hbut-tests.el (hbut-tests:should-match-tmp-folder): Change to use
    a regexp 'string-match-p' to a string input rather than a 'member' test
    to a list of lists.

2023-06-25  Bob Weiner  <rsw@gnu.org>
* hbut.el (ibut:to-name, ibut:at-p, ibut:to-text): Remove test call to
    'hbut:outside-comment-p' since ibuts don't have to be within programming
comments.  This fixes ibtype 'hyperbole-run-test-definition' failing to match
and thus action-key not running an ert def when pressed within a test def.

* hibtypes.el (annot-bib): Fix missing check that annot-bib is between square
    brackets.
  hactypes.el (annot-bib): Beep/fail if when search for citation, point ends up
    within the ibut reference rather than the citation itself.

* hibtypes.el (org-link-outside-org-mode): Revert to pre-Stefan changes since not
    yet integrating variable check instead of 'hyperb:stack-frame' calls.

* hactypes.el (rfc-toc): Fix wrong 'select-buffer' call by replacing with
    'switch-to-buffer' for permanent return to original buffer.

2023-06-24  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:ibut-link-create): Fix name attribute not getting set when creating a
    new ibutton.  Rename 'but-edit' to 'edit-flag' and always send name arg to
    'ibut:operate' call so that button name attribute is always set when given.
         (hui:ebut-link-directly, hui:ibut-link-directly): Change 'but-edit' to
    'edit-flag'.
  hbut.el (ibut:operate): Add 2nd edit-flag parameter; when non-nil, means modifying
    an existing ibut at point.

2023-06-23  Mats Lidell  <matsl@gnu.org>

* Makefile (LOAD_EL): Avoid the trailing quotation mark.

2023-06-22  Mats Lidell  <matsl@gnu.org>

* test/demo-tests.el (hypb-should-browse-demo-was-called) Add check that
    url was called.
    (demo-www-test-with-quotes): Test for url in quotes.

2023-06-22  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (By Menu): Add section similar to that of Ibuts, documenting
    new Ebut/Link command.
                     (By Dragging): Move to after By Menu and add paragraph similar
    to Ibut one.
                     (By Link): Add this as a separate subsection.

2023-06-21  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (texinfo-ref): Replace 'match-string' with 'match-string-no-properties'.

* hbut.el (ibut:at-type-p): Remove dynamic binding of 'types' for 'hact' which no
    longer uses it.

* test/hy-test-dependencies.el: Require hyperb:dir def and add test/ dir to load-path.

* kotl/kview.el (kview:char-invisible-p): Remove and use '(invisible-p (point))'.
                (kview:char-visible-p): Remove and use '(not (invisible-p (point)))'.
                (kview:first-invisible-point, kview:first-visible-point,
                 kview:previous-visible-point):
  kotl/kotl-mode.el (kotl-mode:eolp, kotl-mode:eolp, kotl-mode:to-visible-position):
    Make the above updated calls in these functions.

2023-06-20  Bob Weiner  <rsw@gnu.org>

* hui-window.el (hmouse-pulse-iterations): Add to temporarily override
    `pulse-iterations' with this for hmouse operations and use in hmouse-pulse-*
    functions.
  hui.el (hui:ebut-link-directly, hui:ibut-link-directly): Add hmouse-pulse-line
    to highlight referent line linked to.

2023-06-21  Mats Lidell  <matsl@gnu.org>

* Makefile (LOAD_EL): Use gnu make pattern substitution.

2023-06-19  Bob Weiner  <rsw@gnu.org>

* hactypes.el: (link-to-regexp-match): Replace 'find-file-noselect' with
    'hpath:find-noselect' so relative Elisp paths are resolved properly.

* hbut.el (ibut:insert-text): Add 'actypes::link-to-string-match' support.

* hpath.el (hpath:substitute-var-name): Remove matching path rather than adding the
     variable to the path when the variable is one for Elisp files.  These can be
     resolved without the variable being included in the path.

* hui.el (hui:ebut-link-directly, hui:ibut-link-directly): Fix so does not use
    Smart Key depress/release windows when called interactively.
         (hui.el (hui:ibut-link-directly): With prefix arg, name-arg-flag, prompt
    for a name for the ibut and insert it.

* man/hyperbole.texi (Implicit Buttons): Document the Ibut menu changes below.
  hui-mini.el (hui:menus): In Ibut menu, add Link which runs 'hui:ebut-link-directly'.
                           In Ibut menu, rename Label to Name and add Link which
    runs 'hui:ibut-link-directly'.
                           Change all doc string tense from 'Displays' to 'Display'.
  hui-menu.el (infodock-hyperbole-menu): Do the same as above for pulldown Explicit-Button
    and Implicit-Button menus.

* hui.el (hui:link): Rename to 'hkey-link' and move to "hmouse-drv.el" since only
    ever used in 'hmouse-choose-windows' call.  Make an autoload.

* hmouse-tag.el (smart-emacs-lisp-mode-p): Change 'string-match' to 'string-match-p'
    since don't use match groupings.
                (smart-lisp-at-known-identifier-p): Fix missing open paren pair in
    last cond clause.

* kotl/kotl-mode.el (kotl-mode:add-cell): Fix that when inserting a child cell in
    a tree with hidden/collapsed cells, 'kcell-view:forward' was called
    with a 't arg that skipped over invisible cells, moving to the end of a tree
    rather than just the next invisible cell.  This made 'klabel-type:update-labels'
    miss updating all the invisible cells after the insertion point.

* kotl/kview.el (kview:outline-regexp): Fix that 'kview:default-label-separator'
    was not regexp-quoted here, leading to false label matches at the beginnings
    of lines and wrong computation of the location of the start of cells.  Somehow
    this fix was lost from when applied before on 2022-08-20.
                (kcell-view:to-label-end): Fix to use 'kview:outline-regexp' only
    after failing to find a 'kcell property to mark end of label since this can
    lead to false matches that move cursor improperly at times, i.e. when a line
    of text starts with a label-matching pattern, e.g. '3a.'

* hpath.el (hpath:to-markup-anchor): Fix doc.

2023-06-18  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:at-p): If path at point is just an hpath:prefix-regexp
   char, then don't set non-exist to t.

* hibtypes.el (pathname): Don't match to a path of a single "-".

* hmouse-drv.el (hmouse-choose-link-and-referent-windows): Add to choose
    link and referent windows for hui:*but-link-directly commands.
                (hmouse-keyboard-choose-windows): Add to choose start and
    end windows from the keyboard. NOT YET WORKING.

* hypb.el (hypb:count-visible-windows): Add.

* hui.el (hui:ebut-link-directly, hui:ibut-link-directly):
    Trigger an error if there is only one visible window.  Use
    ace-window package to select referent window when available; otherwise
    select the referent window by clicking the mouse.
         (hui:ibut-link-directly): Fix was using Action windows instead of
    Assist.

* FAST-DEMO (Introductory Videos): Add video snippets of Hyperbole Overview
    talk in first table so users can see and hear about Hyperbole in couple
    minute bursts.

* hbut.el (ibut:label-separator-regexp): Add '|' as a separator character
    so can have ibut names and text in separate Org table columns.

* hmouse-drv.el (hkey-debug): Add Action and Assist Key depress and release
    window information.

2023-06-17  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:ibut-link-directly): Document new inter-window Assist Mouse
    Key handling.

* hui-window.el (hmouse-alist-add-window-handlers): Separate checks of
    dragging items to modeline from dragging within a window when not
    on a modeline with a release on a modeline.  This clarifies the
    context when {C-h A} is used.

* kotl/klink.el (klink:act): Improve doc; update link node label only
    if point is within a koutline.

* hpath.el (hpath:delimited-possible-path): Skip if at end of line since
    paths cannot span lines and therefore cannot be within one.

* hibtypes.el (rfc): Set lbl-start and lbl-end attributes.

* hbut.el (ibut:set-name-and-label-key-p): Improve doc and return 't when
    just lbl-start is found for named, non-delimited ibuts.
          (ibut:label-p): Ensure match does not contain delimiters, as it
    may have run past the beginning of another button.
          (ibut:label-set): Improve doc.
	  (ibut:operate): Improve instance handling.
	  (ibut:insert-text): Fully handle klinks, add 'man' actype support,
    and handle error when actype is nil.
          (ibut:program): Remove condition-case around whole function so that
    errors can be seen with tracebacks.

* hargs.el (hargs:delimited): Update to handle regexps with match to bol that
    does not move point forward; move forward a char each iteration

* test/hui-tests.el (hui-gibut-create-link-to-file-line,
                     hui-gibut-create-link-to-file-line-and-column): Improve
    readability and add check of 'name attribute.
  test/hy-test-helpers.el (hy-test-helpers-verify-hattr-at-p): Add support
    for 'name attribute.
  test/hibtypes-tests.el (ibtypes::annot-bib-test): Fix.
  test/hbut-tests.el: Fix some free variable scoping issues; remove unused
    local variables
  (hbut-tests-actypes-list): Separate out ibutton test data
    and add data to test ibtype is correct.
                     (hbut-tests-ibut-insert-text-temp-buffer): Rename to
    'hbut-tests-ibut-insert-links'; rewrite to simplify and make more reusable.
                     (hbut-tests-ibut-insert-text-temp-file): Deleted this and
    merged into 'hbut-tests-ibut-insert-links'.

* kotl/klink.el (klink:act): Improve doc.  Fix to not try to update link label
    if 'link-to-kotl' fails to display a koutline.

* hbut.el (ibut:insert-text): Add clear error when no matching actype is found.
    Update klink handling.

2023-06-13  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:operate): Update to handle more scenarios from the doc table.

* hbdata.el (hbdata:ibut-instance): Replace with 'hbdata:ibut-instance-next'.
            (hbdata:ibut-instance-last): Improve doc.

2023-06-11  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Smart Mouse Drags between Windows): Update appendix doc
    to latest behavior.

* hbut.el (ibut:operate): Drop 'name' arg and get it from 'hbut:current attrs.
    Improve name handling and buffer insertion.  Use 'ibut:set-name-and-label-key-p'
    to set 'lbl-key.
          (ibut:set-name-and-label-key-p): Set 'lbl-start attribute.
          (ibut:insert-text): With kbd-key actypes, allow for whitespace inside of
    braces.
          (ibut:program):
  hui.el (hui:ibut-create, hui:ibut-link-create): Change calls to 'ibut:operate'
    and improve moving to button text.

* test/hbut-tests.el (hbut-tests-ibut-insert-annot-bib): Allow for 0 or more
    whitespace at end of buffer.
                     (hbut-tests-ibut-insert-kbd-key): Independently test
    without and without a name.

* hbdata.el (hbdata:instance-next): Improve doc.
            (hbdata:ibut-instance): Fix inverted logic when orig-name-key
    is given.

* hbut.el (ibut:label-instances-regexp, ebut:label-instances-regexp,
           hbut:label-instances-regexp): Add to search for hbut label
    matches of all numbered instances.
          (ibut:label-key-match): Call 'ibut:label-instances-regexp'.

2023-06-10  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el (kotl-mode-move-between-lines)
    (kotl-mode-move-up-to-first-line-shall-message-and-beep)
    (kotl-mode-trying-to-move-down-from-last-line-shall-message-and-beep)
    (kotl-mode-move-down-to-last-line-shall-not-beep)
    (kotl-mode-move-cursor-forward-over-ellipsis)
    (kotl-mode-move-cursor-backward-over-ellipsis)
    (kotl-mode-end-of-visible-portion): Add cursor movement tests for kotl-mode.

2023-06-10  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:create): Invoke 'ibut:set-name-and-label-key-p' prior to
    finding ibtype when 'but-sym' is not given.
  man/hyperbole.texi (Programmatic Implicit Button Types): Note that above
    call automatically sets up to flash delimited implicit buttons when
    activated.
          (ibut:edit): Embed this whole function into 'ibut:operate'.
	  (ebut:map): Use defaults for start and end delims.
          (ibut:label-map): Remove unused delim args and use two optional args.

* kotl/klink.el (klink:act): Document.
                (klink): Remove 'ibut:set-label' as replaced with global
    invocation of 'ibut:set-name-and-label-key-p' in 'ibut:create' call.

* hbdata.el (hbdata:ibut-instance-last): Remove unused 2nd and 3rd params.

* hui-mouse.el (hkey-alist): Save found smart-lisp identifier to 'hkey-value'
    for use in 'smart-lisp-find-tag' call.
  hmouse-tag.el (smart-lisp-at-change-log-tag-p): Fix to return identifier.
                (smart-lisp): Optimize to send any previously found tag
    stored in 'hkey-value' to 'smart-lisp-find-tag' call.
                (smart-lisp-at-known-identifier-p): Caches and return any
    identifier found.

* man/hyperbole.texi (Smart Key - Identifier Menu Mode):
  hui-mouse.el (smart-imenu-item-at-p): Move to after programming mode
    handlers so don't have to test for any such modes here and so it does
    not override their behaviors.

* hmouse-tag.el (smart-lisp-find-tag): Widen buffer, goto tag location
    and return t only when 'hpath:display-buffer' returns non-nil.

* hbut.el (ibut:operate): Improve doc.

2023-05-29  Bob Weiner  <rsw@gnu.org>

* hact.el (hact): Set 'hbut:current 'actype property from first arg.

* hbut.el (ibut:operate): Improve create/modify error message.
          (ibut:at-p): Change so when given name-key-only arg, returns name
    field as a key, not the text field, lbl-key.  If no name, return nil.

* hactypes.el (link-to-ibut):
  hui.el (hui:ibut-create, hui:ibut-link-create, hui:gibut-create):
  hbut.el (ibut:program, ibut:operate, ibut:to, ibut:to-text): Start
    replacing args named 'label' and 'lbl-key' which represent an ibut
name with 'name' and 'name-key'.
          (ibut:to): Change to use 'hbut:current attr 'name' instead of
    'lbl-key'.

* hbut.el (ibut:program): Fix/generalize error handling.
          (ibut:create): Fix doc string to reflect return of button
  instance num string or t for first instance or nil for failure, rather
  than returning the button symbol.  See 'hbdata:ibut-instance' for details.

* hibtypes.el (action, annot-bib): Call 'ibut:set-name-and-label-key-p)'
    instead of 'ibut:label-p' so can tell name from label text.

* hbut.el (ibut:operate): Make 2nd arg optional when creating new buttons.

2023-05-28  Mats Lidell  <matsl@gnu.org>

* test/hy-test-helpers.el (hy-delete-file-and-buffer): Add helper that
    removes file and buffer even if in modified state.

* hibtypes.el (hypb-mail-address-tld-regexp)
    (hypb-mail-address-regexp): Use hypb prefix.

2023-05-28  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:operate): Fix to set ibut name property from 'new-lbl-key'.
          (ibut:create): Fix logic to match doc when but-sym is not given;
    then prefer args given over any ibut at point (hbut:current); add new
    internal 'but-sym-flag' to achieve this.
          (ibut:label-p): Fix doc to indicate can be used to find either
    the optional name or the text of an implicit button.
          (ibut:at-p): If in a prog mode and outside of a comment, don't
    look for button at all, just return nil.  Also, greatly simplify
    with most functionality left in the 'ibut:create' call.
          (ibut:set-name-and-label-key-p): Add; extracted from prior
    'ibut:at-p'.  Use in 'ibut:create'.
  hargs.el (hargs:delimited): Update to include delims when testing with
    'exclude-regexp' flag but return the string without delimiters.  This
    allows ignoring matches to <[str]> when just looking for [str].
    Also, Add optional arg at end, as-key; when non-nil return string as
    a Hyperbole label key (no spaces).  Use in 'ibut:label-p'.

* kotl/kview.el (kview:char-invisible-p, kview:char-visible-p): Simplify by
    using 'get-char-property' which handles text properties and overlays.

* kotl/kotl-mode.el (kotl-mode:pre-self-insert-command): Remove this test
    since know we are in kotl-mode now that this is added as a mode-specific
    pre-command hook: (eq major-mode 'kotl-mode).  Also, comment this test
    out since call should not be on the stack since this is a pre-command
    hook: (not (hyperb:stack-frame '(kcell-view:to-label-end))).

2023-05-27  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:setup-keymap): Create this function instead
    of setting up keymap at library load time so that key rebindings occur
    when in kotl-mode with orgtbl-mode active, for example, so keys from it
    that need rebinding are active when kotl-mode-map is setup.  Call from
    'kotl-mode' but runs only when kotl-mode-map is nil.
                    (kotl-mode) Replace local binding of 'minor-mode-alist'
    with 'minor-mode-overriding-map-alist'.
  kotl/kotl-orgtbl.el (orgtbl-meta-return): Rename to
    'kotl-mode:orgtbl-meta-return' and use only in 'kotl-mode'.
                      (kotl-mode:org-self-insert-command,
                       kotl-mode:self-insert-command,
                       kotl-mode:setup-overriding-orgtbl-keymap): Add to
    fix overriding keys in 'orgtbl-mode-map' within 'kotl-mode'.
                      (kotl-mode:backward-char,
                       kotl-mode:forward-char): Fix to handle when point
    is outside of a valid outline position.
                      (kotl-mode:eocp): Change to call (kotl-mode:eolp t)
    so does not trigger eoc when at eol but cell is collapsed.
                      (kotl-mode:pre-self-insert-command): Remove unneeded
    second check of whether point is in a valid koutline position and run
    during kotl-mode:*self-insert-command calls.

2023-05-22  Bob Weiner  <rsw@gnu.org>

* hbut.el (hbut:comment): Comment only when major mode is derived from `prog-mode'
    or `sgml-mode'.

* man/hyperbole.texi (By Dragging, Swapping Buffers, Displaying Items): Update to
    the new Smart Mouse Key handling.
                     (Creation): Update and clarify that dragging creates only
    explicit link buttons whereas the Ebut/Create menu item creates any type.
                     (Implicit Buttons): Add doc for Ibut/Rename and document
    implicit link creation via an Assist Mouse Key drag between windows.

2023-05-21  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:yank-pop): Fix: change "\\0" to proper "\\&".
                    (kotl-mode:add-indent-to-region): Fix 'search-forward' bound
    arg that was given as t but should be nil.

* DEMO (Displaying File and Buffer Items and Moving Buffers): Rename this section
    to "Displaying Items via Drags and Moving Buffers".
  man/hyperbole.texi (Displaying File and Buffer Items): Rename to "Displaying
    Items".

* hui-mouse.el (hkey-alist): Move . operator to beginning of line for font lock
    support and add missing . in gnus modes.

* hmouse-drv.el (hkey-mouse-help): Ensure call to hkey-help clears both Action
    and Assist Key variables, so mouse key help always works.

* man/hkey-help.txt:
  FAST-DEMO (Implicit Buttons):
  DEMO (Implicit Buttons, Creation via Dragging, Creation via Ace Window): Update
    to describe implicit button creation via drags.
  hui-window.el (hmouse-alist): Make change to long-time Assist Mouse Key drag
    between windows behavior.  Assist Mouse Key drag from an item to another
    window now displays the item in the release window, just as the Action Key
    does.  Prior to Hyperbole V9, this would swap window buffers.

* hmouse-key.el (hmouse-update-smart-keys): Ensure reload "hui-window" library
    so 'hmouse-alist' is redefined.

* hsys-org.el (hsys-org-search-internal-link-p)
               hsys-org-search-radio-target-link-p): Replace 'org-show-context'
    with newer 'org-fold-show-context' and alias this when necessary.
              (hsys-org-radio-target-link-at-p): Remove test of
    (hsys-org-link-at-p) since does not have link delimiters and already verified
    uses link-face.

* hactypes.el (link-to-ibut): Remove save-excursion and save-restriction calls
    so if ilink refers to an ibut in a different file, point is left there
    before the action is invoked.  Fixes ilinks like: <ilink:bs: /tmp/a.org>

* hsys-org.el (hsys-org-link-at-p): Suppress display of *Warnings* backtrace.

2023-05-20  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:normalize): Improve doc.

* hui.el (hui:ibut-create, hui:ebut-create,
          hui:ibut-link-create, hui:ebut-link-create):
  hbut.el (ebut:program, ibut:program):
    Set categ property, needed for 'ebut:is-p' and 'ibut:is-p' tests.
          (ibut:is-p): Update to handle (eq categ 'implicit).
          (ibut:create): If categ arg is not given and ibtype is found
    from the given button, use that.  Otherwise, set to 'implicit.

* kotl/klink.el (klink:at-p): Ignore <[ibut name]> and msg attachments like
    <#part ...>.

* hsys-org.el (hsys-org-link-at-p): Stop using (org-in-regexp org-link-any-re nil t)
    to avoid rx warnings.  Use (eq (org-element-type (org-element-context)) 'link)
    instead.

* hibtypes.el (grep-msg): Add support for *Warning* buffer entries like:
    Warning (comp): hbut.el:224:10: Warning: reference to free variable...

* hbut.el (ibut:insert-text): Add actype:elisp-symbol call to ensure all actype symbols
    are expanded to Hyperbole internal namespace.  This fixes some link-to-rfc tests.

* hui.el (hui:ibut-create): Add name property from label to ibut.

* hpath.el (hpath:find): Simplify and fix so noselect argument is always handled
    properly and findable path is used in places instead of pathname.
    This fixes an issue with ilinks that include a pathname where hpath:find
    was switching the current buffer improperly.
           (hpath:display-buffer-alist, hpath:display-where-alist): Fix
    'other-frame-one-window' option to return found buffer by adding a 'prog1'
    call.
  hbut.el (hbut:funcall): Update to use '(current-buffer)' when both buffer
    and key-src args are null.
  hbut.el (ebut:to, ibut:to, ibut:to-name, ibut:to-text):
    Send (current-buffer) as _buffer arg to hbut:funcall so does not try to use
     _key-src arg and end up in the wrong buffer.

* hui-mouse.el (smart-imenu-item-at-p): Fix so only returns non-nil
    when smart-menu-item-p call is non-nil.  Stops from triggering
    when not on an imenu item.

2023-05-20  Mats Lidell  <matsl@gnu.org>

* test/MANIFEST: Add missing hargs-tests.el.

2023-05-19  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:ebut-link-directly, hui:ibut-link-directly): Display msg at
    the end only when called interactively.

* hmouse-drv.el (hkey-window-link): With prefix arg, create an ibut link
    rather than an ebut link.

* hui.el (hui:ibut-link-directly): Add.

2023-05-18  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Keyboard Drags): Rename 'hui:link-directly'
    to 'hui:ebut-link-directly'.
          (ibut:insert-text): Add 'hpath:substitute-var' calls to
    substitute variables into link paths.
  hmouse-drv.el (hkey-window-link): Call 'hui:ebut-link-directly'.

2023-05-17  Bob Weiner  <rsw@gnu.org>

* hui-window.el (hmouse-alist-add-window-handlers): Move cons . operators
    to start of line to avoid syntax highlighting errors when at eol.

* hbut.el (ibut:insert-text): Fix to match to long form of actype
  symbol name since short form is not part of obarray and so will not
  match.  Also, add link-to-file handler with position mapping to line:col.
          (ibut:operate): Fix to increment ibut instance number properly.

2023-05-15  Bob Weiner  <rsw@gnu.org>

* hbut.el (hbut:action): Fix to handle ibuts properly (no diff than ebuts).

* hui-window.el (hmouse-at-item-p): Make two changes:
    1. Return non-nil if on a Hyperbole button
    2. Switch back to start-window rather than just the buffer; so always utilize
       correct point.
                (hmouse-item-to-window): Make change to long-time ebut behavior.
    Previously, a drag from an ebut across windows links it to the new location;
    now such a drag executes the button's action in the drag release window; ibuts
    behave the same.
  DEMO:
  HY-NEWS:
  man/hkey-help.txt: Document above change.

* hsys-org.el (hsys-org-link-at-p): Simplify to use org-link-any-re and require
    an Org version with this.

2023-05-14  Mats Lidell  <matsl@gnu.org>

* hypb.el (hypb:oct-to-int): mapc takes two args.

* test/hypb-tests.el: Add tests for hypb:oct-to-int.

2023-05-14  Bob Weiner  <rsw@gnu.org>

* hui-window.el: Change context-specific commentary to refer to "man/hkey-help.txt".

* hibtypes.el (action): Remove unneeded comma before args that triggered
    byte compilation error.

* hsys-youtube.el: Add magic autoload comments for internal functions
    since defact and defalias autoloads do not actually load the library
    but simply define themselves.

* hypb.el (hypb:oct-to-int): Change mapconcat to mapc since don't use result.
    Silences byte-compiler warning.

* kotl/kexport.el (kexport:font-awesome-css-include-with-menus): Fix font size
    at 20px for all elements, so is large enough by default.

* hui-window.el (hmouse-drag-item-mode-forms): Fix treemacs-mode paren error
    that had error clause outside if statement.

* hib-debbugs.el (debbugs-gnu-mode:help):
  hui-window.el (hmouse-kill-and-yank-region, hmouse-yank-region):
  hargs.el (hargs:sexpression-p):
  hpath.el (hpath:cache-mswindows-mount-points):
  hvm.el (vm-edit-message-end):
  kotl/kotl-mode.el (kotl-mode:transpose-lines):
  kotl/kfile.el (kfile:is-p, kfile:print-to-string):
  hsys-org.el (hsys-org-link-at-p):
  hbut.el (ebut:label-p, gbut:ebut-key-list, hbut:ebut-key-list):
  hui-select.el (hui-select-mark-delimited-sexp,
                 hui-select-brace-def-or-declaration, hui-select-sexp-start,
                 hui-select-sexp-end, hui-select-sexp, hui-select-sexp-up):
                 hui-select-punctuation, hui-select-sentence):
  hmouse-tag.el (smart-cc-mode-initialize, smart-lisp-find-tag,
                 smart-lisp-at-known-identifier-p, smart-lisp-bound-symbol-def,
                 smart-tags-find-p):
    Replace nil error handler condition-case with ignore-errors macro.

2023-05-13  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hmouse-depress-inactive-minibuffer-p): Fix doc to say window
    is returned rather than buffer.

* hui.el (hui:link-create, hui:link-directly): It is rarely possible that a
    *Warnings* buffer popup might have displaced `but-loc' in the window, so
    switch to it to be safe.
  hmouse-drv.el (action-key-depress-buffer, assist-key-depress-buffer)
                 action-key-release-buffer, assist-key-release-buffer): Add to
    handle when a buffer popup changes the buffer associated with a window between
    depress and release.
                (action-key-depress, assist-key-depress, action-key-clear-variables,
                 assist-key-clear-variables): Set depress-buffer and release-buffer
    variables.
                (hmouse-key-release-buffer): Add to return any buffer of Smart Mouse
    Key release.

* hsys-youtube.el (require 'hact): Autoload for defact macro.
                  (yt-info, yt-play, yt-search, yt-url): Change from aliases to
    defact, so are properly registered as actypes.
  man/hyperbole.texi (Action Types): Add yt-* actypes.

* hpath.el (hpath:cache-mswindows-mount-points): Catch and ignore any shell command
    error.  Can be triggered when default-directory is set to a URL, as in RFC
    display buffers.  This in turn would lead hyperbole-mode activation to fail.

* man/hyperbole.texi (HyRolo Keys): Updates to match HY-NEWS.

* DEMO (Org Mode): Update Action Key handling writeup.

* hui-menu.el (infodock-hyperbole-menu): Sync Documentation menu to minibuffer Doc/
  Makefile (HYPERBOLE_FILES):
  MANIFEST (HY-CONCEPTS.kotl):
  hui-mini.el (Doc/Concepts):
  HY-CONCEPTS.kotl: Add to explain how Hyperbole concepts connect to one
    another and Emacs.  Add to minibuffer menu on {C-h h d c}.

* hbut.el (hbut:comment): Remove nil-valued if clauses.

2023-05-12  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-dired): Fix 'dired-get-filename' so works on . and ..
    entries.

* hui-mini.el (hui:menu-choose): Action Key press on the top-level menu
    prefix reloads Hyperbole minibuffer menus and Smart Key handlers to
    reflect any recent changes.
  man/hyperbole.texi (Menus): Add doc for above update.

2023-05-11  Bob Weiner  <rsw@gnu.org>

* hui-mini.el (hui:menus): Rename DeleteIbutType to DeleteType.

2023-05-11  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el (kotl-mode-append-cell): Add kotl-mode test.

2023-05-07  Bob Weiner  <rsw@gnu.org>

* Makefile (manual): Add manual target to build manual without building other
    doc outputs.

* test/kimport-tests.el: Improve all these tests and add
    `kimport--aug-post-outline'.

* hypb-ert.el (hyperbole-run-test-definition): Add ibtype that when on the
    first line of an `ert-deftest' and not at eol nor on a grouping symbol,
    evaluates the current version of the test and then runs it.  Assist Key
    press in the same spot steps through the test with edebug.
              (hyperbole-run-test-definition:help, hypb-ert-def-at-p,
               hypb-ert-run-test-at-definition):
    Support functions.

2023-05-06  Bob Weiner  <rsw@gnu.org>

* kotl/kimport.el (kimport:aug-post-outline, kimport:text):
    Update to match `kimport:star-outline'.
                  (kimport:aug-post-statements):
    Update to match `kimport:star-entries'.

* kotl/EXAMPLE.kotl:
  kotl/kotl-mode.el (kotl-mode):
  man/hyperbole.texi (Promoting and Demoting): Update so {Shift-TAB} within
    an Org table in a Koutline moves to the previous field to complement
    the behavior of {TAB}.  This leaves {M-TAB} as the only consistent way
    to promote trees.

* man/im/action-key-animation.gif: Update this animated gif.

2023-04-30  Mats Lidell  <matsl@gnu.org>

* test/hui-tests.el (hui--ebut-rename)
    (hui--ebut-rename-only-button-with-that-label)
    (hui--ebut-rename-nonumbered-label, hui--ebut-rename-numbered-label)
    (hui--ebut-rename-all-copies)
  test/hbut-tests.el (hypb:program-create-ebut-in-buffer-with-same-label):
    Test for ebut label rename.

2023-04-30  Bob Weiner  <rsw@gnu.org>

* hsys-www.el (require 'eww): Add.
              (eww-browse-url): Override this function so it utilizes
    Hyperbole's choice of where to display the browser.

* hui-mouse.el (smart-push-button-help, hkey-alist): Update to handle Emacs
    text-property push-buttons, for which button-activate does not work.
  hbut.el (hattr:emacs-button-attributes): Fix to handle Emacs
    text-property push-button attributes.
  hmouse-drv.el (hkey-help): Fix to handle text property push-buttons that
    return a buffer marker object (no attributes to print then).
               (smart-push-button): Add and reference in hkey-help to trigger
    push-button-specific help output.

* hbut.el (hbut:label-regexp): If label does not contain an instance number
    and 'no-delim' arg is nil, don't add a regexp matching to instance numbers,
    use exact label match only.
  hbdata.el (hbdata:write, hbdata:ebut-build): Add third arg, 'new-lbl-key'
    for use when doing ebut renames.
  hbut.el (ebut:edit, ebut:operate): Call above with third arg.

* hbut.el (ebut:operate): Fix bug that caused hui:ebut-rename to rename
    all numbered instances of a given label rather than just the particular
    instance of a label because was using instance-flag from 'curr-label'
    instead of 'new-label'.

2023-04-29  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (HyRolo Concepts): Document all supported types of
  rolo files.
                     (Glossary): Add entry for Helm and Org Rifle packages.
  Mention 'hyrolo-helm-org-rifle'.

* hui.el (hui:ebut-rename): Do nothing if curr and new labels are the same.

* man/hyperbole.texi (HyControl): Add I/J/K/M key documentation.

* HY-NEWS: Update for V9 release.

2023-04-23  Bob Weiner  <rsw@gnu.org>

* kotl/klink.el (klink:at-p):
  hbut.el (hbut:outside-comment-p): Make the inside of comment prog
    mode tests in each of these use the same conditional tests.

* Makefile (version): Fix so this outputs the list of files whose
    versions are wrong, shows the proper version number and
    prints a clearer message.  If no problem, generates no output.

* hpath.el (hpath:delimited-possible-path): Remove unneeded 'format'
    call for end delim of space-delimited matches since now use "\\s-".

* README.md: Add Action Key animated gif.
  man/im/action-key-animation.gif: Add.

* hui-mini.el (hui:menus): Disable "To/" menu; not yet ready.

2023-04-23  Mats Lidell  <matsl@gnu.org>

* Silence various byte compiler warnings.

2023-04-22  Mats Lidell  <matsl@gnu.org>

* test/hbut-tests.el
    (hypb--ebut-at-p-should-not-insert-hbdata-section-in-non-file-buffers):
    Add test to verify that no but data section is inserted.

2023-04-16  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:link-possible-types): Fix link to outline heading where
    search-backward was given an empty string argument and would loop
    infinitely without moving.  This was because movement to eol was
    done in the wrong place.

2023-04-15  Mats Lidell  <matsl@gnu.org>

* test/kimport-tests.el (kimport--text-file)
    (kimport--text-file-two-lines-per-paragraph, kimport--star-outline)
    (kimport--star-outline-two-lines-per-star-heading)
    (kimport--star-outline-with-siblings): Test cases for kimport.

2023-04-15  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:cell-help): Fix to keep current buffer
    as Koutline buffer and only set standard-output to the help buffer.
                    (kotl-mode:is-p): Update to show buffer that is
    not a Koutline.

* kotl/kfile.el (kfile:create): Fix to handle when 'inhibit-read-only'
    is set rather than just testing the 'buffer-read-only' flag.

2023-04-15  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el (kotl-mode-cell-help-displays-help-in-temp-buffer)
    (kotl-mode-cell-help-displays-help-from-root)
    (kotl-mode-cell-help-displays-help-for-all-cells)
    (kotl-mode-kill-tree-and-reopen)
    (kotl-mode-kill-tree-on-empty-file-creates-new-cell): kotl-mode test
    cases.

2023-04-09  Bob Weiner  <rsw@gnu.org>

* kotl/kimport.el (kimport:initialize): Change test from 'kview:is-p'
    to 'kfile:is-p' as view may get set before file is fully formatted.
                  (kimport:aug-post-statements, kimport:star-entries):
    Remove (goto-char start) after each entry is imported as this was
    causing a duplicate at the end of the import.
                  (kimport:star-entries): Add 'max-pos' arg at end and
    change to return a cons of (max-position . count-of-top-level-imports).
    Add support for reusing initial, empty cell in Koutline.
                  (kimport:star-outline): Update to new return protocol
    for above function.

* hui-em-but.el (hproperty:but-get): Add hproperty:ibut-face support.
                (hproperty:but-clear): Replace with new, more efficient
    'hproperty:but-clear-all' to clear all button colorized faces in
    in current buffer.
                (hproperty:but-delete): Rename to 'hproperty:but-clear'.
		(hproperty:but-flash): Fix ibut flashing where text of
    ibut is not highlighted prior to flashing.

* man/hyperbole.texi (Menus): Add doc for minibuffer menu X and Q keys.

* hyrolo-menu.el (infodock-hyrolo-menu): Make HyRolo menu a customizable
    list and conditionally add Consult-Find and Helm-Find when requisite
    packages are installed.

* hbut.el (gbut:ebut-key-list, hbut:ebut-key-list): Move 'save-restriction'
    before call to 'hbdata:to-entry-ref' to capture all restriction
    changes.  Fixes a bug that could leave the in-buffer hbdata separator
    exposed.

* hui-mini.el (hui:menu-backward-item, hui:menu-forward-item):
    Fix skip past menu name search to be regexp search, not string search,
    since pattern is a regexp.
    (hui:menu-name-at-p): Add and use in above functions.

2023-04-08  Bob Weiner  <rsw@gnu.org>

* hui-em-but.el (hproperty:color-list, hproperty:good-colors):
    Fix to work on all types of color frames rather than just X.
                (ibut-face): Change color for more contrast with
    color of ebut labels.
                (hproperty:but-clear, hproperty:but-create-all,
                 hproperty:but-create): Add hproperty:ibut-face support
    and remove delimiter override parameters which were never used.
                (hproperty:but-p, hproperty:but-flash): Add
    hproperty:ibut-face support.

* FAST-DEMO: Add EmacsConf 2022 videos.

* man/hyperbole.texi (Smart Key - Lisp Source Code):
  hmouse-tag.el (smart-emacs-lisp-mode-p): Add support for "*Warnings*",
    "*Flymake log*" and "*Flymake diagnostics..." buffers.

* hui-mini.el (hui:menu-rolo): Make HyRolo menu a customizable list
    and conditionally add ConsultFind and HelmFind when requisite
    packages are installed.

* hsettings.el (hyperbole-update-menus): Make a command/interactive.

* hyrolo.el (hyrolo-helm-org-directory-rifle): Rename to
    'hyrolo-helm-org-rifle-directory' for consistency.

* hbut.el (hattr:emacs-button-attributes, hattr:emacs-button-is-p): Add
          (hattr:list): Return Emacs push-button attributes.
  hact.el (actype:doc): Add support for Emacs push-buttons.
  hmouse-drv.el (hkey-help): Print attributes of Emacs push-buttons and
    doc for button's action, just as with Hyperbole buttons.
    Display whether a Hyperbole button is EXPLICIT or IMPLICIT.
    Also, for implicit buttons, add display of both ibtype doc and its
    actype doc.

* hyrolo.el (hyrolo-isearch-regexp): Fix 'arg' conditions were reversed.

2023-04-08  Mats Lidell  <matsl@gnu.org>

* test/hpath-tests.el (hpath--at-p-checks-files-with-hash-in-name-exists)
    (hpath--at-p-checks-file-that-with-hash-that-does-not-exist-returns-nil):
    Add tests for pathnames with hash characters.

2023-04-07  Mats Lidell  <matsl@gnu.org>

* test/hui-tests.el (hui--ibut-create-interactive)
    (hui--ibut-create-interactive-label-using-region)
    (hui--ibut-create-interactive-add-comment-char)
    (hui--ibut-create-interactive-create-label)
    (hui--ibut-rename-label-at-point, hui--ibut-rename-label)
    (hui--ibut-rename-label-not-in-buffer-errors): Add tests for ibut with
    labels.

2023-04-07  Bob Weiner  <rsw@gnu.org>

* kotl/kimport.el (kimport:suffix-alist): Change car of alist items from
    a regexp to a string to simplify lookups.
                  (kimport:file): Simplify kimport:suffix-alist handling.
		  (kimport:star-outline): Fix 'total' matching expr to
    match top-level entries only.
    This fixes kimport:file infinite loop, kfile:narrow-to-kcells error
    and broken cell counts.

2023-04-02  Bob Weiner  <rsw@gnu.org>

* HY-NEWS: Add EmacsConf 2022 videos.
  INSTALL: (Invocation):
  README.md (Videos):
  man/hyperbole.texi (Invocation): Add link to Hyperbole videos in README.md.

2023-03-29  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Implicit Buttons): Add paragraph on the use of Ibut/
    menu.

* hui.el (hui:ebut-create, hui:ibut-create): Remove prompting for button
    buffer and always use current buffer.

* hui-menu.el (infodock-hyperbole-menu): Add item Implicit-Button/Create.
  hui-mini.el (hui:menus): Add minibuffer item Ibut/Create.

2023-03-28  Bob Weiner  <rsw@gnu.org>

* hbut.el (def-edebug-spec cl-defun): Add to make 'cl-defun' edebuggable.

2023-03-27  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:label-separator): Change from " " to " - " for better
    separation visibility.
          (ibut:insert-text): Add.
  hypb.el (hypb:format-args): Add and use in 'ibut:insert-text'.

2023-03-26  Bob Weiner  <rsw@gnu.org>

* hbdata.el (hbdata:ibut-instance-last): Add.
            (hbdata:ibut-instance): Add.
  hbut.el (ibut:create): Improve doc and add but-sym arg which can supply
    all other arguments in its properties.
          (hbut:map): Rewrite handling of 'regexp-match' arg so it always
    applies to the button label and not its text, to accomodate named
    implicit button filtering.
          (hbut:label-regexp): Ensure label is wrapped as grouping 1 and
    an optional instance number is matched.
          (ibut:map): Utilize 'start-delim' and 'end-delim' when non-nil.
	  (hbut:map): Remove properties from 'lbl' as not needed.
	  (ibut:label-key-match): Add to return filtered list of ibut labels.
          (ibut:label-sort-instances): Add to sort label key instance numbers.

2023-03-16  Bob Weiner  <rsw@gnu.org>

* hbdata.el (hbdata:build): Rename to hbdata:ebut-build and call in
    hbdata:write.
	    (hbdata:instance-last): Rename to hbdata:ebut-instance-last.

* hbut.el (hbut:label-list): Use in ibut:edit.
  hui-em-but.el (ibut-face, hproperty:ibut-face): Add and use in
    ibut:delimit.

* hbut.el (ebut:instance-sep): Rename to 'hbut:instance-sep'.

* hui.el (hui:ibut-create):
  hbut.el (ibut:create, ibut:delimit, ibut:edit, ibut:operate): Add
    interactive, labeled implicit button creation.

* ebut:start, ebut:end: Rename to ebut:label-start and ebut:label-end.

2023-03-15  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:ebut-buf): Rename to 'hui:hbut-buf' since not ebut-specific.
	 (hui:ebut-create, hui:ibut-create): Update call to above function.

2023-03-13  Bob Weiner  <rsw@gnu.org>

* test/hui-tests.el (require 'hibtypes 'klink): Force defib loads so
    klinks have a higher priority than pathname links and tests always
    pass.

2023-03-12  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (action-mouse-key, assist-mouse-key, hmouse-release,
                 hmouse-function): Add 'hmouse-release' and separate
    from hmouse-function so release args are set in all cases of
    release.  Should fix issue where 'hmouse-drag-outside-all-windows'
    triggers when simply pressing the Action Key without any mouse press.

* hyrolo.el (hyrolo-get-consult-version): Add.
            (require 'package): Add.
            (hyrolo-consult-grep): Add optional parameters to specify
    initial regexp and max-matches per file.  Also ensure necessary
    version of consult package is installed.  Update doc.

* man/hyperbole.texi (By Dragging): Add doc for link-to-org-id.
                     (Glossary): Add Ace Window, Consult, Org Mode,
    and Org Roam entries.
  hui.el (hui:link-possible-types): If an Org ID, use it exclusively
    and handle IDs in any mode.

2023-03-12  Mats Lidell  <matsl@gnu.org>

* kotl/kexport.el (kexport:label-html-font-attributes): Don't use font
    attributes in HTML export.

* kotl/kexport.el (kexport:princ-cell): Export contents from a cell.

* test/kexport-tests.el (kexport:html-creates-list-hierarchy): Check that
    exported lists format has equal start and stop tags.

2023-03-11  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (org-id): Set ibut label and return id when at id def so
    can drag to direct link to an org id definition (or reference).

* hbut.el (ibut:at-to-name-p): Fix to handle when 'start' of name is not
    found.

* hibtypes.el (org-id):
  hactypes.el (org-id-marker-display): Rename to 'link-to-org-id-marker'.
              (link-to-org-id): Add to jump to an org id referent location.
  hui.el (hui:link-possible-types): Add 'link-to-org-id' support.

* hpath.el (hpath:delimited-possible-path): Add support for HTML &quot;
    quoting and embedded double quotes.
  hibtypes.el (Info-node): Better handle embedded double quotes and add
    support for HTML &quot; quoting.

2023-03-10  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-find-file): Prevent 'outline-regexp' getting stuck
    matching to *word* at the beginning of lines and hanging hyrolo-fgrep
    because keeps moving to within an entry rather than past it.
            (hyrolo-grep-file): If above happens, trigger an error and
    display the problematic file with point at the errant entry.

2023-03-08  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (grep-msg): Trigger only if filename exists.  Prevents matching
    to parts of filenames, e.g. from grep -A.

2023-03-07  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (org-id, org-id:help): Fix logic and inhibit-messages from
    org-id-find calls.

* hibtypes.el (hib-python-traceback): Tighten matches by requiring final
    file char to not be a whitespace char.

* hpath.el (hpath:find, hpath:call): If 'path' exists, don't treat
    its # hash marks as section markers, notably for #autosave# files.
           (hpath:delimited-possible-path): Allow for unquoted filenames
    with spaces in them in ls listings in shell buffers (assume
    tab-delimited).

2023-03-02  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (hib-social): Move these ibtypes to lower priority
    than pathname so autosave files like '#file.md#' are not
    mis-handled as social links with hashtags.  Fix bug#61918.

2023-03-01  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Smart Key - Org Mode):
  man/hkey-help.txt: Add Org/Roam ID description.

* hibtypes.el (org-id):
  hactypes.el (org-id-marker-display): Add to display Org Roam and Org
   ID referents.  Set this context to one of the lowest priorities.

* hui-mouse.el (smart-outline, smart-outline-assist):
  man/hyperbole.texi (Smart Key - Emacs Outline Mode): Remove calling
    of eol functions when not at the end of line, e.g. when on a
    non-heading line.  This was just too unexpected a behavior in
    outline-minor-mode contexts.

2023-02-28  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hyperbole--enable-mode): Run (hyperb:init) to enable
    Hyperbole key bindings if not run already (when user init is not
    run).

2023-02-27  Bob Weiner  <rsw@gnu.org>

* Makefile (TEXI2INFO): Ensure punctuation generated by makeinfo is ascii,
    not unicode (requires makeinfo 7.0 or above).

2023-02-26  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:prepend-shell-directory): Fix issue that was grabbing
    first filename after command line since multi-line whitespace was
    used rather than limiting search to find current directory to the
    same line as the command.

* hmouse-drv.el (hkey-help): Move button attributes earlier in help doc,
    {C-h A} output.

* hui-select.el (hui-select-markup-modes): Add Emacs builtin mhtml-mode.

* hactypes.el (display-boolean, display-value, display-variable): Add
    interactive specs, so can be used as button actypes.

* hargs.el (hargs:iform-vector): Add 'i' interactive spec (ignored arg).

* MANIFEST:
  Makefile (EL_COMPILE): Add hsys-org-roam.el.
* hsys-org-roam.el (hsys-org-roam-consult-grep): Add this library and
    function to interactively grep over org-roam files with live
    in-buffer display using the automatically installed consult package.

2023-02-22  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (consult-org-roam-grep-func): Declare.
            (hyrolo-consult-grep): Add to interactively grep or ripgrep
    with live in-buffer display using the automatically installed consult
    package.

2023-02-20  Mats Lidell  <matsl@gnu.org>

* test/demo-tests.el (fast-demo-key-series-shell-cd-hyperb-dir-view-mode)
    (fast-demo-key-series-shell-grep-view-mode): Add tests for acting on
    key series in view-mode.

2023-02-19  Mats Lidell  <matsl@gnu.org>

* hypb.el (hypb:display-file-with-logo): Use view-mode for fast demo.

2023-02-18  Mats Lidell  <matsl@gnu.org>

* test/hmouse-drv-tests.el (hbut-defil-it): Do not follow symbolic
    links to make path check work.

* install-test/local-install-test.sh: Add normal Emacs start to verify
    Hyperbole is installed.

2023-02-15  Mats Lidell  <matsl@gnu.org>

* Makefile (EMACS_PLAIN_BATCH, kotl/kotl-autoloads.el): Use
    EMACS_PLAIN_BATCH macro in autoloads target to avoid triggering
    building hyperbole-autoloads. Patch from Stefan Monnier. Thanks Stefan.

2023-02-13  Mats Lidell  <matsl@gnu.org>

* hversion.el (id-info-item): Use two args with looking-back.

* hyrolo.el (hyrolo-kill): Set unused lexical var to _level-len

* kotl/kexport.el (kexport:html): Remove unused lexical var is-collapsible.

2023-02-12  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (grep-msg): Fix problem where filename match includes trailing line
    number because of allowing for Lisp variables with colons in their names.
         (set:add, set:remove): Convert from a macro to a function and optimize.
	 (set:replace): Rename to 'set:replace-key-value' and use 'set:replace'
    to replace a non-keyed old-value with a new value.
         (set:members): Keep members in stable order; previously returned in
    reverse order.

2023-02-05  Bob Weiner  <rsw@gnu.org>

* hsys-org.el (hsys-org-mode-function): Improve doc string.

* set.el (set:replace): Fix doc to say always returns the set.
         (set:replace-member): Add this new function to replace an existing set
    member or add a new one if no matching existing member.

* hyrolo.el (hyrolo-initialize-file-list): Fix to not overwrite any user customized
    value, if already initialized.

2023-02-04  Bob Weiner  <rsw@gnu.org>

* kotl/kexport.el (kexport:html): Change 'output-to-buf-name' to 'output-to-buf'.
    Remove refs to old XEmacs variables and add call to disable font-lock-mode
    in the html buffer, to speed export.

2023-01-29  Bob Weiner  <rsw@gnu.org>

* kotl/kimport.el: Replace 'children-p' arg with 'children-flag'.
                   (kimport:file): Fix that 'function' was not properly
    set after a suffix match.

* kotl/kview.el (kcell-view:to-label-end): Remove unused 'found' var.

* hui-mouse.el (smart-helm-get-current-action): Add, was missing.
    (smart-helm-line-has-action, smart-helm-assist): Use.

* hbdata.el (hbdata:to-entry-buf): Fix error when creating an ebut in an
    unsent message-compose buffer.  Had assumed buffer-file-name there
    would be nil but now Emacs saves unsent drafts to a file, so have to
    check if is a mail or news buffer instead.

* hui-mouse.el (smart-man-entry-ref): Replace 'smart-symlink-expand' call
    with 'hpath:symlink-referent'.
               (smart-symlink-expand): Remove this function.

* hbut.el (ibut:to-text): Fix so does not move point if lbl-key end up nil.

2023-01-28  Bob Weiner  <rsw@gnu.org>

* hmouse-tag.el (smart-lisp-htype-tag): Fix so expands shortened htype tags
    whose symbols have been interned when defined.  This fixes jumping to
    the definition of htypes in Help buffers.

2023-01-22  Mats Lidell  <matsl@gnu.org>

* hypb.el: Add variable and function declarations for package
    interaction-log to silence byte compilation warnings.
    (hypb:activate-interaction-log-mode): Use cl-pushnew.

2023-01-20  Mats Lidell  <matsl@gnu.org>

* Remove docstring warnings.

2023-01-15 Mats Lidell  <matsl@gnu.org>

* hsmail.el: Remove #-mark for symbol check.

* hui-mouse.el: Merge public declaration sections.

* hypb.el:
* hyrolo.el: Declare functions, remove #-mark for symbol checks.

* hsettings.el (hproperty:but-flash): Declare function.

* hmouse-drv.el (mouse-drag-mode-line): Use mouse-drag-frame-move from
    Emacs 28.

2023-01-08  Bob Weiner  <rsw@gnu.org>

* hmouse-tag.el (xref--item-at-point): Fix this function (still broken
    in Emacs29) to not error when called on a blank line at the beginning
    of the buffer.  Was triggering an Action Key error.  Fix for 'unrelated
    issue' reported in Emacs bug#59903.

2023-01-08  Mats Lidell  <matsl@gnu.org>

* test/hui-tests.el (hui--kill-ring-save-in-kotl-mode-copies-region)
    (hui--kill-ring-save-in-kotl-mode-between-cells-fails): Add tests for
    hui-kill-ring-save.

* hui.el (hui-kill-ring-save): Call use kotl-mode:copy-region-as-kill when
    in kotl-mode.

* man/hyperbole.texi (Implicit Button Types): Remove ibtypes::org-mode
    from function index.

* FAST-DEMO: (bug#60596) Do not mention 'function-in-buffer', it's removed.
    (bug#60597) Replace 'org-mode' with 'org-link-outside-org-mode'.

2023-01-07  Bob Weiner  <rsw@gnu.org>

* TAGS: Add to distribution, as is utilized in the Hyperbole DEMO.
    Remove from .gitignore.  Resolve Emacs bug#60594.
  Makefile (packageclean): Stop removing TAGS here.
           (package): Add tags target dependency.
           (HYPERBOLE_FILES): Add TAGS file.

* hibtypes.el (text-toc):
  hactypes.el (text-toc): Fix to jump to RFC table of contents sections.
              (rfc-toc): Simplify and fix display so source window does not move
    and full list of sections is included in toc.  Resolve Emacs bug#60595.

* man/hyperbole.texi: (git-reference, github-reference, gitlab-reference): Move
    to Action Types section since now are regular Elisp functions, not ibtypes.

* hargs.el (hargs:read-match): Vary from completing-read a bit by disallowing
    any blank result when arg, MUST-MATCH, is given (unless INITIAL-INPUT is given
    as "").  This prevents blank button names, for example.
  hui.el (hui:htype-help): Send blank INITIAL-INPUT to hargs:read-match call.
  FAST-DEMO, DEMO: Update text to clarify that action types include Emacs commands.

* man/hyperbole.texi (Explicit Buttons, Action Buttons, Glossary): Expand action
    type descriptions to include Emacs Lisp commands.
                     (Action Types): Add newer types that were missing and update
    some doc strings.
                     (Smart Key - Org Mode): Update to latest operation.

* hui.el (hui:actype): Limit action type completions to Hyperbole actypes and
    interactive commands.  Resolve Emacs bug#60469.

2022-12-18  Mats Lidell  <matsl@gnu.org>

* Makefile (ELC_COMPILE, ELC_KOTL): Use function to derive elc files.

2022-12-11  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hkey-initialize): Fix Emacs bug#59903: handle when C-h is
    rebound globally to a command rather than as a prefix keymap.

2022-12-03  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-fgrep-directories, hyrolo-grep-directories): Use 'apply'
    to prevent double nesting of &rest 'dirs'.

* hpath.el (hpath:expand-with-variable): Fix to expand from local dir first
    before using dirs in hpath:expand-with-variable.

* hibtypes.el (grep-msg): Add support for Ruby traceback stack messages.

* hsys-org.el (hsys-org-src-block-start-at-p): Add.
  test/hsys-org-tests.el (hsys-org:src-block-start-at-p): Test it.

2022-12-02  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Implicit Button Types): Update Smart Key Org mode description.
  hui-mouse.el (smart-org): Add doc for :dir path handling and for removing code
    block results with the Assist Key.  Also, make the Smart Keys work the same
    when point is on a #+RESULTS headers as they do when on a code header.

2022-11-27  Bob Weiner  <rsw@gnu.org>

* hmouse-tag.el (smart-tags-org-src-block-p): Add and use in 'smart-tags-file-list'
    and 'smart-tags-display'.

* hmouse-tag.el (smart-tags-file-list): Add support for Org code blocks.

* hsys-org.el (hsys-org-get-value): Get attribute values from Org contexts.

* hsys-org.el (hsys-org-mode-p): Made an autoload for use by other parts of Hyperbole.

* hyrolo.el (hyrolo-hdr-format): Extend headers to 79 chars for longer file names.
            (hyrolo-fgrep): Remove outer double quotes if any used to maintain spaces
    in strings as they are normalized in key series.

* hypb.el (hypb:activate-interaction-log-mode): Fix so creates log buffer
    if it doesn't exist.
          (hypb:glob-to-regexp): Add for use with hyrolo directory file filters.
  hyrolo.el (hyrolo-filter-directories): Use above function.

2022-11-26  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-frames/windows-mode): Define local modes before
    global modes so keymap lookups work properly and display properly in
    *Emacs Log* (interaction-log-mode).

* hui-mouse.el (smart-org): Prioritize Hyperbole buttons over the start line
    of an Org block so can jump to :dir paths in such lines.

* hbut.el (hbut:fill-prefix-regexps, hbut:fill-prefix-remove): Fix so removes
    full lines of comments rather than just the prefix.

* hsys-org.el (hsys-org-radio-target-def-at-p): Use 'org-radio-target-regexp'.
              (hsys-org-radio-target-link-at-p): Ensure has radio target
    help-echo property for better matching.
              (hsys-org-internal-target-link-at-p,
               hsys-org-internal-target-def-at-p,
               hsys-org-internal-target-at-p): Add to handle internal targets
    just like radio targets.
              (hsys-org-internal-link-target-at-p): Delete and replace with
    'hsys-org-internal-target-def-at-p'.
              (org-internal-link-target): Rename to 'org-internal-target-link'.
	      (org-radio-target): Rename to 'org-radio-target-link'.

* test/hsys-org-tests.el (hsys-org:org-internal-link-target-at-p): Change
    to test a regular Org target, not a radio target.

* hui-mouse.el (smart-org): Correct doc to match the context order processed.

* hact.el (htype:symbol): Add as autoload since used in "hsys-youtube.el"
    autoloads.

2022-11-22  Bob Weiner  <rsw@gnu.org>

* hsys-youtube.el: Add all public functions as autoloads.

2022-11-21  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (framemove, windmove): Conditionally requires these libs
    when compiling.  Autoload their move among commands bound to I/J/K/M.
    (hycontrol-framemove-direction, hycontrol-framemove-up,
     hycontrol-framemove-left, hycontrol-framemove-right,
     hycontrol-framemove-down): Add to auto install framemove package
    and move to directional frames.
    (hycontrol--frames-prompt-format, hycontrol--windows-prompt-format):
    Add help for new frame/window selection commands.
  man/hyperbole.texi (HyControl): Add doc for new frame/window selection
    commands.

* hmouse-drv.el (hkey-buffer-move): Fix to properly move windows (swapping
    buffers) when builtin windmove library is used.

* hversion.el (id-info-item): Index may point to indented line immediately
    after the non-indented item definition line. If so, move back a line.

2022-11-20  Bob Weiner  <rsw@gnu.org>

* kotl/kimport.el (kimport:star-outline): Fix to interactively default
    first arg to current filename and output arg to the same name as
    input but with ".kotl" suffix.
                  (kimport:initialize): Add optional 'erase-flag' arg
    to erase buffer before importing elements.  And use in all kimport
    commands.

* hactypes.el (text-toc):
  hibtypes.el (text-toc): Allow TOCs in any derived text mode.
    Improve efficiency and generalize section prefix.

2022-11-06  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (cl-lib): Add this require for cl-loop.
               (hycontrol-windows-grid-number-of-windows,
                hycontrol-windows-grid-valid-size-p): Add.
               (hycontrol-windows-grid-by-buffer-list,
                hycontrol-windows-grid-by-file-list): Add first
    arg grid-size.
               (hycontrol-make-windows-grid,
                hycontrol-windows-grid-validate,
                hycontrol-windows-grid-minimum-size,
                hycontrol-windows-grid-repeatedly): Add further
    input checks.

* hywconfig.el (hywconfig-delete-pop-continue,
                hywconfig-yank-pop-continue): Add and call
    interactively in "hui-mini.el".

* hhist.el (hhist:remove): Rename to 'hhist:pop'.

* hycontrol.el (hycontrol-windows-grid-by-file-pattern): Fix
   missing 'pattern' arg in 'format' call.

* hpath.el (hpath:at-p): Ignore anchor matches to '#+' so does
    not match to Org markup.

2022-11-05  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-windows-grid-by-file-pattern): Update
    to use prefix arg as grid size or to autosize when not given
    or given an invalid value.
               (hycontrol-windows-grid): Don't nullify prefix arg
    when calling above function.
               (hycontrol-make-windows-grid): Move 'hhist:add' call
    here and remove from 'hycontrol-windows-grid' so it covers all
    variants of windows-grid display.

* hbdata.el (hbdata:to-entry-buf): Fix bug that set 'rtn' non-nil
    at times when 'key-src' file was not found.  This could lead
    to the wrong error, 'hui:ebut-delete', saying that you cannot
    delete buttons in this buffer.

2022-10-31  Bob Weiner  <rsw@gnu.org>

* kotl/kimport.el (kimport:star-heading): Allow for indented headings.

2022-10-30  Bob Weiner  <rsw@gnu.org>

* hypb.el (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 and commands executed.

* hui-mini.el (hui:menu-enter): For character input, set 'this-command'
    to 'self-insert-command'.
              (hui:menu-mode-map): Rebound these keys to commands by
    the same name: 'hui:menu-abort', 'hui:menu-quit', 'hui-menu-select',
    and 'hui:menu-top'.
              (hui:menu-select): Rename this function to 'hui:menu-choose'
    to avoid conflict with aliasing above and ensure all the special keys
    above are displayed in cmd logs.

* hui-mini.el (hui:hypb-exit): Rename to 'hui:menu-exit-hyperbole'.

* hui-mini.el (hui:menu-select): Don't record 'read-from-minibuffer'
    in command history.
              (hui:menu-act): Set 'this-command' and command keys to
    be the full key sequence for a Hyperbole minibuffer menu command.
    Ensure this single command appears in history for clean logging.

2022-10-27  Bob Weiner  <rsw@gnu.org>

* hui-mini.el (hui:menu-item-key): Add and call from 'hui:menu-item-keys'.

* hib-kbd.el (kbd-key:key-series-to-events): Add cons of t to each
    event to ensure each event is added to this-command-keys.

2022-10-25  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-backward-same-level):      Add and bind to {b}.
	    (hyrolo-forward-same-level):       Add and find to {f}.
            (hyrolo-next-visible-heading):     Add and bind to {n}.
            (hyrolo-previous-visible-heading): Add and bind to {p}.
	    (hyrolo-up-heading):               Add and bind to {u}.
	    (hyrolo-helm-org-directory-rifle, hyrolo-helm-org-rifle):
    Let new variable, 'helm-org-rifle-show-level-stars', be t.

2022-10-24  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-outline-assist, smart-outline,
    (smart-outline-to-entry-end): Remove 2nd arg 'curr-entry-level'
    and simplify logic.

* hyrolo.el, hyrolo-logic.el: Remove 'next-entry-exists' and
    'previous-entry-exists'.

* test/hyrolo-tests.el (hyrolo-demo-move-to-beginning-and-end-of-file):
    Rewrite to match new {,} and {.} bindings.

* hyrolo.el (hyrolo-to-entry-end): Remove 2nd optional arg
    curr-entry-level-len.

2022-10-23  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (HyRolo Keys):
  hyrolo.el (hyrolo-to-entry-end): Make interactive and bind to {.}.
            (hyrolo-to-entry-beginning): Add and bind to {,}.
   Previously, these keys were bound to begin and end of buffer but
   were mistakenly reversed.  Also, simplify these two commands.
            (previous-entry-exists): Add this free variable and use
   in 'hyrolo-to-entry-beginning'.

* hbut.el (hbut:get-key-src): Add save-excursion so point does not move.
  hyrolo.el (hyrolo-edit-entry): Fix so if point is not on an entry
    (src is a buffer, not a string), then raise an error.

2022-10-20  Mats Lidell  <matsl@gnu.org>

* hload-path.el (hyperb:dir): Use defvar. Thanks to Stefan Monnier.

2022-10-16  Mats Lidell  <matsl@gnu.org>

* kotl/klink.el (hmouse-tag): Require hmouse-tag.
* hui-mouse.el (imenu): Require imenu.
* hmouse-sh.el (kmacro): Require kmacro.

* kotl/kotl-mode.el (cmpl-last-insert-location, cmpl-original-string)
    (completion-to-accept):
* hyrolo.el (org-roam-directory, org-roam-db-autosync-mode)
    (markdown-regex-header):
* hui-mouse.el (magit-root-section):
* hsettings.el (helm-allow-mouse):
* hmouse-info.el (Info-complete-menu-buffer):
* hmouse-drv.el (start-window):
* hload-path.el (generated-autoload-file): Declare variable.

* hargs.el (hargs:reading-symbol): Define variable.

2022-10-16  Mats Lidell  <matsl@gnu.org>

* kotl/kview.el (kview:insert-contents): Don't use global name for
    parameter.
    (kview:set-label-separator): Remove unused variable.

* hpath.el (hpath:is-p): Initialize variable.

* hmouse-sh.el (hmouse-get-bindings, hmouse-shifted-setup): Don't use
    global name for parameter.

2022-10-16  Bob Weiner  <rsw@gnu.org>

* kotl/kproperty.el (kproperty:replace-separator): Drop unused 'pos' arg.
  kotl/kview.el (kview:set-label-separator): Update call to above function.

2022-10-15  Bob Weiner  <rsw@gnu.org>

* hui-em-but.el (hproperty:but-flash): Remove 'a' and 'b' internal
    variables and replace with 'but-face'.

* hbut.el (defil): Add 'ibut:label-set' call with label start and end
    positions so implicit buttons defined this way flash when activated.

* hyrolo-menu.el: Align menu entry fields for better readability.

* hbut.el (hbut:get-key-src): Add optional 'dir-flag' arg to return the
    directory of the 'key-src' and use in 'klink:at-p'.

* kotl/klink.el (klink:c-style-modes): Improve doc string.
                (klink:at-p): In *scratch* buffer (lisp-interaction-mode)
    and 'hui-select-markup-modes', allow klinks outside of comments
    (since this is more intuitive).

2022-10-11  Mats Lidell  <matsl@gnu.org>

* Makefile (bin, eln): Show docstring warnings again.

2022-10-10  Mats Lidell  <matsl@gnu.org>

* kotl/kview.el (kview:create): Shorten docs strings to be within 80 char
    limit.

2022-10-09  Bob Weiner  <rsw@gnu.org>

* hyrolo-logic.el (hyrolo-map-entries, hyrolo-map-kotl): Add and call from
    'hyrolo-map-logic'.

2022-10-09  Mats Lidell  <matsl@gnu.org>

* Update docstrings to not use unescaped quotes.

* hyrolo.el:
* hyrolo-demo.el:
* hui-mini.el:
* hui-em-but.el:
* hsys-org.el:
* hpath.el:
* hib-kbd.el:
* kotl/kview.el: Shorten docs strings to be within 80 char limit.

2022-10-08  Mats Lidell  <matsl@gnu.org>

* hibtypes.el (ipython-stack-frame, ripgrep-msg): Use
    line-beginning-position and line-end-position.

2022-10-08  Bob Weiner  <rsw@gnu.org>

* kotl/kview.el (kcell-view:contents): Add 'prefix-flag' arg to include
    autonumber prefix and indent.
                (kview:map-cells): Add.

* kotl/kotl-mode.el (kotl-mode:tree-start): Use 'line-beginning-position'.

2022-10-06  Bob Weiner  <rsw@gnu.org>

* test/hibtypes-tests.el (ibtypes::pathname-path-variable-test): Remove
    since is a duplicate of 'ibtypes::pathname-directory-test'.

2022-10-05  Mats Lidell  <matsl@gnu.org>

* hui.el:
* kotl/kotl-mode.el:
* hib-social.el
* hmail.el:
* hmouse-tag.el:
* hsettings.el:
* hsys-org.el:
* hui-mini.el: Shorten docs strings to be within 80 char limit.

2022-10-04  Mats Lidell  <matsl@gnu.org>

* hui.el (hui-copy-to-register): Use hui-register-struct-at-point if on a
    button.

* test/hui-register-tests.el (hui-register-test--create-register-content)
    (hui-register-test--register-val-jump-to)
    (hui-register-test--register-val-insert-ebut)
    (hui-register-test--register-val-insert-ibut): Add test cases for
    hui-register.

* Makefile (EL_COMPILE, ELC_COMPILE): Add hui-register.

2022-10-03  Mats Lidell  <matsl@gnu.org>

* hui-mouse.el:
* hvar.el:
* hyrolo.el:
* hypb.el:
* hycontrol.el:
* hui-select.el:
* hpath.el:
* hibtypes.el:
* hyrolo-logic.el:
* hyperbole.el:
* hversion.el:
* hui-window.el:
* hmouse-key.el:
* hmouse-drv.el:
* hload-path.el:
* hinit.el: Shorten docs strings to be within 80 char limit.

2022-09-30  Bob Weiner  <rsw@gnu.org>

* hyrolo-logic.el (hyrolo-not, hyrolo-or, hyrolo-xor, hyrolo-and):
    Use narrow-to-region and 'hyrolo-next-match-function' to find matches.
    Also, regexp-quote the pattern as it is a string.
                 (hyrolo-r-not, hyrolo-r-or, hyrolo-r-xor, hyrolo-r-and):
    Use narrow-to-region and 'hyrolo-next-match-function' to find matches.
                 (hyrolo-fgrep-logical): Add support for using the regex
    logical functions by prefacing each function with 'r-' in an expression,
    e.g. (r-and regex1 (r-not regex2)).

* hyrolo.el (hyrolo-verify): Add support for 'hynote-display-buffer'.
            (hyrolo-grep-file): Change 'regexp' arg to 'pattern' and update
    doc to mention use of 'hyrolo-next-match-function'.

* kotl/kcell.el (kcell:parse-cell-ref): Extract this from 'kotl-mode:goto-cell'
    and make an autoload so may be used externally.

2022-09-27  Bob Weiner  <rsw@gnu.org>

* kotl/kcell.el (kcell:plist): Change from alias to a function so can include
    a doc string.

2022-09-26  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-next-regexp-match): Add to allow for different
    hyrolo entry matching functions.
            (hyrolo-next-match-function): Add.
            (hyrolo-grep-file): Use above variable.

2022-09-25  Bob Weiner  <rsw@gnu.org>

* hyrolo-logic.el (hyrolo-logic): Fix to handle when filename list is used
    rather than a buffer list.

* hui.el (hui-copy-to-register): Rename 'region' arg to 'region-flag'.

* hyrolo.el (hyrolo-add): Handle markdown-mode which doesn't have a grouping
    of only space after pound (#) headings.
            (markdown-mode-hook): Support hyrolo searches in markdown files.
	    (hyrolo-fgrep-file, hyrolo-grep-file, hyrolo-fgrep, hyrolo-grep,
             hyrolo-word): Add optional 'headline-only' argument.
* hib-doc-id.el (link-to-doc, doc-id:help): Set new 'headline-only' argument
    to nil.

2022-09-24  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-display-buffer): Change buffer name from "*Hyperbole Rolo*"
    to "*HyRolo*".

* test/demo-tests.el (demo-hyrolo-test):
  test/hyrolo-tests.el: Replace all "*Hyperbole Rolo*" with 'hyrolo-display-buffer'.

2022-09-19  Mats Lidell  <matsl@gnu.org>

* hypb.el (hypb:replace-match-string): Remove unused function.

* hact.el: Use byte-code-function-p.

2022-09-17  Bob Weiner  <rsw@gnu.org>

* kotl/klink.el (klink:cell-ref-regexp): Allow for a comma between
    the cell reference and a viewspec.
  kotl/kcell.el (kcell:ref-to-id): Remove any comma.

2022-09-14  Mats Lidell  <matsl@gnu.org>

* hmouse-sh.el:
* hywconfig.el:
* htz.el:
* hmouse-mod.el:
* hmoccur.el: Shorten docs strings to be within 80 char limit.

2022-09-13  Mats Lidell  <matsl@gnu.org>

* hmouse-info.el: Shorten docs strings to be within 80 char limit.

2022-09-12  Mats Lidell  <matsl@gnu.org>

* hpath.el (hpath:tramp-file-name-regexp): Handle tramp regexp from
    different Emacs versions.

* test/hpath-tests.el (hpath:remote-at-p): Add test case for
    hpath:remote-at-p.

2022-08-29  Bob Weiner  <rsw@gnu.org>

* hbut.el (ebut:key-src): Rename to 'ebut:to-key-src'.
          (hbut:key-src): Rename to 'hbut:to-key-src'.
          (ibut:key-src): Rename to 'ibut:to-key-src'.

* hyrolo.el (hyrolo-verify, hyrolo-isearch, hyrolo-next-match,
             hyrolo-previous-match, hyrolo-isearch-for-regexp):
    Add support for use in main HyRolo file, not just match buffer.

* hui-select.el (hui-select-goto-matching-delimiter, hui-select-thing):
  hui-mini.el (hui-search-web): Use Org cmd if matching key binding
    called from a keyboard macro.

* hui-mini.el (hui-search-web): If in Org mode and uses org-sparse-tree
    binding call that instead (previously would call hsys-org-todo-occur
    for more todo filtering functionality but org has a dispatch menu
    on this key with multiple functions).

2022-08-28  Bob Weiner  <rsw@gnu.org>

* kotl/klink.el (klink:act): Ensure 'hact' value is returned, not
    the result of the 'klink:update-label' call.
  hbut.el (hbut:get-key-src): Add to get source of button without
    setting as current buffer.
  kotl/klink.el (klink:at-p): Use 'hbut:get-key-src' to resolve
    relative klink paths properly.

* kotl/kotl-mode.el (kotl-mode:to-start-of-line):
    Remove and use 'kotl-mode:beginning-of-line' instead.

* hact.el (action:commandp, action:params, actype:eval):
  hargs.el (hargs:action-get):
  hypb.el (hypb:debug, hypb:map-vector):
    Replace use of 'hypb:emacs-byte-code-p' with builtin
    'byte-code-function-p.

* hibtypes.el (elisp-compiler-msg):
    Replace 'hypb:replace-match-string' with 'replace-regexp-in-string'.

* hbut.el (ibut:at-p): Fix to return nil if name and lbl-key are both nil.
    Also add support for <> and {} ibut delimiters.

* hui-mouse.el (hkey-alist): In HyRolo match buffer, test major-mode
    rather than buffer name.

* hyrolo.el (hyrolo-mode): Don't reinitialize local variables to default
    values when already in hyrolo-mode and mode is invoked again.

* kotl/kview.el (kcell-view:to-label-end): Remove check if in a buffer
    with a kview so can be used in HyRolo match buffer as well.
                (kcell-view:to-label-end): Handle no kview in in HyRolo
    match buffer.

* hyrolo.el (hyrolo-kill, hyrolo-toggle-narrow-to-entry,
             hyrolo-google-contacts-grep, hyrolo-grep-file,
             hyrolo-display-to-entry-end, hyrolo-name-at):
  kotl/kimport.el (kimport:star-entries): Don't fold case when searching
    for 'hyrolo-hdr-and-entry-regexp'.
    (hyrolo-isearch-for-regexp): Add 2nd parameter, 'fold-search-flag'
  used to set 'case-fold-search'.

* hyrolo.el (hyrolo-find-file-noselect-function): Add so can customize
    low-level function used to read in each file searched by HyRolo.
            (hyrolo-find-file): Add second optional parameter, 'find-function',
    used to find the file.
            (hyrolo-find-file-noselect): Add and use 'hyrolo-find-file-noselect-function'.
	    (hyrolo-add, hyrolo-edit, hyrolo-grep, hyrolo-helm-org-rifle,
             hyrolo-grep-file, hyrolo-map-level, hyrolo-to): Update to call
    'hyrolo-find-file-noselect'.
            (hyrolo-add-match): Retain entry properties in match buffer.
	    (hyrolo-mode): Make 'outline-regexp' local in match buffer.

2022-08-27  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-file-suffix-regexp): Match only to these
    file suffixes when searching for HyRolo files in directories.
            (hyrolo-search-directories, hyrolo-fgrep-directories,
             hyrolo-grep-directories, hyrolo-helm-org-rifle-directories):
    Add these functions to do HyRolo searches over filtered filenames
    in directories.
            (hyrolo-org): Separate helm-org-rifle behavior into a new
    command, 'hyrolo-helm-org-directory-rifle'.
            (hyrolo-helm-org-rifle, hyrolo-helm-org-directory-rifle):
    Let 'helm-org-rifle-show-full-contents' be true.

* hyrolo.el (hyrolo-helm-org-rifle): Limit to .org and .otl files.

* hypb.el (hypb:filter-directories, hypb:readable-directories):
    Add and use in "hyrolo.el".

2022-08-21  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-set-date): Don't add a date if in a Koutline
    buffer.
* hyrolo.el (hyrolo-add, hyrolo-edit, hyrolo-toggle-narrow-to-entry,
             hyrolo-grep-file, hyrolo-to):
  hyrolo-logic.el (hyrolo-map-logic):
            Replace use of 'widen' with new function, 'hyrolo-widen',
    which widens only to the textual part of a buffer, leaving
    Koutline meta-data hidden, for example.
            (hyrolo-edit, hyrolo-add): If in a Koutline, ensure point is
    left in a valid, editable position.
            (hyrolo-narrowed-p): Remove.  Use 'buffer-narrowed-p' instead.
	    (hyrolo-show-levels): Make argument of NUM-LEVELS relative
    to first matched level, so some entries are always shown.
            (hyrolo-min-matched-level): Add and use in 'hyrolo-show-levels'
            (hyrolo-back-to-visible-point): Add and use in
    'hyrolo-show-levels'.
            (hyrolo-display-matches): Move invocation of 'hyrolo-mode'
    to when the match display buffer is created in 'hyrolo-set-display-buffer'.
            (hyrolo-set-display-buffer): Add and used above.

2022-08-20  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-grep): Add support for 'outline-regexp' and
    'outline-level' variables from multiple file types.  This includes
    adding 'hyrolo-hdr-regexp' to both 'hyrolo-hdr-and-entry-regexp' and
   'outline-regexp' within the *HyRolo* match buffer.
            (hyrolo-mode): Set local value of 'outline-level' to
    'hyrolo-mode-outline-level' and define that function to support
    star outlines and Koutlines.  Also, make 'hyrolo-hdr-and-entry-regexp'
    local and set it to its default value, after which it may be
    modified.
            (hyrolo-previous-match): Change so can be used in a
    predicate when a match is found.
            (hyrolo-mode-outline-level): Add and use in 'hyrolo-mode'.

* kotl/kotl-mode.el (kotl-mode): Add local settings of:
    'hyrolo-hdr-and-entry-regexp', 'outline-level', and 'outline-regexp'
     specific to Koutlines.
  kotl/kview.el (kview:outline-regexp): Regexp quote
    use of 'kview:default-label-separator'.
            (hyrolo-name-at): Change to only go to beginning of
    the current line to check if at the start of a hyrolo entry;
    don't do a reverse search any more.

2022-08-14  Mats Lidell  <matsl@gnu.org>

* set.el:
* hyrolo-demo.el:
* hui-jmenu.el:
* hui-em-but.el:
* hsys-youtube.el: Shorten docs strings to be within 80 char limit.

* hload-path.el (hload-path--make-directory-autoloads): Use
    loaddefs-generate if available.

2022-08-11  Bob Weiner  <rsw@gnu.org>

* kotl/kview.el (kview:outline-regexp): Add groupings to match
    to 'hyperbole-entry-regexp' when HyRolo searches kotls.

* kotl/kotl-mode.el (kotl-mode): Set this mode with 'special
    property since cells are specially formatted and edited.
  hyrolo.el (hyrolo-grep-file):
  hyrolo-logic.el (hyrolo-map-logic): Don't widen buffers whose
    major mode is marked 'special.

2022-08-08  Bob Weiner  <rsw@gnu.org>

* kotl/kview.el (kview:outline-regexp): Add so can be referenced
    elsewhere.
  kotl/kotl-mode.el (kotl-mode): Use kview:outline-regexp.

2022-08-07  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-org, hyrolo-org-roam): Remove cddr call to filter
    . and .. out since match to "\\.org$" already does.  Also add
    missing arguments to hyrolo-org and complete doc strings.

2022-08-07  Mats Lidell  <matsl@gnu.org>

* kotl/kvspec.el: Shorten docs strings to be within 80 char limit.

2022-07-26  Mats Lidell  <matsl@gnu.org>

* kotl/kproperty.el:
* kotl/klink.el:
* kotl/klabel.el:
* kotl/kfile.el:
* hib-kbd.el:
* hib-doc-id.el:
* hhist.el:
* hbut.el:
* kotl/kotl-orgtbl.el: Shorten docs strings to be within 80 char limit.

2022-07-25  Mats Lidell  <matsl@gnu.org>

* kotl/kimport.el:
* kotl/kfill.el: Shorten docs strings to be within 80 char limit.

2022-07-24  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:require-package): Prompt user with y/n query before
    installing a package when it is not already installed.

* hbut.el (ibut:at-p, ibut:create): Ensure lbl-key is always set to
    name, if available, and lbl-start and lbl-end point to the text
    start and end for an ibut.

* hibtypes.el (action): Ensure actypes:: prefix is added to any action
    attribute that uses a Hyperbole actype.  Also, set args attribute
    to exclude the actype.

* hbut.el (ibut:create): Rewrite to prefer values from hbut:current
    over any passed in individually.

* test/demo-tests.el (fast-demo-key-series-shell-cd-hyperb-dir):
  FAST-DEMO: Change pushd to cd since /bin/sh does not support pushd.

* hpath.el (hpath:find): Rename filename arg to pathname and trigger
    an error if not a string.

2022-07-23  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (action): Display the result of evaluating the action
    in the minibuffer for all types of expressions.
  hactypes.el (display-value, display-variable): Fix to display
    Lisp-readable values.

* hui.el (hui:gibut-create): Add (ibut:create) call so 'hbut:current
    stores the attributes of the newly created global button.

* hbut.el (hbut:action): If action defined, return only first
    element to match the return when actype is used.
          (hbut:act): Use action attribute if defined.
	  (ibut:create): Prevent removal of 1st arg if actype
    is set.

* hibtypes.el (elisp-compiler-msg): Add support for ERT "Test <symbol>"
    lines to jump to the def of the symbol and for symbol and pathname
    references from backtraces in ERT output.

* hib-debbugs.el (debbugs-version-sufficient-p): Handle if version
    is nil due to edebug mocking of 'find-file-noselect'.
  test/hui-tests.el (hui-gibut-create-link-to-file,
    hui-gibut-create-link-to-file-line,
    hui-gibut-create-link-to-file-line-and-column):
  test/hbut-tests.el (gbut-program-calls-ebut-program)
    gbut-program-link-to-directory, gbut-program-eval-elisp,
    gbut-program-link-to-file, gbut-program-link-to-file-line,
    gbut-program-link-to-file-line-and-column):
      Replace mock of 'find-file-noselect' with 'hpath:find-noselect'
      so tests do not interfere with other calls to 'find-file-noselect'.

* test/hy-test-helpers.el (hy-test-helpers:kill-buffer):
    Add to kill buffers only when they exist.
  test/demo-tests.el (fast-demo-key-series-shell-apropos):
    Use 'hy-test-helpers:kill-buffer'.
  test/hy-test-dependencies.el (hy-test-ensure-package-installed):
    Simplified by defining this function.

2022-07-22  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-debug): Use 'action' attribute if set, otherwise,
    use 'actype' and 'args'.

* hbut.el (ibut:create): Add 'dir' key parameter and set as hbut:current
    attribute.  Remove '(or args)' as that was preventing set of
    hbut:current attributes.

2022-07-21  Mats Lidell  <matsl@gnu.org>

* kotl/kexport.el:
* kotl/kcell.el: Shorten docs strings to be within 80 char limit.

2022-07-20  Mats Lidell  <matsl@gnu.org>

* hact.el:
* hmouse-tag.el:
* hbdata.el:
* hactypes.el:
* hib-debbugs.el:
* hargs.el: Shorten docs strings to be within 80 char limit.

2022-07-19  Mats Lidell  <matsl@gnu.org>

* test/demo-tests.el (fast-demo-key-series-shell-apropos): Add optional
    whitespace after command to accomodate for different versions on
    apropos.

2022-07-17  Mats Lidell  <matsl@gnu.org>

* hypb.el (hypb:replace-match-string): Fix obsolete version to 8.0.1.

* kotl/kotl-mode.el (kotl-mode:beginning-of-line): Rename from
    kotl-mode:to-start-of-line since it is the preferred name but was
    blocked due to XEmacs byte compiler bug.
    (kotl-mode:to-start-of-line): Mark as obsolete from version 8.0.1.

* hmouse-sh.el (hmouse-get-bindings): Do not mention XEmacs since it is
    not supported.

* kotl/kview.el:
* kotl/kotl-mode.el:
* kotl/klabel.el: Use lbl-sep-len for all defun parameters to avoid name
    clash with obsolete variable label-sep-len.

* kotl/kvspec.el (kvspec:show-lines-this-cell): Use kview-label-sep-len.

* kotl/kotl-mode.el (kotl-mode:collapse-tree, kotl-mode:expand-tree): Use
    kview-label-sep-len.

* kotl/kview.el (kview-label-sep-len): Rename global variable.
    (kcell-view:lines-visible, kview:set-cells-status): Use it.
    (label-sep-len):  Mark variable as obsolete. Use kview-label-sep-len.

2022-07-17  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-debug): Add print of all button properties when on
    a Hyperbole button.

* hsettings.el (hyperbole-web-search): Add optional 'return-search-expr-flag'
    to return search expression rather than doing the search.  Use
    with Assist Key.

* hibtypes.el (action): Call ibut:create to ensure button attributes
    are set properly.
  hbut.el (ibut:create): Return nil if at end-of-buffer.

* hui-mouse.el (smart-imenu-item-p): Support -99 position value
    that Emacs uses to indicate a rescan should be done.

* test/demo-tests.el (fast-demo-key-series-shell-cd-hyperb-dir,
                      fast-demo-key-series-shell-grep,
                      fast-demo-key-series-shell-apropos):
    Use 'sh' instead of 'bash' for wider applicability.
    Don't kill shell buffer if it exists before the test is invoked.

* hact.el (htype:symbol): Return nil if type-category is invalid.

2022-07-15  Mats Lidell  <matsl@gnu.org>

* test/hypb-tests.el: Remove test cases for hypb:replace-match-string.

* hypb.el (hypb:replace-match-string): Mark as obsolete. Replace all
    calls, in numerous places, to use replace-regexp-in-string.

2022-07-13  Stefan Monnier  <monnier@iro.umontreal.ca>

* hrmail.el (rmail-cease-edit, rmail-forward, rmail-get-new-mail)
    (rmail-new-summary): Use `advice-add` rather than straight redefinition
    or `hypb:function-overload`.

* hmh.el (mh-display-msg, mh-regenerate-headers): Use `advice-add`
    rather than `hypb:function-overload`.

* hgnus.el (gnus-inews-article): Remove hack on function that was
    deleted back in Nov 1995.

* hypb.el (hypb:emacs-byte-code-p): `byte-code-function-p` is always
    defined in Emacs≥27.
    (hypb:function-copy, hypb:function-overload)
    (hypb:function-symbol-replace, hypb:map-sublists)
    (hypb:constant-vector-symbol-replace): Delete functions.

2022-07-12  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:create): Add, extracted from 'ibut:at-p'; define
    with cl-defun so can optionally use non-positional colon-prefixed
    keyword args to specify specific args.

* hmouse-drv.el (hkey-help): Set 'assist-flag' so matches Assist Key
    behavior in edges cases.

* hactypes.el (display-value): Add to display a value when a get or
    value function returns that value.
  hibtypes.el (action): Use 'display-value'.

2022-07-12  Mats Lidell  <matsl@gnu.org>

* test/hpath-tests.el (hpath:auto-variable-alist-load-path-test): Simplify
    test case to only test with unquoted file name.

* test/hui-tests.el (hui-gbut-edit-link-to-file-button): Remove test file
    after test case is completed.

2022-07-11  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (action:help): Allow for action button assist key :help
    functions, even if the action button type is not a Hyperbole type,
    i.e. a regular function.

2022-07-11  Mats Lidell  <matsl@gnu.org>

* test/hy-test-helpers.el (hy-test-helpers:should-last-message): Use
    function messages-buffer for getting the *Messages* buffer.

* test/hui-select-tests.el (hui-select--thing): Limit test case to run in
    interactive mode, i.e. make test-all.

2022-07-10  Bob Weiner  <rsw@gnu.org>

* hsys-youtube.el: Add action button type to play segments of Youtube videos.
  Makefile (EL_COMPILE, ELc_COMPILE):
  MANIFEST: Added above file.

2022-07-06  Bob Weiner  <rsw@gnu.org>

* hypb.el (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.

2022-07-04  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:devdocs-lookup): Install and load devdocs package and then
    call its 'devdocs-lookup' function.

2022-07-02  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-org, hyrolo-helm-org-rifle, hyrolo-org-roam): Add HyRolo-
    based searching of Org files, helm-based searching of HyRolo files and
    Hyrolo-based searching of Org Roam files.

* hsys-org.el (hsys-org-link-at-p, hsys-org-heading-at-p): Update to use
    'smart-eolp' and 'smart-eobp'.

2022-06-26  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (hkey-alist): Fix smart-lisp to jump to load, autoload and
    require targets.
  hmouse-tag.el (smart-lisp-at-load-expression-p): Ensure expr ends with
    whitespace (a full word).

2022-06-25  Bob Weiner  <rsw@gnu.org>

* hui-mini.el (hui:menu-forward-item, hui:menu-backward-item): Update to
    handle menus without a name> prefix, e.g. a-Z menu.  Also add numeric
    prefix arg handling.

2022-06-20  Bob Weiner  <rsw@gnu.org>

* hui-mini.el (hui:doc-a-z): Add.
              (hui:menu-item): Add support for inserting menu item label
    into the action when the action is 'hui:menu-to-personal-section'.
              (hui:menu-to): Add this customizable menu but don't activate
    it until design work is finished.

* hyrolo.el (hyrolo-add): Add newline before adding entry if point is not
    at the beginning of the line for insertion, i.e. when buffer does not
    end with a newline.

* hui-mini.el (hui:menu-multi-line): Add to change long minibuffer menu lines
    into multi-line menus.
              (hui:menu-line): Update to use 'hui:menu-multi-line'.

2022-06-19  Bob Weiner  <rsw@gnu.org>

* test/demo-tests.el (fast-demo-key-series-shell-apropos): Allow optional space
    before matching section number.

* hui-treemacs.el: Change to load and compile only when the treemacs package is
    installed (rather than triggering an error if this is loaded when treemacs
    is missing, since this can happen when building/compiling Hyperbole).

* Makefile (BATCHFLAGS): Output emacs version, sys and path information.
           (LOAD_EL): Add to gen cmd line args to load all Hyperbole .el files.
           (load-hyperbole): Add to allow testing of loading all of Hyperbole.
           (eln): Use LOAD_EL and remove autoloads loading prior to native compiling.

* test/demo-tests.el (fast-demo-key-series-shell-apropos): Fix to handle
    shell startup delay.

* hypb.el (hypb:function-copy): Since many functions may become primitives
    when using the native compiler, return the primitive function in such
    cases rather than triggering an error.

2022-06-19  Mats Lidell  <matsl@gnu.org>

* hui-select.el: Remove mention of Emacs versions in comment.

* hmoccur.el (moccur): Remove XEmacs and InfoDock font-lock code.

* hui-mouse.el: Remove mention of Emacs versions and NEXTSTEP.

* hsettings.el: Remove XEmacs from comment.

* kotl/kotl-mode.el (kotl-mode:fill-paragraph-or-region):
    (kotl-mode-map): Remove XEmacs compatibility code.

* hmouse-drv.el (hmouse-use-region-p): Remove XEmacs and InfoDock
    compatibility code.

* kotl/kmenu.el (id-menubar-set): Remove declared unused function.
    (id-menubar-kotl): Remove unused InfoDock menu.
    (kotl-menubar-menu): Remove XEmacs compatibility code.
    (kotl-mode-hook): Set hook unconditionally.

* hyrolo-menu.el (id-menubar-hyrolo): Remove InfoDock menu.
    (id-menubar-set, mode-popup-menu): Remove unused public declarations.
    (hyrolo-menubar-menu): Remove XEmacs compatibility code.
    (hyrolo-mode-hook): Set hook unconditionally.

* hmouse-tag.el (smart-emacs-tags-file): Remove XEmacs, Infodock from doc.
    (smart-tags-find-p, smart-tags-display, smart-tags-file-list):
    Remove XEmacs and InfoDock compatibility code.

* hmouse-mod.el (hmouse-mod-last-char): Remove XEmacs compatibility code.

* hyrolo.el (hyrolo-prompt):
    (hyrolo-rename): Remove XEmacs dialog box and parameter.

* hui-window.el (hmouse-modeline-event-p): Remove XEmacs and old Emacs
    compatibility code.

2022-06-18  Mats Lidell  <matsl@gnu.org>

* hact.el (hact): Use defun. Patch from Stefan Monnier. Thanks Stefan.

2022-06-16  Mats Lidell  <matsl@gnu.org>

* Makefile (hyperbole-autoloads.el, kotl/kotl-autoloads.el): Use
    hload-path--make-directory-autoloads.

2022-06-14  Mats Lidell  <matsl@gnu.org>

* hload-path.el (hload-path--make-directory-autoloads)
    (hload-path--internal-make-directory-autoloads): Use defalias for
    compatibility function.
    (hyperb:generate-autoloads): Use it.

* hibtypes.el (cl-lib): Require cl-lib to remove package-lint warning.

* hyperbole.el: Remove defalias for compatibility with obsolete functions
    since Emacs 25.1 and outline-flag-region available since 2003.

* hui-em-but.el (hproperty:good-colors): package-lint code formatting.

2022-06-13  Mats Lidell  <matsl@gnu.org>

* test/demo-tests.el (fast-demo-key-series-shell-cd-hyperb-dir)
    (fast-demo-key-series-shell-grep, fast-demo-key-series-shell-apropos):
    Tests for shell related key series examples in the fast demo.

2022-06-12  Mats Lidell  <matsl@gnu.org>

* hib-kbd.el: Replace \\s- with [ \t\n\r\f] to eliminate mode based
    differences.

2022-06-09  Mats Lidell  <matsl@gnu.org>

* test/demo-tests.el:
    (fast-demo-key-series-window-grid-22, fast-demo-key-series-kotl-files)
    (fast-demo-key-series-emacs-lisp-mode)
    (fast-demo-key-series-hyperbole-dir)
    (fast-demo-key-series-keep-lines-ext)
    (fast-demo-key-series-keep-lines-slash)
    (fast-demo-key-series-keep-lines-dired): Add tests for FAST-DEMO key
    series examples.

2022-06-05  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-eolp): Exclude when on blank line and nothing but whitespace until eob.
               (smart-eobp): Add and replace 'eolp' calls with this, including in 'smart-eolp'.

2022-06-05  Mats Lidell  <matsl@gnu.org>

* Makefile (eln): Target for native byte compilation.

2022-06-04  Bob Weiner  <rsw@gnu.org>

* test/hpath-tests.el (hpath--should-exist-paths): Fix to handle Hyperbole package installation dirs.

* hact.el (action:params-emacs): Simplify by calling 'help-function-arglist'.

* hypb.el (hypb:debug):
  hact.el (actype:eval):
  hargs.el (hargs:action-get): Handle builtin and natively compiled subroutines/functions.

* hypb.el (hypb:display-file-with-logo): Add slight delay after file load to ensure searching
    always succeeds.

* Makefile (EMACS): Fix on MacOS so can still override emacs version by prefixing the make
    command with EMACS=<executable>.

2022-06-02  Bob Weiner  <rsw@gnu.org>

* Makefile (version): Add hyperbole-pkg.el to version check.

2022-05-30  Bob Weiner  <rsw@gnu.org>

* hact.el (action:params): Add support for natively-compiled functions
    using 'help-function-arglist' from "help.el".
 hypb.el (hypb:emacs-byte-code-p): Make an autoload since referenced from
    hact.el.

2022-05-28  Bob Weiner  <rsw@gnu.org>

* hactypes.el (link-to-texinfo-node): Fix typo in find-file-noselect call.

2022-05-22  Bob Weiner  <rsw@gnu.org>

* hsys-org.el (hsys-org-meta-return): Remove optional ARG and just use value of
    'current-prefix-arg' to simplify (hact 'hsys-org-meta-return) calls.

* hpath.el (hpath:internal-display-alist): Fix so Info files with non-absolute
    directories outside of the 'Info-directory-list' are resolved properly,
    e.g. "man/hyperbole.info".

* hui-mouse.el (hkey-alist, smart-org): Remove _assist-flag from 'smart-org' calls
    since already use global 'assist-flag' instead.

* hsys-org.el (hsys-org-meta-return): Add this and autoload it so can centrally
    control Hyperbole calls to 'org-meta-return'.  Also, fix passing of non-numeric
    args to that function, e.g. '(4).
  hui-mouse.el (action-key-error, assist-key-error, smart-org):
  test/smart-org-tests.el (smart-org-mode-with-smart-keys-buttons-on-delimited-thing-calls-org-meta-return,
    smart-org-mode-with-no-smart-keys-on-hypb-button-calls-org-meta-return,
    smart-org-mode-with-no-smart-keys-on-org-link-is-org-meta-return): Call 'hsys-org-meta-return'.

* kotl/klink.el (link-to-kotl): Fix and remove 'kcell:ref-to-id' calls because
    current buffer will not be set to the Koutline file yet if link contains a file
    reference.

* hactypes.el (link-to-kcell): Fix ordering of cond clauses so file part of links
    are properly handled before handling cell-ref part.

2022-05-22  Mats Lidell  <matsl@gnu.org>

* test/kexport-tests.el:
  test/hmouse-info-tests.el:
  test/hmouse-drv-tests.el:
  test/hbut-tests.el: Don't byte compile any test files that depend on
    external test support packages.

2022-05-16  Bob Weiner  <rsw@gnu.org>

* FAST-DEMO: Change from /usr/bin/bash to /bin/bash.

* hycontrol.el (hycontrol-windows-grid-by-file-pattern): Fix improper relative path
    resolution when called interactively; force use of full paths.

2022-05-15  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-windows-grid-by-file-pattern): Fix interactive pattern
    to prompt for a string, not a file.

* hpath.el (hpath:resolve): Add to resolve path variables without doing a path expand.
           (hpath:find, hpath:call): Resolve but never expand paths with modifier char
    [-!&] as first char since these might need to be searched in exec-directory, not
    the current path.
 test/hpath-tests.el (hpath:load-modifier-with-plain-file-loads-file-from-load-path):
 test/hmouse-drv-tests.el (hbut-load-modifier-with-plain-file-loads-file-from-load-path):
    Update to handle non-expansion of relative Lisp library files.

* hui-select.el (hui-select-initialize):
  hib-kbd.el (kbd-key): Fix close bracket syntax to match open (was close).

* hbut.el (ebut:label-p): Fix handling when point is on final RET and
    have nested lists as in here with braces:
    { M-x shell RET M-> (cd ${hyperb:dir}) RET }
    by adding a (forward-list) call in the first 'while' construct.

2022-05-14  Bob Weiner  <rsw@gnu.org>

* hsys-org.el (hsys-org-todo-occur): Add.
  hui-mini.el (hui-search-web): Hyperbole binds this to {C-c /} which
    conflicts with an Org mode binding, so if in Org mode, use its binding
    when this command is called interactively from that key.

* man/hyperbole.texi (Implicit Button Types, Smart Key - Org Mode): Add Org
    mode Action Key todo cycling and Assist Key todo set cycling.
  hsys-org.el (hsys-org-cycle, hsys-org-global-cycle): FIX: Remove setting of
    last-command which causes cursor to jump around somewhere else in the
    buffer when unfolding a headline rather than just unfolding it
              (hsys-org-todo-at-p, hsys-org-todo-cycle, hsys-org-todo-set-cycle):
    Add to cycle through todo states (and switch to a different set) on the Action
    and Assist Keys respectively.
  hmouse-drv.el (action-key-depress, assist-key-depress): Maintain last command
    when is org-todo to support proper Smart Key Org todo cycling.

* hpath.el (hpath:find): Remove any trailing characters with punctuation syntax,
    e.g. period.

* HY-NEWS (M-S-left and M-S-Right):
  man/hyperbole.texi (Promoting and Demoting):
  kotl/kotl-mode.el (kotl-mode-map): Org compatibility - Add [M-S-left] and
    [M-S-right] to promote and demote trees.

2022-05-12  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (elisp-compiler-msg): Add "*ert*" output buffer and support for
    Emacs native compiler "In <function>" lines.
              (grep-msg): Add support for Emacs native compiler "Compiling <file>"
    and "Loading <file>" lines (jumps to 1st line of the file).

* hypb.el (hypb:rgrep): Fix so --exclude directories are properly handled; sexp
    nesting was wrong.

2022-05-11  Bob Weiner  <rsw@gnu.org>

* hversion.el (hyperb:microsoft-os-p, hyperb:wsl-os-p): Move to "hload-path.el".
  All the changes in the last 3 days resolve the async native compiler Errors,
  leaving just warnings which may be ignored.

2022-05-10  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (elisp-compiler-msg): Add support for "*Async-native-compile-log*".

* hui-mouse.el (smart-dired): Remove 'quit-window' when (eolp) since Hyperbole globally
    controls EOL behavior and overrides this.  Extend subdir display when on any Dired
    header line (not just the first one), i.e. when subdirs are inserted with {i}.

* hbdata.el (require 'hversion): Add to satisfy async nativecomp.

* hypb.el (hypb:with-suppressed-warnings): Move to "hload-path.el" and rename to
    'hyperb:with-suppressed-warnings'.

2022-05-09  Bob Weiner  <rsw@gnu.org>

* Makefile (release): Add 'git-pull' and 'git-verify-no-update' dependencies and remove
    from 'pkg' target so can make test packages without having to synchronize with git
    master.
           (hyperbole-$(HYPB_VERSION).tar): Archive the current state of the Hyperbole
    branch rather than the last commit, so can test packages before committing.

* hyperbole.el:
  hrmail.el:
  hmh.el:
  hgnus.el:
  hsys-www.el:
  hui-em-but.el:
  hui-mouse.el:
  hypb-ert.el:
  hvm.el (hload-path): Add require of this library to handle autoloads.

2022-05-08  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hyperb:init): Run 'hyperb:maybe-generate-autoloads' even if
    Emacs is noninteractive.
               (hyperb:init): Move loading of autoloads from here to "hload-path.el"
    so can be loaded when native compilation is invoked asynchronously upon
    Hyperbole package installation.
  hload-path.el: Move whole autoloads section from "hyperbole.el" to here.

2022-05-02  Bob Weiner  <rsw@gnu.org>

* hactypes.el (require 'hvar): Add to ensure var:append is defined.

2022-05-02  Mats Lidell  <matsl@gnu.org>

* hypb-maintenance.el (hypb:web-repo-update): Add files to website that
    are linked from hyperbole.html. i.e. README.md.

2022-05-01  Bob Weiner  <rsw@gnu.org>

* hypb-maintenance.el (hypb:web-repo-update): Add hui.el, hbut.el, hbdata.el
     and hmail.el referenced in hyperbole.html.

* HY-ANNOUNCE: Shrink width of videos table to prevent wrapping.

* README.md: Use [TOC] to automatically generate table of contents with md2html
    program.

* Makefile (website-local): Add dependency on README.md.html.

==============================================================================
V8.0.1pre changes ^^^^:
==============================================================================
==============================================================================
V9.0.0 changes ^^^^:
==============================================================================

* Update release number to 8.0.0.

2022-04-30  Mats Lidell  <matsl@gnu.org>

* FAST-DEMO: Fix spelling.

2022-04-27  Mats Lidell  <matsl@gnu.org>

* test/hui-tests.el (hui--copy-to-register--yank-in-same-kotl)
    (hui--copy-to-register--yank-in-other-kotl)
    (hui--copy-to-register--yank-in-other-file)
    (hui--copy-to-register--yank-in-other-file-other-dir): Add
    hui-copy-to-register tests.

2022-04-26  Mats Lidell  <matsl@gnu.org>

* test/hui-tests.el (hui--kill-ring-save--yank-in-same-kotl)
    (hui--kill-ring-save--yank-in-other-kotl)
    (hui--kill-ring-save--yank-in-other-file)
    (hui--kill-ring-save--yank-in-other-file-other-dir): Add
    hui-kill-ring-save tests.

2022-04-24  Bob Weiner  <rsw@gnu.org>

* hib-kbd.el (kbd-key:act): Fix to handle non-special key series that
    contains more than one command, e.g "C-uC-n C-uC-n".

* hui-mini.el (hyperbole-set-key): Generalize to bind commands or
    Hyperbole minibuffer menu key strings in any keymap, with
    (global-key-map) as a default.

* hyperbole.el (hkey-set-key): Turn into a command with interactive
    calling support.

2022-04-24  Mats Lidell  <matsl@gnu.org>

* test/hui-tests.el (hui--delimited-selectable-thing--in-cell-return-ref)
    (hui--delimited-selectable-thing--in-ibut-return-ibut-text)
    (hui--delimited-selectable-thing--ibut-label-return-ibut-text)
    (hui--delimited-selectable-thing--in-ebut-return-ebut-text)
    (hui--delimited-selectable-thing--start-of-paired-delimiter)
    (hui--delimited-selectable-thing--in-kcell-link-return-link): Add
    tests for hui:delimited-selectable-thing.

2022-04-24  Bob Weiner  <rsw@gnu.org>

* hsettings.el (hyperbole-web-search): Handle functions as
   'hyperbole-web-search-alist' values.

* FAST-DEMO (Introduction, Hyperbole Explicit and Global Buttons): Add.

* Makefile (help): Update Hyperbole maintainer Makefile doc
           (git-tag-release): Re-enable these commands which were
    commented out for testing.
           (website): Change so pushes website to production.  Use
    'website-local' to update local CVS website files from the
    hyperbole distribution.

2022-04-24  Mats Lidell  <matsl@gnu.org>

* Makefile (website-push): Add push of website.
    (release): Use website-push.
    (CVS): Add cvs command as macro and use it in website-push.

2022-04-24  Bob Weiner  <rsw@gnu.org>

* hbut.el (ebut:get): Add 2 more params: start-delim and end-delim used
    in ebut:get.  Add button attributes lbl-start and lbl-end when button
    is at point, used by 'hui:delimited-selectable-thing'. This fixes
    capturing the text of explicit buttons using {M-w} or {C-x r s} when
    no region is selected.
          (ebut:at-p): Send start-delim and end-delim to ebut:get call.

* hui.el (hui:link-create): Remove 'hypb:assert-same-start-and-end-buffer'
    macro call as this may be called from hkey-operate via {M-o} which
    when called a second time can leave point in a buffer different than
    the start buffer, triggering an error when trying to create a button
    even though buttton creation would otherwise work properly: bug#55058.

2022-04-19  Mats Lidell  <matsl@gnu.org>

* Makefile (elpa, elpa_hypb_dir): Remove elpa target. ELPA picks up latest
    master from savannah automatically.
    (git-push): Not needed. package target ensures we are on the latest
    sources.
    (git-verify-no-update): Verify no files have changed compared to master.
    (git-tag-release): Tag the relase in git and push to origin.
    (package): Use git-verify-no-update and skip autoloads, it happens later.
    (release): Use git-tag-release as the last step after uploading with
    ftp.
    Add comment about automatic ELPA releases.

2022-04-18  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el (kotl-mode--add-cell-set-fill-attribute): Verify
    add-cell do not set no-fill flag.

2022-04-18  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:fill-cell): Fix issue where 'end' was set
    to a non-marker type and then attempt to remove marker errored.  Move
    marker deletion to before end type is changed.

* kotl/kview.el (kcell-view:create): Remove (or no-fill (equal contents ""))
    and always add 2 newlines after cell.

2022-04-17  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:split-cell): Copy non-read-only attributes from
    current cell's plist into new cell.

* kotl/kview.el (kview:add-cell, kcell-view:create): Add new optional sibling-p
    parameter; use this and kotl-mode:refill-flag in addition to no-fill parameter
    to determine whether to fill cell contents on creation.  Only the no-fill
    parameter sets the same named attribute on the cell.
* kotl/kotl-mode.el (kotl-mode:add-cell): Send sibling-p value to kview:add-cell.

* kotl/kotl-mode.el (kotl-mode:add-cell): Fix to not use sibling-p or
    `kotl-mode:refill-flag' to determine no-fill attribute of new cell.

* hui.el (hui:delimited-selectable-thing-and-bounds): Fix arg order of setcar call.

* kotl/kotl-mode.el (kotl-mode:kill-region): Fix interactive sexp to not error when
    mark is not set.
                    (kotl-mode:kill-or-copy-region): Add and use in above command.

  hui.el (hui-kill-ring-save, hui-copy-to-register): Fix to signal an error if called
    when mark is not set.

* kotl/kotl-mode.el (kotl-mode:yank, kotl-mode:yank-pop): Fix to use insert-for-yank
    and thereby match doc about honoring yank handling variables.

* kotl/klink.el (klink:set-yank-handler): Fix by setting yank-handler to a list.

* man/hyperbole.texi (Default Hyperbole Bindings): Add {M-w} and {C-x r s} doc for
    copying delimited things.

* kotl/kotl-mode.el (kotl-mode:maybe-shrink-region-p): Prevent error when no mark set.

* hypb.el (hypb:selectable-thing, hypb:selectable-thing-and-bounds): Change prefix to
    hui:delimited- and move to hui.el.

* hyperbole.el (hkey-initialize):
  hypb.el (hypb:copy-to-register): Rename to 'hui-copy-to-register' and move to hui.el.
  hyperbole.el (hkey-initialize):
  hypb.el (hypb:kill-ring-save): Rename to 'hui-kill-ring-save' and move to hui.el.

* hyperbole.el (hyperbole--mark-even-if-inactive): Add to store value of
    `mark-even-if-inactive' prior to enabling `hyperbole-mode'.")
    (hyperbole--enable-mode, hyperbole--disable-mode): Use above new variable.

* hypb.el (hypb:copy-to-register):
  kotl/kotl-mode.el (kotl-mode:kill-region): Add that 'transient-mark-mode' must be
    non-nil to copy thing at point when no region is active.

* hsys-www.el (www-url-expand-file-name): Fix to expand non-remote, non-url paths.

* hpath.el (hpath:call): Remove unused 'orig-path' local binding.

* hibtypes.el (action:help): Fix interactive call to use any hbut at point.

* hib-kbd.el (kbd-key:is-p): Remove unused open/close-brace-syntax local vars.

* hbdata.el (hbdata:build): Fix 'actype' ref by changing let to let*.

* kotl/kview.el (kview:map-siblings): Add let of 'cell-indent' so is local.

* kotl/kfill.el (kfill:forward-line): Correct doc that this always returns 0 and remove
    unused local var 'opoint'.

* hinit.el (hui-menu-remove): Remove set of 'keymap' to 'global-map' when 'keymap' is null;
    just use one or the other for the menubar binding.  Return value is never used, so
    ignore it.

* hypb.el (hypb:copy-to-register): Remove improper let definition of 'start' and 'end'
    since are given as function parameters.
          (hypb:selectable-thing-and-bounds): Fix to properly return a list.

* hui-window.el (hmouse-modeline-resize-window): Remove all unused local variables.

* HY-NEWS (Klink Copy): Updated with latest key bindings.

2022-04-16  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:kill-region): Handle when called under alias
    kotl-mode:completion-kill-region.

* kotl/kview.el (kcell-view:remove-attr): Replace invalid 'kcell' with 'mod-cell'.

* man/hyperbole.texi (Web Search Engines): Document option to use an Emacs command.
                     (Klinks): Rename from Links.
		     (Klinks): Reorder descriptions and add doc for {M-w}, {C-y},
    {C-x r s} and {C-x r i} use with klinks and kcell references.

* hui-mini.el (hui:menus): Update formatting to improve readability.

2022-04-15  Mats Lidell  <matsl@gnu.org>

* test/MANIFEST: Add hui-select.el

* test/hui-select-tests.el (hui-select--thing)
    (hui-select--thing-interactive-prints-type-of-match)
    (hui-select--at-delimited-thing-p) (hui-select--delimited-thing)
    (hui-select--delimited-thing-ending-in-newline): Add hui-select tests.

2022-04-12  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:selectable-thing): Add and use in hypb:kill-ring-save, kotl-mode:kill-region,
          (hypb:selectable-thing-and-bounds): Add and use in hypb:copy-to-register.
  hui-select.el (hui-select-get-region): Rename to hui-select-get-thing.

2022-04-11  Bob Weiner  <rsw@gnu.org>

* kotl/kimport.el (kimport:insert-register): Make autoload since could be invoked from {C-x r i}
    when in a Koutline.
                  (kimport:insert-file): Make autoload since could be invoked from {C-x i} when
    in a Koutline.

2022-04-10  Bob Weiner  <rsw@gnu.org>

* kotl/klink.el (klink:absolute): Add.
                (klink:parse): Allow for '<@' at the start of a klink reference.

* hypb.el (hypb:copy-to-register): Add.
  hyperbole.el (hkey-initialize): Bind {C-x r s} to hypb:copy-to-register in hyperbole-mode.

* hypb.el (hypb:kill-ring-save):
  hyperbole.el (hkey-initialize): Override the {M-w} command from "simple.el" when hyperbole-mode is
    active to allow copying selectable thing at point if no region is active.

* kotl/kotl-mode.el (kotl-mode:kill-region): When called interactively with no region active, copy
    selectable thing at point or reference to kcell at point.  Also show copied region to the user
    if called interactively with copy-p flag.

* kotl/kview.el (require 'klink): Add.
                (kcell-view:absolute-reference, kcell-view:reference): Return nil if not in kotl-mode.

* kotl/kotl-mode.el (kotl-mode:copy-kcell-reference-to-register): Add to save a Koutline cell reference
    at point to a register.
                    (kotl-mode:copy-absolute-kcell-link-to-kill-ring): Rename from
    kotl-mode:copy-absolute-klink-to-kill-ring.
                    (kotl-mode:copy-relative-kcell-link-to-kill-ring): Rename from
    kotl-mode:copy-relative-klink-to-kill-ring.
                    (kotl-mode:copy-absolute-kcell-link-to-register): Rename from
    kotl-mode:copy-absolute-klink-to-register.
                    (kotl-mode:copy-relative-kcell-link-to-register): Rename from
    kotl-mode:copy-relative-klink-to-register.

* kotl/klink.el (klink:at-p): Make an autoload since klinks may be tested in non-Koutline buffers.
    Also add yank-handler text property used when yanking klink into a buffer.
                (klink:set-yank-handler):
                (klink:yank-handler): Add to handle yanks of klinks and adjust based on yank location.
  kotl/kview.el (kcell-view:absolute-reference, kcell-view:reference): Use klink:set-yank-handler.

* hsettings.el (hyperbole-web-search-alist): Update value-type property to allow for function symbols,
    e.g. webjump item.

2022-04-09  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el (hyrolo-add-items-at-multiple-levels): Add check
    and remove test temp file.

2022-04-03  Bob Weiner  <rsw@gnu.org>

* test/kotl-mode-tests.el (setup-kotl-mode-example-test): Fix so handles multiple buffers with same
    buffer name prefix.

* kotl/kproperty.el (kproperty:remove-properties): Add and use in kcell-view:remove-attr.

* test/kotl-mode-tests.el (kotl-mode-copy-kotl-file-updates-root-id-attributes): Change from 'file attr
    test to 'label-type.

* kotl/kview.el (kcell-view:idstamp-integer): Add to return idstamp as int instead of string.

* kotl/kcell.el (kcell-data:create): Add idstamp as 2nd parameter.
  kotl/kfile.el (kfile:update): Call kcell-data:create with 2nd parameter.

* kotl/kotl-mode.el (kotl-mode:exchange-cells): Give idstamp as second arg to kcell-view:set-cell calls.
                    (kotl-mode:cell-help, kotl-mode:print-attributes, kotl-mode:get-cell-attribute):
    Handle separate idstamp attribute.
  kotl/kview.el (kcell-view:set-cell, kotl-mode:copy-after, kotl-mode:copy-before): Set kcell and
    idstamp as separate text properties.

* kotl/kview.el (kcell-view:idstamp, kcell-view:get-attr, kcell-view:set-attr,
    kcell-view:remove-attr, kcell-view:create): Always move to point with cell's text properties
    and handle text property idstamp.
                (kcell-view:create): Pass idstamp as a parameter.
                (kview:add-cell):
  kotl/kcell.el (kcell:create):
  kotl/kfile.el (kfile:insert-attributes-v2, kfile:insert-attributes-v3): Store idstamp as a
    koutline text property outside the kcell, for efficiency.
* kotl/kcell.el (kcell:set-idstamp): Remove, use kcell-view:set-attr instead.
                (kcell:idstamp): Remove, use kcell-view:idstamp instead.
                (kcell-data:to-kcell-v2, kcell-data:to-kcell-v3): Remove use of view-based idstamp.

* kotl/kcell.el (kcell-data:create): idstamp is no longer stored in a kcell's property list, so
    don't try to delete it from the plist when creating the persistent representation keyed
    by the numeric value of the idstamp.

* kotl/kfile.el (kfile:insert-attributes-v2, kfile:insert-attributes-v3): In Koutline buffer,
    store kcell properties as a single 'kcell text property, as previously in Hyperbole 7.1.3.
    This allows other text properties to be stored at the same position without being written
    out as kcell properties.
  kotl/kcell.el (kcell:create): Stop writing 'kcell attr out to save space.
                (kcell:is-p): Test for 'creator attr rather than 'kcell since no longer
    writing that attr.
  kotl/kview.el (kcell-view:cell): Update to use 'kcell text property.

* kotl/kview.el (kview:create):
  kotl/kfile.el (kfile:write, file:update): Remove read/write of Koutline 'file attribute;
    just use buffer-file-name.

2022-04-02  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el (kotl-mode-move-tree-forward)
    (kotl-mode-move-tree-backward): Add tests for tree movement.

2022-03-26  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-add): Fix both top-level and multi-level insertion.
            (hyrolo-entry-name-regexp): Add.
  test/hyrolo-tests.el (hyrolo-add-items-at-multiple-levels): Add from Mats.

2022-03-26  Mats Lidell  <matsl@gnu.org>

* test/hib-kbd-tests.el (kbd-key-hy-demo-factorial-test): Preload DEMO
    file to avoid race with *ert* display.

2022-03-20  Bob Weiner  <rsw@gnu.org>

* HY-NEWS (New Tree Promotion/Demotion Keys):
  man/hyperbole.texi (Promoting and Demoting):
  kotl/EXAMPLE.kotl: Fix 3d2 promotion/demotion tables.

* hib-kbd.el (kbd-key:modified-key-regexp): Allow for square brackets around modified keys,
    like [M-down].

* kotl/kotl-mode.el (kotl-mode:move-tree-backward, kotl-mode:move-tree-forward): Add to replicate
    Org mode M-up and M-down arrow tree movement and rebind these keys.
  kotl/EXAMPLE.kotl: Doc new [M-down] and [M-up] key bindings.
  man/hyperbole.texi (Relocating and Copying):
  HY-NEWS (New Tree Movement Commands): Document these new commands.

* hyrolo.el (hyrolo-fgrep): Fix to match logical expressions across an entire tree of entries
    when no matches within individual subentries.

2022-03-20  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el (hyrolo-sort-records-at-different-levels): Add test
    for rolo sort.

* test/hmouse-drv-tests.el (hbut-key-press-on-hyphen-in-elisp-symbol): Add
    test case.

2022-03-13  Mats Lidell  <matsl@gnu.org>

* man/hyperbole.texi: Fix spelling.

2022-03-13  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-sort): Simplify and fix multi-level entry sorting.

2022-03-12  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Implicit Button Types): In org-mode description, use @smallexample instead
    of @group which was showing the markup in the Info file.

2022-03-09  Mats Lidell  <matsl@gnu.org>

* Makefile ($(pkg_dir)/hyperbole-$(HYPB_VERSION).tar): Package files under
    source control, depend on version.
    ($(pkg_dir)/hyperbole-$(HYPB_VERSION).tar.sig): Remove sig-file just
    before generation.
    (git-pull): Ensure repository only contains master sources.

2022-03-06  Mats Lidell  <matsl@gnu.org>

* hmail.el (hmail:region): Insert kotl cell at the beginning of the mail
    body. bug#44487 Suggestion by Jean Louis. Thanks Jean.

2022-03-05  Mats Lidell  <matsl@gnu.org>

* hypb-maintenance.el: Remove modified source buffers.

2022-03-01  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el (kotl-mode-hide-cell): Add test case.

2022-02-27  Mats Lidell  <matsl@gnu.org>

* Makefile (web-site): Add target for preparing web site sources

2022-02-27  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-map-level-1): Remove unused parameters and rename to 'hyrolo-map-single-subtree'.

* hpath.el (hpath:at-p): If find a PATH variable value, call hpath:is-p on the path
    selected (normalizes it) before returning.  Ensures parameters 'type' and 'non-exist'
    are respected in this case.  Also, test if individual path exists without requiring
    three or more separated directories prior to doing this test.
  test/hmouse-drv-tests.el (hbut-pathname-path-variable-with-two-colons-is-one-file-test):
    Change to 'hbut-pathname-path-variable-with-two-colons-a-path-test'
    and make 'should' instead of 'should not'.
  test/hpath-tests.el (hpath:path-at-point-in-path-variable-test): Fix to call
    'hpath:at-p' with non-exist flag true.

* Makefile (README.md.html): Switch to use 'md2html' instead of 'github-markdown' due
    to problems with local link ids not being generated properly.  Also, this simplifies
    from an npm library with many dependencies to a quick Python program.  Add GNU sed
    calls to fix case-sensitivity and URL encode char problems in anchor IDs.

* FAST-DEMO:
  hycontrol.el (hycontrol-windows-grid-marked-items): Add.
               (hycontrol-make-windows-grid): Use above function so can automatically
    size grid when items are marked within a listing buffer.

2022-02-26  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-windows-grid-by-buffer-list):
  (hycontrol-windows-grid-by-file-list):
  (hycontrol-windows-grid-minimum-size): Add this function and use in above functions.

* man/hyperbole.texi (Menus):
  hui-menu.el (hui-menu-web-search):
  hui-mini.el (hui:menu-web-search):
  hsettings.el (hyperbole-web-search-alist): Add support for Emacs "webjump.el" under
    Jump menu item.  Jumps to URLs rather than searching.

2022-02-20  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:rgrep): Exclude .git and CVS directories.

* hui-menu.el (infodock-hyperbole-menu):
  hui-mini.el (hui:menus): Remove button Modify menu items.  Use Edit.
  hbut.el (ebut:edit): Rename from 'ebut:modify'.
  hui.el (hui:ebut-edit-region): Rename this function of no arguments from 'hui:ebut-edit'.
         (hui:ebut-edit, hui:gbut-edit, hui:ibut-edit):
  In Hyperbole code, change all '-modify' functions to '-edit'.

* man/hyperbole.texi (Editing): Rename from Modification.
                     (Editing Outlines): Rename from Editing.
		     (Viewing Outlines): Rename from Viewing.

* hhist.el (hhist:add): Trigger error if elt is not a frame config.

* man/hyperbole.texi (Default Hyperbole Bindings): Document here
    {C-h h X} to exit from/disable Hyperbole mode.

* hyperbole.el: Remove long commented-out autoloads; generated
    automatically where needed now.

* hypb.el (hypb:cmd-key-string): Rename to 'hypb:cmd-key-series'
    since puts braces around the return value and update doc.
          (hypb:cmd-key-vector): Add to commpare to 'this-single-command-keys'.

* hui-select.el (hui-select-goto-matching-delimiter, hui-select-thing):
  hycontrol.el (hycontrol-windows-grid): Remove hard-coding of
    hyperbole-mode-map binding.  Defer to org-mode and outline-minor-mode
    only when current command key matches this binding.

2022-02-19  Mats Lidell  <matsl@gnu.org>

* Makefile (test-all-output): Add target for interactive tests with
    summary output.

2022-02-18  Mats Lidell  <matsl@gnu.org>

* test/kcell-tests.el (kcell-tests--ref-to-id): Add test for
    kcell:ref-to-id.

2022-02-13  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (elisp-compiler-msg): Add Action Key support for Elisp
    symbols in ERT output lines like:
       passed   39/219  gbut-program-calls-ebut-program (0.004310 sec)

* kotl/kotl-mode.el (kotl-mode-map): Add more tab related bindings.

2022-02-13  Mats Lidell  <matsl@gnu.org>

* Silence warnings about unused lexical arguments by prefixing names with
    underscores.

2022-02-12  Bob Weiner  <rsw@gnu.org>

* kotl/klink.el (klink:act): Add save-excursion, so point always ends
    at the right place in displayed buffer after the relative id
    is updated when out-of-date.

* kotl/kcell.el (kcell:ref-to-id): Fix viewspec parsing by adding
   the optional 'kviewspec-flag' parameter.
  kotl/kview.el (kcell-view:cell-from-ref): Test that ref is an int.
  kotl/kotl-mode.el (kotl-mode:goto-cell):
  kotl/klink.el (link-to-kotl): Send true kviewspec-flag to
    kcell:ref-to-id calls.

* hib-social.el (git-commit-reference):
  man/hyperbole.texi (git-commit-reference): Update doc to include
    commands `hypb:fgrep-git-log' and `hypb:grep-git-log'.

* hypb-maintenance.el (hypb:web-repo-location): Update to RSW's Hyperbole
    local website path.

* hui-menu.el:
  FAST-DEMO: Add this shorter demo/intro with a reference to the older DEMO.
  hui-mini.el: Add 'hyperbole-demo' function to view FAST-DEMO or with
    a prefix arg, DEMO.

* hypb.el (hypb:display-file-with-logo): Expand non-absolute paths within
    hyperb:dir to simplify calls to this function.
  test/demo-tests.el
  test/hibtypes-tests.el
  test/hmouse-drv-tests.el
  hui-menu.el
  hui-mini: Simplify calls to above function in all these files.

* test/hui-tests.el (hui-gbut-modify-link-to-file-button): Fix order of
    file save

* hactypes.el (hactypes:link-to-file-interactively) Make this a
    standalone function to simplify interactive call in 'link-to-file'
    and simplify debugging.

2022-02-08  Mats Lidell  <matsl@gnu.org>

* hbut.el (ibut:at-p): Use copy-sequence, remove dependency on
    cl-lib. Thanks Stefan Monnier.

2022-02-06  Bob Weiner  <rsw@gnu.org>

* test/hui-tests.el (hui-gbut-modify-link-to-file-button): Some
    improvements but not yet fixed.

* hui.el (hui:ebut-buf): Don't filter any visible buffers out
    since buttons can be in buffers without attached files now.
         (hui:ignore-buffers-regexp): When prompting for a buffer
    name, ignore any buffers whose names match to this.")

* hypb.el (hypb:assert-same-start-and-end-buffer): Add to ensure
    current buffer name doesn't change in some Hyperbole calls.
  hui.el (hui:ebut-create, hui:ebut-modify, hui:gbut-create,
          hui:gbut-modify, hui:ibut-modify, hui:link-create):
    Use new above macro.

* hpath.el (hpath:absolute-to, hpath:call): Add checks to ensure
    path is a string.
           (hpath:at-p): Call to 'hpath:mswindows-to-posix' may
    have abbreviated a path, so expand it back here for improved
    matching to path found in the buffer previously.

* hmouse-drv.el (hkey-execute): Ensure Emacs debug variables are
    enabled when 'hkey-debug' is enabled.

* hsmail.el (mail-yank-original, message--yank-original-internal,
             mail-send-hook): Finish updating these and ready for testing.

* HY-NEWS:
  man/hyperbole.texi (Inserting and Importing): Add kimport:file
    minibuffer menu binding.

* test/*-tests.el: Simplify by requiring "hy-test-helpers" rather than
    loading it with a complex call in every module.

* test/hui-tests.el (hui-gbut-modify-link-to-file-button): Add this
    debugged global button creation and modification test.

2022-02-05  Mats Lidell  <matsl@gnu.org>

* hargs.el (hargs:find-tag-default): Remove own implementation for
    'find-tag-default' and 'find-tag--default' and rely on implementation in
    Emacs.

2022-02-05  Bob Weiner  <rsw@gnu.org>

* HY-NEWS (Minibuffer Menu Changes): Mention new Kotl/Format menu.
  man/hyperbole.texi (Inserting and Importing): Add {C-h h k f f}
    kimport:file minibuffer menu binding and relabel its menu items.

* hypb.el (hypb:straight-package-plist): Add and use in tests.
          (hypb:installation-type): Support all install types.
  test/hypb-tests.el (hypb:installation-type-test): Support all install types.

* hmail.el (hmail:compose): Clarify subject line use even more.
  hypb.el (hypb:configuration): Removed unneeded InfoDock clause and use
    emacs-version variable rather than (emacs-version) function.
          (hypb--installation-type): Rename to 'hypb:installation-type' and
    expand to handle all installation types.

* kotl/kexport.el (kexport:buffer): Rename to 'kexport:koutline'.
  test/kexport-tests.el (kexport:buffer-calls-kexport:html): Rename to
    'kexport:koutline-calls-kexport:html'.

* hui-mini.el (hui:menus): Kotl/Format - Add new submenu for import/export
    of Koutlines to match one from the Koutline pulldown menu.
  man/hyperbole.texi (Exporting):
                     (Menu Commands): Document new menu and add 'kexport:koutline'
    command documentation.

* kotl/kimport.el (kimport:suffix-alist): Add importation of Org outlines
    as Koutlines.

* kotl/kmenu.el (kotl-menu-common-postamble): In pulldown Koutliner menu,
    change 'Export-to-HTML' to 'Export-Other-Koutline-to-HTML'.  Add
    'Display-This-Koutline-in-Web-Browser' and 'Export-This-Koutline-to-HTML'.

* hpath.el (hpath:outline-section-pattern): Remove leading spaces
 	   (hpath:to-markup-anchor): Search for leading spaces in above regexp
    only after not finding a match without leading spaces.  This prevents
    matching to Table of Contents entries with the same section name but indented.

* hui.el (hui:gbut-create, hui:buf-writable-err): Fix sporadic bug where err
    function did not trigger an error but changed the (current-buffer), thereby
    cause the 'hui:gbut-create' function to improperly place a global button
    in the wrong buffer.
         (hui:error): Remove, has been obsolete for a long time.  Use hypb:error.
	 (hui:ebut-delimit): Remove, has been obsolete for a long time.
    Use ebut:delimit instead.
  hargs.el (hargs:action-get): Add a save-excursion to fix above bug as this
    was temporarily changing the current-buffer.

* hbut.el (gbut:file): Change from a variable to a function so if user resets
    any of its components, the current value is always used.  Fixes bug where
    global buttons were written to the wrong file.

* hsmail.el (mail-yank-original): Fix indentation of this overloaded function.
            (message--yank-original-internal): Add overloading of this function.

2022-02-04  Mats Lidell  <matsl@gnu.org>

* test/hargs-tests.el (hargs-get-verify-extension-characters)
    (hargs-get-verify-extension-characters-K+): Test cases for extension
    characters.

* hargs.el (hargs:make-iform-vector): Converted to macro.
    (hargs:iform-vector): Use defconst.
    (hargs:iform-extensions-vector): Use defconst.
    Patch from Stefan Monnier. Thank you Stefan.

2022-02-03  Mats Lidell  <matsl@gnu.org>

* test/hy-test-helpers.el (hy-test-helpers-verify-hattr-at-p): Add helper
    function and use it.

* hypb.el (hypb--installation-type): Return 10 digit git hash.

2022-02-02  Mats Lidell  <matsl@gnu.org>

* hargs.el (hargs:reading-type): Renaming var.

2022-01-31  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:outline-section-pattern): Change to allow for indented
    asterisks at the beginning of a line and to match when text is followed
    by a punctuation character, even if not at the end of the line, e.g.
    section-name: description.  Also, allow for human-readable versions of
    bound key sequences as section anchors and support anchors in fundamental
    mode.  New features used in "DEMO".

* hui-select.el (hui-select-thing): Hyperbole binds this to {C-c RET} which
    conflicts with an Org mode binding, so if in Org mode, use its binding
    when this command is called interactively from that key.
  hycontrol.el (hycontrol-windows-grid): Hyperbole binds this to {C-c @} which
    conflicts with bindings in Org mode, Outline mode and Outline minor mode.
    Modify this command to use those bindings when called interactively from
    that key.
  hui-select.el (hui-select-goto-matching-delimiter): Hyperbole binds this to
    {C-c .} which conflicts with an Org mode binding, so if in Org mode, use
    its binding when this command is called interactively from that key.

2022-01-30  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:at-p): Fix start and end delimiters to hargs:delimited so match
    to PATH variable values when not surrounded by double quotes.
  hargs.el (hargs:delimited): Fix not matching start and end patterns at the
    beginning and end of lines.  Also, simplify when start end end delims differ,
    eliminating the need to check whether point is between strings rather than
    inside one.
           (hpath:delimited-possible-path): Fix hargs:delimited start delimiter
    to use + instead of * to match to unquoted pathnames.  Also, allow {} in paths
    so can match to var names in path but not if braces are the first and last
    chars of path.

* hpath.el (hpath:prepend-shell-directory): Rename from 'hpath:prepend-ls-directory'.
    Add support for 'cd' and 'pushd' commands.
  hibtypes.el (ripgrep-msg, grep-msg): When in shell mode, expand path with above
   function.
              (hpath:substitute-dir): Fix to make 'locate-file' call handle dirs,
   so final expansion can be a directory, e.g. on Macs App bundles are directories.

* hsmail.el: Switch from use of sendmail.el to message.el.
    (message-send-hook): Remove use of advice-add which caused
    a recursive loop.  Add smail:widen to message-send-hook instead.

* hact.el (actype:act): Allow for builtin subr objects like 'cons';
    This fixes Action Buttons that start with <progn ...>, for example.

2022-01-29  Bob Weiner  <rsw@gnu.org>

* hbut.el (hbut:key-list): Fix doc.

* test/demo-tests.el (demo-implicit-button-action-button-sexp-test):
                     (demo-implicit-button-action-button-boolean-function-call-test):
    Add to test Action Button sexp and boolean functions.

* hactypes.el (display-boolean): Change to add 'bool-expr' to output msg.

* hibtypes.el (action): Fix bug that when intern-soft returns nil, then check
    if returned symbol is boundp, neglected to check that symbol was not nil
    and therefore (boundp nil) was returning t, causing the logic to misfire.
    Also, add 'hact' calls at the end and double quote variable args or will
    trigger an error.

* hact.el (actype:eval): Simplify action with args call.

* hycontrol.el (hycontrol-invert-prefix-arg): Add to invert prefix arg or change
    0 to -1.
               (hycontrol-reset-prefix-arg): Turn into a named function so can
    test if was 'last-command'.
               (hycontrol-universal-arg-digit): Rewrite to handle negative args.
	       (hycontrol-multiply-universal-arg):
	       (hycontrol-minus-key): Add to have named commands.
  man/hyperbole.texi (HyControl):
  DEMO (Windows Grid): Rewrite section to match latest behavior.
  man/hyperbole.texi (HyControl): Update to include - and C-u key bindings.

* hycontrol.el (hycontrol-window-display-buffer): Rewrite to display a BLANK
    buffer in each window after exhaust the selected list of buffers, rather
    than displaying the same non-blank buffers in multiple windows.  Also,
    no longer use 'hycontrol--invert-display-buffer-predicates' to fill
    extra windows with the inversion of any filters

    Update doc to reflect full behavior of the function.

    Left for reference 'hycontrol-window-display-buffer-with-repeats' with all
    of this pre-V8 behavior.

* test/hypb-tests.el (hypb--installation-type-test): Comment out until decide
    all contexts it should handle and when best to use it.

* man/hyperbole.texi (Glossary): Add Klink and Kcell Ref definitions.
    Update idstamp definition to include 0 root cell.

* kotl/klink.el (link-to-kotl): Fix so does not treat pathname refs as Koutlines
    unless there is a kcell ref within the link.  Also, generalize so when in
    any programming major mode, klinks are recognized within comments only.

2022-01-28  Mats Lidell  <matsl@gnu.org>

* test/hypb-tests.el (hypb--installation-type-test): Add unit test.

2022-01-25  Mats Lidell  <matsl@gnu.org>

* hypb.el (hypb--installation-type, hypb:configuration): Add function to
    provide installation type and version number and use it.

2022-01-25  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:copy-region-to-buffer): Fix interactive args listed in wrong
    order.
* kotl/kotl-mode.el (kotl-mode:copy-region-to-buffer): Replace 'kotl-mode:insert-region'.
		    (kotl-mode:copy-tree-to-buffer): Replace 'kotl-mode:insert-tree'.
                    (kotl-mode:copy-tree-or-region-to-buffer): New binding for {C-c M-c}.

* man/hyperbole.texi (Koutliner Keys):
  kotl/kmenu.el (kotl-menu-common-body):
  kotl/kotl-mode.el (kotl-mode:copy-tree-to-buffer): Replace 'kotl-mode:copy-to-buffer'.

* hpath.el (seq): Add (require 'seq) since seq-find is used herein.

* hbut.el (defib): Add back edebug spec for defib that must have been accidentally
    removed in some merge.

* hibtypes.el (pathname): Add missing 'ibut:label-set' to enable flashing of simple
    Fix that when path was expanded or normalized, pathname button would not flash
    since it did not match the text.  Use 'orig-path' instead, except when point is
    within a PATH-like variable value of colon or semicolon separated directories;
    then use just the individual 'path' selected.

* hactypes.el (link-to-kcell): Fix to process cell-ref only after any non-nil
    file is displayed.

2022-01-23  Bob Weiner  <rsw@gnu.org>

* Makefile (TAGS): Include ert-deftest definitions in TAGS file.
           (TEST_ERT_FILES): Add hy-test-*.el so indexed in TAGS file.

* hbut.el (gbut:label-p): Add to return global button label point is on if nay.
    Use in 'hui:gbut-modify'.

* Makefile (test-all): Add conditionals to always run GUI Emacs if DISPLAY is set.

* hui-menu.el (infodock-hyperbole-menu): Add Implicit-Button/{Edit, Modify}.
  hui-mini.el (hui:menus): Add named Ibut/{Edit, Modify} (do the same thing).
  hui.el (hui:ebut-modify, hui:gbut-modify): Interactively if on a button, still allow
    choice of another button.
         (hui:ibut-modify): Add named ibut modification.
         (hui:ebut-modify, hui:gbut-modify): Add 2nd save-excursion so point does
    not move within the source buffer.
         (hui:gbut-create, hui:gibut-create): Move position of 'set-buffer' call after
    'hui:buf-writable-err' call so they do not interfere with each other, causing buttons
    to be written to the wrong buffer.

2022-01-23  Mats Lidell  <matsl@gnu.org>

* test/hui-tests.el (hui-gibut-create-link-to-file)
    (hui-gibut-create-link-to-file-line)
    (hui-gibut-create-link-to-file-line-and-column)
    (hui-gibut-create-info-node): Test cases for global implicit buttons.

* test/hbut-tests.el (gbut-program-eval-elisp)
    (gbut-program-link-to-file, gbut-program-link-to-file-line)
    (gbut-program-link-to-file-line-and-column): Test case for global
    button programatically created button.

2022-01-22  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-windows-grid-by-file-pattern): Add this command that creates
    a windows grid from a glob file pattern.  Bound to {C--1 C-c @}.
               (hycontrol-windows-grid-by-buffer-list):  Add this function which takes
    a list of buffers and displays them in a windows grid.
               (hycontrol-windows-grid-by-file-list): Add this function which takes
    a list of files and displays them in a windows grid.
  man/hyperbole.texi (Default Hyperbole Bindings, HyControl):
  HY-NEWS (HYCONTROL): Document new above command.

* kotl/kotl-mode.el (kotl-mode:set-or-remove-cell-attribute): Change to support
    0 root cell attribute set or remove via prefix arg.
  kotl/EXAMPLE.kotl: Update 'Cell Attributes' description with the above change.
  HY-NEWS: Add Koutlines 0 cell attribute handling description.
  man/hyperbole.texi (Cell Attributes): Document above change.

2022-01-22  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el
    (kotl-mode-copy-kotl-file-updates-root-id-attributes): Verify that
    root cell attribute for file name is updated.

2022-01-21  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:cell-attributes): Assume parent has set stdout
    buffer; stop clearing this buffer before printing to it.
                    (kotl-mode:cell-help): Fix to handle 0 top-level cell
    properly.

2022-01-20  Bob Weiner  <rsw@gnu.org>

* kotl/kview.el (kview:create): Ensure top-level 0 cell file attribute is always updated
    to match current file location.

2022-01-19  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:set-cell-attribute, kotl-mode:remove-cell-attribute):
    Update interactive parts to utilize the hidden top-level 0 cell when given a
    zero-valued prefix argument.

* hactypes.el (link-to-texinfo-node, link-to-Info-index-item, link-to-Info-node):
    Remove any runs of tabs or newlines that might be in name and replace each
    with a single space.

* kotl/kcell.el (kcell:ref-to-id):
  kotl/kview.el (kcell-view:cell-from-ref): Support lookup of top-cell with
    idstamp = 0.
  kotl/kcell.el (kcell:create): Prevent multiple adds of kcell and idstamp
   attributes.
  kotl/kfile.el (kfile:read-v2, kfile:read-v4-or-v3):
  kotl/kview.el (kview:create): Add 3rd optional parameter, top-cell-attributes,
    so can restore complete set of top-cell attributes when reading.
  kotl/kcell.el (kcell:create-top): Change to take entire plist as arg rather
    than individual attributes.
  kotl/kotl-mode.el (kotl-mode:get-cell-attribute, kotl-mode:remove-cell-attribute,
                     kotl-mode:set-cell-attribute): Add optional prefix
    arg of TOP-CELL-FLAG which if non-nil means edit the top cell's attributes.

* test/kexport-tests.el (kexport:html-sets-title-and-header):
  kotl/kexport.el (kexport:html): Update so title and header come from either
    top-level 0 cell 'title attribute or the kotl filename without any .kotl
    suffix.

2022-01-18  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:delete-char): Fix to handle Org table use outside
    koutlines.

* hmouse-tag.el (smart-tags-display): Fix change in xref format by using
    this test: (eq (type-of find-tag-result) 'xref-item)

2022-01-17  Bob Weiner  <rsw@gnu.org>

* hmouse-tag.el (smart-lisp-htype-tag): Add to transform ibtype and actype tags
    into bound emacs symbols for lookup.
                (smart-lisp-at-tag-p): Rewrite to use smart-lisp-htyp-tag.
                (smart-lisp-at-non-htype-tag-p): Use when don't want to resolve
    Hyperbole htypes.

* man/hyperbole.texi (Promoting and Demoting): Add this section separated from
    Relocating and Copying.

* test/MANIFEST         - Add summary of Hyperbole test case files
  install-test/MANIFEST - Add summary of Hyperbole installation test files

* hibtypes.el (texinfo-ref): Add missing quoting in front of symbol in this line:
    (hact 'link-to-elisp-doc `',symbol)
  hactypes.el (link-to-elisp-doc): Fix to properly use hpath:display-where setting
    to display symbol documentation.

2022-01-16  Mats Lidell  <matsl@gnu.org>

* Makefile (help): Extend help section with install tests.

2022-01-16  Bob Weiner  <rsw@gnu.org>

* EXAMPLE.kotl: Add section on Org table-handling support.

* hyrolo.el (hyrolo-mode): Add use of reveal minor mode.
            (hyrolo-hide-subtree): Add and bound to {h} to work with reveal mode.
            (hyrolo-overview):
            (hyrolo-top-level): Ensure reveal-mode does not expand current entry.

* hibtypes.el (Info-node): Tighten match to disallow whitespace in filenames and reduce
    false matches.

* install-test/: Update to error if Emacs version < 27 since then Hyperbole cannot run.
    Also, indicate that Hyperbole has been activated ater running script.
* man/hyperbole.texi (Elpa In-Development Package Installation): Add this section.
    INSTALL (The Latest Development Snapshot): Add this section.
  man/hyperbole.texi (Usage): Addes this chapter and included Invocation section that
    had been in the Setup Appendix.

2022-01-15  Mats Lidell  <matsl@gnu.org>

* Makefile (test-ert, test-all): Turn off auto-save.

* test/hbut-tests.el (gbut-program-link-to-directory): Remove temp file.

2022-01-15  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Testing): Add to describe test usage.

* hpath.el (hpath:absolute-arguments): Check that each arg is non-nil
    before calling hpath:absolute-to.

* kotl/kotl-mode.el (kotl-mode:skip-filling-p) Add to test whether to
    fill around point or not based on context.  Prevents filling in tables.

2022-01-14  Bob Weiner  <rsw@gnu.org>

* hbut.el (ebut:label-p): Add '$' as additional quoting character so
   ${var} does not match when looking for a brace-delimited key series.

* hpath.el (hpath:at-p, hpath:is-p): Add file-exists-p test to immediately
    handle any simple paths with directories, for example.

2022-01-11  Mats Lidell  <matsl@gnu.org>

* test/hmouse-info-tests.el: Don't byte compile since depends on
    with-simulated-input. Patch from Stefan Monnier. Thank you Stefan.

2022-01-11  Bob Weiner  <rsw@gnu.org>

* hbut.el (hbut:act): If point is within the button to be activated, prevent
    ibut:to-text call which recursively calls hbut:act and can cause problems
    with key series buttons at least.  Much more efficient in most cases.

2022-01-09  Mats Lidell  <matsl@gnu.org>

* test/hyperbole-tests.el (hyperbole-keymap-tests)
    (hyperbole-hkey-init-controls-tests)
    (hyperbole-global-key-binding-tests): Keybinding tests.
    (hyperbole-key-bindings): Combine tests in one helper function.

2022-01-09  Bob Weiner  <rsw@gnu.org>

* topwin.py: Update to Python 3.7 or greater.

* Makefile (EL_TAGS): Add test functions to tags file.

* test/hpath-tests.el (hpath:auto-variable-alist-load-path-test):
    Ensure directories without final slashes and .el files without double
    quotes are handled properly.

* hypb.el (hypb:string-count-matches): Rewrite to handle start and end properly.

* hypb.el (hypb:insert-hyperbole-banner): Rename from 'hypb:display-file-with-logo-emacs'
    and remove unused 'file' parameter.

* hypb.el: Use lexical binding and remove any lexical binding errors.

* hypb-ert.el: Rewrite to improve naming and to load tests once only using require.

* test/hmouse-drv-tests.el (hbut-defal): Generalize to prevent failures.

* hmouse-drv.el (hkey-debug): Improve to show action type and its arguments.

2022-01-08  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:return-one-value): Complete rewrite to handle complex
    multi-variable paths like:  "${load-path}/../hyperbole/$DOT/hypb.el")
    where DOT = ".".

2022-01-06  Mats Lidell  <matsl@gnu.org>

* hsmail.el: Cleanup patch from Stefan Monnier. Thank you Stefan.

* test/hpath-tests.el (hpath:auto-variable-alist-load-path-test)
    (hpath:auto-variable-alist-org-folder-test)
    (hpath:auto-variable-alist-pythonpath-test): Add tests for
    hpath:auto-variable-alist patterns.
    (hpath-tests--insert): Add test helper.

2022-01-02  Bob Weiner  <rsw@gnu.org>

* test/hpath-tests.el (hpath:should-exist-paths, hpath:should-not-exist-paths):
    Add these two ert tests to check hpath expansion code.  Each test reports
    any failures from a whole list of test paths.
                      (hpath--should-exist-paths, hpath--should-not-exist-paths,
                       hpath--should-exist-p, hpath--should-not-exist-p):
    Support code for above two tests.

* hypb.el (hypb:string-count-matches): Add to count regexp matches in a string.

* hpath.el (hpath:is-p): Replace most string-match with string-match-p for performance.

* hpath.el (hpath:variable-regexp): Add new constant representing Hyperbole pathname
    variable format and use throughout hpath.el.

2022-01-02  Mats Lidell  <matsl@gnu.org>

* test/hui-tests.el (hui-ebut-create-link-to-info-index-using-completion):
    Link to emacs info index.

* test/hy-test-helpers.el (hy-test-helpers:action-key-should-call-hpath:find)
    (hy-test-helpers:hypb-function-should-call-hpath:find): Do a string
    match and expand-file-name match.

* test/hui-tests.el (hui-ebut-create-link-to-info-index-using-completion):
    New test case.

2022-01-01  Bob Weiner  <rsw@gnu.org>

* test/hpath-tests.el (hpath:prepend-ls-directory-test):
  hpath.el (hpath:prepend-ls-directory): Make work under MS Windows with Git bash or
    cmd.exe.  Fix to prepend dir after an 'ls kotl' type command.

* hpath.el (hpath:expand): Fix to use locate-library only if filename contains ".el".
    This prevents improperly finding non-Elisp files within the load-path, e.g. an
    INSTALL file.

* hpath.el (hpath:substitute-dir): Fix to handle when part of the directory is
    included in 'rest-of-path' in which case only the preceding part of the dir
    should be returned.  Also, account for when "./" or "../" is removed from
    'rest-of-path', thereby lengthening the directory to return.

2021-12-31  Mats Lidell  <matsl@gnu.org>

* Makefile (EL_SRC): Remove EL_SRC, compile all el-files.

* hui-mini.el: Use lexical binding.

2021-12-31  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:gbut-modify): Fix 'src-dir' to be dir of 'gbut:file' not default-directory.

* hargs.el (hargs:defaults): Defined this variable.
  hactypes.el (exec-shell-command, exec-window-command, link-to-file, link-to-ibut):
    Change 'defaults' to 'hargs:defaults' and make that a global variable.

* hyrolo.el (hyrolo-map-level-1): Fix sorting bug by adding outline-hide-subtree when
    on last buffer entry so its contents are kept together during hyrolo-sort.

* test/hibtypes-tests.el: (ibtypes::pathname-dot-slash-in-other-folder-test): Update
    now that invalid paths trigger the pathname ibtype and throw an error when the
    invalid path is resolved with hpath:find.
  test/hy-test-helpers.el (hy-test-helpers:action-key-should-call-hpath:find):
    Add call to hpath:mswindows-to-posix or under WSL, absolute prefix may not match,
    e.g. one path starts with '/mnt/c' and another with '/c'.

* hpath.el (hpath:remote-regexp, hpath:url-hostnames-regexp, hpath:remote-at-p,
            hpath:remote-p, substitute-in-file-name, hpath:is-p):
    Add sftp support.

* hpath.el (hpath:call): Add 3rd arg non-exist to allow for return of non-existent
    pathnames.

* hpath.el (hpath:find): Include full path with prefix modifier and # anchor in error
    messages and handle "#Section" links in buffers without attached files.
           (hpath:display-buffer-other-frame):
           (hpath:display-buffer-alist): Update new-frame function to copy current
    frame parameters and to allow isearch to turn off.
           (hpath:to-markup-anchor): When searching for anchors, treat all caps
    filenames without suffix like outlines, e.g. README, INSTALL.

2021-12-30  Bob Weiner  <rsw@gnu.org>

* hload-path.el: Add "{hyperb:dir}/test" subdir to load-path so can link to its
    files without giving any path.

* hpath.el (hpath:expand-with-variable): Fix to handle Lisp symbol auto-variable-alist
    entries properly.  For example, Elisp file names were not being expanded with
    the load-path variable.  Also, don't expand URLs.
        (hpath:expand): Fix to expand path only when not already absolute and a variable
    matching the path suffix is found.  Any variable added is resolved only if the path
    then points to an existing, readable file.
        (hpath:absolute-to, hpath:call): Call hpath:expand to ensure hpath:auto-variable-alist
    variables are utilized for absolute expansions.
        (hpath:find): Add loose test that hpath:display-path-function successfully displayed link in a buffer.

2021-12-30  Mats Lidell  <matsl@gnu.org>

* hui-menu.el:
* hui-em-but.el:
* hsmail.el:
* hrmail.el:
* hmh.el:
* hgnus.el: Use lexical-binding

* test/hyrolo-tests.el (hyrolo-sort-test): Add hyrolo sort test.

2021-12-29  Mats Lidell  <matsl@gnu.org>

* test/hmouse-info-tests.el (hmouse-info-read-index-with-completion)
                            (hmouse-info-build-completions-no-match)
                            (hmouse-info-build-completions-multiple-matches):
    hmouse-info tests.

2021-12-28  Mats Lidell  <matsl@gnu.org>

* kotl/kotl-mode.el (kotl-mode:exchange-cells): Use cl-copy-list.

* test/kotl-mode-tests.el (kotl-mode-transpose-cell)
(kotl-mode-transpose-cell-with-mark)
(kotl-mode-transpose-cell-past-multiple-cells): Add test for kotl-mode:transpose-cells.

2021-12-26  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:exchange-cells): Signal error if invalid type or value
    is given for a cell ref.  Also, fix setting of idstamps when label type is idstamp.

* hmouse-tag.el (smart-lisp-find-tag): With 'show-doc' arg, if 'tag' is unbound, return
    nil and ignore this as a tag instead of triggering an error.

* hpath.el (hpath:substitute-value): Fix to properly return unchanged 'path' when it
    contains a PATH-type colon-separated list of directories but no matching path is
    found.  Previously the 'substitute-in-file-name' call would improperly expand the
    variable.

* DEMO (Defining New Action Button Types):
  man/hyperbole.texi: (Action Button Link Types):
    Fix to refer to PYTHONLIBPATH instead of PYTHONPATH.

* man/hyperbole.texi: (Smart Keys): Add description of how to activate Hyperbole
    with {C-h h} or change this binding.

* man/hyperbole.texi: (Smart Key Bindings):
    Remove discussion of hyperbole-toggle-bindings.  Toggle hyperbole-mode instead.

* hmouse-info.el (Info-read-index-item-name): Remove local binding of
    Info-complete-menu-buffer to fix completion when linking to Info index items.

* hui-jmenu.el (hui-menu-sort-buffer): Replace 'with-current-buffer' with 'with-temp-buffer'.
               (hui-menu-buffer-mode-name): Fix to replace spaces in mode-names with dashes.

2021-12-19  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-map-level): Fix {C-h h r o} order cmd / sorting just hangs.
    Rewrote to fix sorting and simplify debugging.
    Change 'file-exists-p' to 'file-readable-p' so ensure rolo file is readable
    before processing it.

2021-12-18  Mats Lidell  <matsl@gnu.org>

* install-test/elpa-devel/.emacs: Init file for install tests.

* Makefile: install-elpa-devel target.

2021-12-12  Bob Weiner  <rsw@gnu.org>

* hactypes.el (link-to-texinfo-node): Substitute for variable names in file linked to.

* hui.el (hui:link-possible-types): Require 'texnfo-upd when needed to ensure
    texinfo-copy-node-name is defined before used since it is not autoloaded.

* kotl/kotl-mode.el (kotl-mode:insert-region, kotl-mode:insert-tree): Add these new commands
    so can insert Koutline parts directly into other buffers without having to copy from
    the mail buffer via 'kotl-mode:mail-tree'.

* hargs.el (hargs:at-p): Fix so when reading a buffer arg, if tag at point does not match
    an existing buffer name, then use the current buffer name.
           (hargs:read-buffer-name): Add for use by kotl-mode.

* hyperbole.el (hkey-initialize): Add missing C-c prefix binding for hyperbole-mode-map.

2021-12-11  Mats Lidell  <matsl@gnu.org>

* test/hpath-tests.el (hypb-run-shell-test-command): Test helper for
    running shell commands.
    (hpath:prepend-ls-directory-test): Test for "ls -R" listing.

2021-12-05  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-next-match): Handle case when no prior regexp search.

* hyrolo-logic.el (hyrolo-fgrep-logical): Fix improper passage of 'count-only'
    to 'format'.
                  (hyrolo-map-logic): Pass 'start' and 'end' args to logical
    operators in the 'eval' 2nd arg which is the lexical environment.  Eliminates
    use as dynamic variables.

* hyrolo.el (hyrolo-rename): Unify MS Windows default HyRolo file path
    with Posix OSes to ~/.rolo.otl.

* hargs.el (hargs:actype-get): Change to set 'modifying' to t if non-nil
    for lower-level function call conformance.
           (hargs:iform-read): Change 'modifying' param to 'defaults'.
    If it is t, then current Hyperbole button is being modified,
    get defaults from it; otherwise, use the value as a list of defaults
    when prompting for arguments.  Eliminate use of hargs:defaults
    dynamic variable.

* kotl/kotl-mode.el: Require 'org so can override org-force-self-insert.
    (kotl-mode-map): Add kotl-mode overrides for these orgtbl editing
    commands: org-force-self-insert, orgtbl-ctrl-c-ctrl-c,
    orgtbl-create-or-convert-from-region org-delete-backward-char,
    org-delete-char, and orgtbl-self-insert-command.
    (kotl-mode:clipboard-yank): Change to use newer 'select-enable-clipboard'
    instead of 'gui-select-enable-clipboard'.

* test/demo-tests.el (demo-smart-scrolling-proportional-test): Fails when run
    under an Emacs dumb terminal in batch mode, so only run interactively.

* hibtypes.el (grep-msg, ripgrep-msg): Allow for ${emacs-lisp-var} with : in its name
    within the filename/pathname at the start of the line.

* kotl/kview.el (kcell-view:forward, kcell-view:backward, kcell-view:child,
    kview:map-branch, kview:map-expanded-tree, kview:map-tree):
  kotl/klabel.el (klabel-type:set-alpha, klabel-type:set-legal,
    klabel-type:set-partial-alpha):
  kotl/kotl-mode.el: (kotl-mode:end-of-tree, kotl-mode:next-tree, kotl-mode:tree-end):
    Change indent handling to only be a different indent if different
    by (kview:level-indent KVIEW) since if length of label changes at level
    one, then indent will show as 1 or 2 chars longer.

* Makefile (test-all): When run under Emacs with TERM=dumb, set term
    to vt100 so tests will at least run and show whether all ran
    successfully or not.

* hpath.el (hpath:external-file-suffixes): Add this new customization
    with external file suffixes for the Action Key.  Use in each
    OS-dependent variable.

* test/demo-tests.el (demo-smart-scrolling-proportional-test): Make run
    only when running on a window system since does not work properly
    in batch mode on Macs.

* hpath.el (hpath:native-image-suffixes): Include xbm and xwd formats.
           (hpath:external-open-office-suffixes): Include more suffixes.
           (hpath:external-display-alist-x): Use xdg-open to open file
    types like .ps previously included in this variable.

2021-11-28  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:to-name): Move to the start of the name of a given implicit
    button if one is found.
          (ibut:at-p): Add 'name' attribute to hbut:current if point is on
    the name of an ibut.
          (ibut:next-occurrence, ibut:previous-occurrence): Fix bug that
    did not find unnamed implicit buttons matching lbl-key because name
    delimiters were added to the regexp to match.
          (ibut:at-to-name-p): Add this to move to the start of an ibut name
    when point is within the ibut.

* hui.el (hui:link-possible-types): Fix to properly get lbl-key for link-to
    Hyperbole button types.  This resolves a problem when using drags or ace-window
    {M-o w <window-id>} to create link buttons.

* hui-window.el (hmouse-prior-active-region): Handle when hkey-value's buffer has
    been killed.

* hbut.el (hbut:funcall): Add to call an ibut manipulation function with point
    on the ibut (may be a different src buffer than the original source).
          (ibut:get): Use hbut:funcall which fixes not setting source buffer
    properly, e.g. when executing link-to-gbut or any type of button with
    indirection.
          (ebut:to, ibut:to): Use hbut:funcall.

* hact.el (action:params): Add support for closures.
          (actype:act):
  hbdata.el (hbdata:build): Add actype as first arg to hpath:absolute-arguments.
  hpath.el (hpath:absolute-arguments): Change to make arg absolute only if it has
    a path-like param name.  Reduces false expansions.

* hbmap.el (hbmap:dir-list, hbmap:dir-member, hbmap:dir-operate): Simplify with unless
    and when calls.
    (hbmap:dir-add): Fix via use of backquote to pass dir-name to progn lexically.

* hui-mouse.el (smart-org): Stop handling Hyperbole buttons here and just fall though,
    so hkey-help shows the help for the button rather than for smart-org.

2021-11-27  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:prepend-ls-directory): When in a shell buffer and on a
    filename result of an 'ls *' or recursive 'ls', prepend the subdir to the
    filename and return it, else nil.
           (hpath:is-p): Fix to handle ".", "~" or "/" paths properly and ensure
    directory paths end with a / to prevent other functions from mistakenly appending
    a filename.

2021-11-08  Mats Lidell  <matsl@gnu.org>

* test/kotl-orgtbl-tests.el (kotl-orgtbl-action-key-on-vertical-bar-toggles-orgtbl-mode):
    (kotl-orgtbl-shift-tab-demotes-tree-outside-table): Add tests.

* kotl/kotl-mode.el (kotl-mode): Change binding for orgtbl C-d to use new
    kotl-mode:delete-char command; add binding for orgtbl shift tab to enable
    demotion of trees outside of tables.

2021-11-07  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:mark): Remove and use builtin mark function.

* hui-mini.el (hyperbole-set-key): Rename parameters.

* man/hyperbole.texi (Default Hyperbole Bindings):
  DEMO:
  hyperbole.el (hkey-bindings, hkey-bindings-flag,
    hmouse-toggle-bindings, hkey-bindings, hkey-bindings-flag,
    hkey-previous-bindings, hkey-set-bindings, hkey-bindings-keys,
    hkey-binding-entry): Remove since hyperbole-mode handles all of this now
    and regular key bindings can be used, enabled and disabled.
    (hkey-get-bindings, hkey-global-set-key, hkey-maybe-global-set-key):
        Rewrote to use hyperbole-mode-map.
    (hkey-global-set-key): Replace all usage with hkey-set-key and make obsolete.
      hui-select.el (hui-select-initialize):
    (hkey-maybe-global-set-key): Replace all usage with hkey-maybe-set-key
      and make obsolete.
    (hkey-maybe-set-key): Rewrote to check for prior key bindings only in
      hyperbole-mode-map.

* test/hbut-tests.el (ebut-delete-removes-ebut-and-returns-button-data):
  hui.el (hui:hbut-delete, hui:ebut-delete-op): Fix to match doc and return
    t when successful.  Simplify test function.  Use button at point if
    but-key is not given.  Also set key-src if null.
* hui-mouse.el (hkey-alist): Fix so smart-org call when used as a predicate
    has no side-effects and move actions to proper part of the alist.

* hbut.el (ibut:at-p): Trigger error if any ibtype predicate moves point.
  hmouse-drv.el (hkey-execute): Trigger error if any predicate moves point
    (only actions should).
    (ibut:to): Optimized, reducing expensive ibut:at-p calls.
    (ibut:to-text): Optimized, reducing movement and handling all cases.

* hbut.el (ibut:at-p, ibut:to-text): Fix to leave point at the start of ibut text,
    only skipping past an optional name, if any, not skipping past the text itself.
          (hbut:act): Use with-current-buffer instead of set-buffer to move
    point so current-buffer setting does not leak outside this function.  Also
    reset original point in any active window displaying the original buffer
    to ensure point does not move if the action took place in another buffer.

* hui-window.el (hmouse-x-coord, hmouse-y-coord): Pass 'args' lexically rather
    than dynamically, thereby, fixing action key error of unbound argument

2021-11-05  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el (smart-menu-loads-kotl-example): Add extra no op
    input char to make test case stable.

* hypb.el (hypb:mark-marker): Remove compatibility function, use plain
    mark-marker instead.

* kotl/kotl-mode.el (kotl-mode:transpose-lines, kotl-mode:yank-pop)
    (kotl-mode:exchange-point-and-mark, kotl-mode:transpose-lines-internal):
  hui.el (hui:ebut-create, hui:ebut-edit):
  hsmail.el (mail-yank-original):
  hbut.el (ebut:operate):
  hargs.el (hargs:iforms): Use mark-marker.

2021-11-02  Mats Lidell  <matsl@gnu.org>

* test/kotl-orgtbl-tests.el
    (kotl-orgtbl-enabled-uses-kotl-mode-delete-char-ouside-of-table):
    Add test for C-d binding in orgtbl.

* kotl/kotl-mode.el (kotl-mode): Add orgtbl-mode-map binding for C-d.

2021-10-31  Bob Weiner  <rsw@gnu.org>

* hactypes.el (link-to-ibut): Remove requirement that implicit button linked to
    be in a buffer with a file attached.  Also, trigger error if `key' arg is null.

* hbut.el (ebut:modify): Add save-restriction and removed doc string saying
    caller should use save-excursion since this function handles that.
          (ebut:operate): Add save-restriction around ebut:modify and ebut:create
    calls.

2021-10-31  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el (kotl-mode-previous-cell-from-invalid-position)
    (kotl-mode-backward-cell-from-invalid-position)
    (kotl-mode-backward-cell-from-invalid-pos-leave-point-in-valid-pos):
    Test cases for invalid start position before moving backwards.

* kotl/kotl-mode.el (kotl-mode:previous-cell, kotl-mode:backward-cell):
    Handle case when start pos is invalid.

2021-10-26  Mats Lidell  <matsl@gnu.org>

* hui.el (hui:link-directly): Use use-region-p for active region.

2021-10-24  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (mouse-drag-mode-line): Remove XEmacs 'mouse-drag-frame-move'
    reference.
                (hmouse-save-region): Remove unused optional 'frame' arg.

* hbut.el (ibut:to): Fix to handle ibuts with text-only, no separate name
    by using ibut:at-p instead of ibut:label-p.
          (ibut:to-text): Prevent error when lbl-key-end is not found and
    find double-quoted ibuts with no optional label.
          (ibut:at-p): Fix handling of double-quoted implicit buttons without
    any separate name/label.
          (hbut:at-p): Display button properties when called interactively.
          (ebut:label-p): Fix handling of start pos if delims are double quotes.

* hpath.el (hpath:relative-arguments): Leave strings that match buffer names
    unchanged, e.g. link-to-ibut may have a key-src arg that is a buffer name.

* hbut.el (hbut:key-src-set-buffer):
  hactypes.el (link-to-ibut): Generalize 'key-src' parameter to 'but-src' so
    handles buffers as well as files.

* hbdata.el (hbdata:apply-entry): Added save-restriction in case hbdata
    is stored in a displayable buffer, e.g. *scratch*, which may have a prior
    visible restriction.  Also, added support for such non-mail/news buffers.

* hui.el (hui:link-possible-types): Fix link-to-ibut use to include ibut's
    filename or buffer name.

2021-10-21  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:copy-to-buffer, kotl-mode:mail-tree): Change
    passing of free variable, label-default, to lexically scoped, fixing
    new bug when using kotl-mode:mail-tree.

2021-10-18  Bob Weiner  <rsw@gnu.org>

* kotl/kexport.el (kexport:html): Remove any extra newline added at the end of some
    cells after kexport:html-markup is called.  This fixes a bug where HTMLized
    cells are separated by 2 newlines.

2021-10-17  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:symlink-referent): Fix handling of relative symlinks, adding
    on current directory as prefix.  This fixes a bug with /tmp on Macs which
    is a symbolic link to 'private/tmp' and was not expanded properly.

* HY-NEWS: Re-order 8.0.0 entries to emphasize more important features first.

* hyrolo.el (hyrolo-find-file-function): Add this customizable variable.
            (hyrolo-find-file): Use above variable to edit either the first or with
    prefix arg, any selected hyrolo-file-list file.
  hui-mini.el (hui:menus): Add Rolo/File entry for above command.
  hyrolo-menu.el (infodock-hyrolo-menu): Replace 'Edit-Rolo' with 'Edit-HyRolo-File'.
  HY-NEWS (HYROLO):
  man/hyperbole.texi (HyRolo Menu): Add hyrolo-find-file manual doc.

2021-10-10  Mats Lidell  <matsl@gnu.org>

* test/kexport-tests.el (kexport:html-creates-html-file)
    (kexport:html-sets-title-and-header, kexport:html-contains-each-cell)
    (kexport:html-creates-hierarchy)
    (kexport:display-creates-html-file-and-displays-it)
    (kexport:buffer-calls-kexport:html): Add kexport tests.

2021-09-26  Mats Lidell  <matsl@gnu.org>

* Makefile (bin): Hide docstring warnings.

2021-09-26  Bob Weiner  <rsw@gnu.org>

* hbut.el (ebut:operate): Rewrote to handle label modification properly and thereby
    fixed hui-ebut-modify-link-to-www-url-keeping-all-values-should-not-modify-buffer-or-ebut
    test.

* hmail.el (hmail:hbdata-to-p): Update doc string and generalize to handle button
    data embedded in non-mail buffers, e.g. temp buffers for testing.
  test/hbut-tests.el (hypb:program-create-ebut-in-buffer):
    Above fix resolved bug that hbut:at-p did not recognize a button created
    within a buffer without a file attached, causing this test to fail.
    Also fixed ebut-delete-removes-ebut-and-returns-button-data test.

2021-09-26  Bob Weiner  <rsw@gnu.org>

* kotl/kexport.el (kexport:html): Improve vertical alignment of expand/collapse
    chevrons and kcell text.

* hsettings.el (hyperbole-web-search-browser-function): Use 'function type.

* hui-mini.el (hui:menu-item-keys): Fix bug in catch fallthrough that returned
    the item rather than nil, causing numbers and non-ASCII chars to not work.

2021-09-20  Mats Lidell  <matsl@gnu.org>

* Makefile (bin-warn): Control what warning messages to get when byte
    compiling.

2021-09-18  Mats Lidell  <matsl@gnu.org>

* kotl/kotl-mode.el (kotl-mode:split-cell): Create new plist for split cell.

* test/kotl-mode-tests.el (kotl-mode-split-cell): Add test for split-cell

2021-09-14  Mats Lidell  <matsl@gnu.org>

* hbut.el (defib, defil, defal): Use declare notation for making macros
    possible to debug. Patch from Stefan Monnier. Thank you Stefan.

2021-09-12  Mats Lidell  <matsl@gnu.org>

* Part three of patch from Stefam Monnier. Thank you Stefan.
  Incluces updates:
  - Use lexical scoping
  - Update copyright notice
  - Use #'-syntax for functions

2021-09-05  Bob Weiner  <rsw@gnu.org>

* kotl/kexport.el (kexport:html): Fix export-from parameter checks to
    allow only Koutline buffers and files.  Stop centering title since
    often places it too far right.

2021-09-05  Mats Lidell  <matsl@gnu.org>

* test/hyrolo-tests.el (hyrolo-demo-show-overview)
    (hyrolo-demo-move-to-beginning-and-end-of-file)
    (hyrolo-demo-move-between-entries-on-same-level)
    (hyrolo-demo-no-following-same-level-heading): Add tests for rolo keys.
    (hyrolo-demo-toggle-visibility): Update to test key 's'.

2021-08-19  Mats Lidell  <matsl@gnu.org>

* test/hbut-tests.el (hbut-tests:should-match-tmp-folder): Add check for
    tmp folder.

2021-07-20  Mats Lidell  <matsl@gnu.org>

* hpath.el: Part two of patch from Stefan Monnier. Thank you Stefan. Use
    lexical scope.
    (hpath:substitute-value): Use match-beginning and match-end.

* test/hpath-tests.el (hpath:subsitute-value-test): Add tests for
    hpath:substitute-value.

2021-07-19  Mats Lidell  <matsl@gnu.org>

* test/hmouse-drv-tests.el (hbut-etags-test): Rename test case due to name
    clash.

* Part one of patch from Stefan Monnier. Thank you Stefan.
  The part applied contains updates to some file regarding:
  - Use lexical scoping
  - Update copyright notice
  - Other small non functional changes

2021-07-18  Bob Weiner  <rsw@gnu.org>

* hbut.el (ebut:program): Use 'actype:action' to generalize actype handling.

2021-07-17  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-either): Made prefix arg optional so can call programmatically
    without an arg just by name.

2021-07-11  Mats Lidell  <matsl@gnu.org>

* test/hbut-tests.el (gbut-program-calls-ebut-program)
    (gbut-program-link-to-directory): Add gbut tests.

2021-07-04  Mats Lidell  <matsl@gnu.org>

* test/hbut-tests.el (ebut-program-link-to-directory)
    (ebut-program-link-to-directory-2, ebut-program-shell-cmd): Use
    actypes prefix after ebut:program change.

* test/hbut-tests.el (hypb:program-create-ebut-in-buffer)
    (hypb:program-create-link-to-file-line-and-column-but-in-file): Add
    new test cases for ebut:program.

* test/hui-tests.el (hui-ebut-create-link-to-www-url)
    (hui-ebut-modify-link-to-www-url-keeping-all-values-should-not-modify-buffer-or-ebut):
    Add hui:ebut-create and hui:ebut-modify tests.

2021-07-04  Bob Weiner  <rsw@gnu.org>

* hbut.el (ebut:program): Change to a function from a macro so 'args' are evaluated.

2021-06-19  Mats Lidell  <matsl@gnu.org>

* hui-menu.el (hyperbole-menubar-menu): Use easy-menu-add-item.

* hmouse-drv.el (window-jump, wj-vec-left, wj-vec-right, wj-vec-down)
    (wj-vec-up): Declare function and variables.

* hsys-org.el (org-link): Use org-link-open-from-string.

* hui-mouse.el (helm-action-buffer, helm-alive-p, helm-buffer): Declare
    helm variables.
    (company-show-doc-buffer, company-show-location)
    (company-select-mouse): Declare helm functions.
    (smart-calendar): Use calendar-scroll-left-three-months and
    calendar-scroll-right-three-months
    (smart-calendar-assist): Use calendar-scroll-left-three-months and
    calendar-scroll-right-three-months and diary-view-entries.

* hui-treemacs.el (treemacs-version, aw-ignored-buffers): Declare
    variables.

* hycontrol.el (ibuffer-mode-map): Declare used variable.

* kotl/kotl-mode.el (kotl-mode:end-of-buffer): looking-back requires two
    args.

* test/hyrolo-tests.el (hyrolo-demo-search-work)
    (hyrolo-demo-tab-jump-to-first-match, hyrolo-demo-toggle-visibility):
    Add tests for hyrolo.

* hyrolo.el (hyrolo-file-list): Make variable customizable.

* hsettings.el: Do not set user customizable properties
    hproperty:but-highlight-flag, hproperty:but-emphasize-flag,
    hproperty:but-flash-time.

2021-06-06  Mats Lidell  <matsl@gnu.org>

* hui-em-but.el (hbut-item-face): Fix typo.

2021-06-01  Mats Lidell  <matsl@gnu.org>

* test/hbut-tests.el (ebut-program-shell-cmd)
    (ebut-delete-removes-ebut-and-returns-button-data): Tests for ebuts.

2021-05-30  Mats Lidell  <matsl@gnu.org>

* test/hbut-tests.el (ebut-program-link-to-directory)
    (ebut-program-link-to-directory-2): Add test for ebut:program

* test/hmouse-drv-tests.el: Renamed from hbut-tests.el

* test/hui-tests.el (hui-ebut-create-link-to-directory)
    (hui-ebut-use-region-as-label): Add check on button args

2021-05-29  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:is-p, hpath:call): Return nil if path
    sans prefix and suffix is empty and suffix does
    not begin with a '#' markdown section-style char.

* kotl/kotl-mode.el (kotl-mode:goto-cell): Improve doc.

2021-05-29  Mats Lidell  <matsl@gnu.org>

* test/hui-tests.el (hui-ebut-create-link-to-directory)
    (hui-ebut-use-region-as-label, hui-ebut-www-link)
    (hui-ebut-create-exec-shell-cmd): ebut create tests.

2021-05-27  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:expand-with-variable): Fix to not add variable
    to path if already in the path.
           (hpath:substitute-match-value): Return STR unchanged
    if no value substituted for any variable name.

* hbut.el (ebut:program, hbut:action):
  hact.el (actype:action, actype:doc): Handle lambdas properly.

* hact.el (symtable:actype-p, symtable:ibtype-p): Return nil if
    arg is not a symbol or string, e.g. a lambda.

2021-05-25  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:to-valid-position): Removed one
    unused setting of 'indent'.

* kotl/kview.el (kcell-view:level): Use 'floor' to ignore any
    small remainder when cells at level 1 have labels longer
    than the allowed indent.

2021-05-24  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el (kotl-mode-extension-open-buffer-in-kotl-mode)
    (kotl-mode-set-view-with-kbd, kotl-mode-idstamp-saved-with-file)
    (kotl-mode-demote-keeps-idstamp, kotl-mode-demote-change-label)
    (kotl-mode-views, kotl-mode-move-cell-before-cell)
    (kotl-mode-move-cell-after-cell, kotl-mode-copy-cell-after-cell)
    (kotl-mode-copy-cell-before-cell, kotl-mode-jump-to-cell)
    (kotl-mode-goto-child-and-parent, kotl-mode-kill-cell): Add kotl-mode
    tests.

2021-05-23  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:beginning-of-buffer,
    kotl-mode:end-of-buffer): Re-narrow Koutline to editable
    region if it has been expanded.

* test/kotl-mode-tests.el (kotl-mode-indent-cell-changes-level):
    Ensure always at the beginning of buffer for the test.
  test/hbut-tests.el (hbut-pathname-env-variable-test):
  test/hibtypes-tests.el (ibtyeps::pathname-env-variable-test):
    Use file-truename to normalize both names.
  test/hypb-tests.el (hypb:replace-match-string-after-27.1-test):
    Conditionalize but don't skip so no issue arises when looking
    at all test results.

* hyrolo.el: Add (require 'xml) and local binding of child used
    in google-contacts support.

* kotl/kotl-mode.el (kotl-mode:move-after): Suppress label increment
   when label type is permanent ids (fix bug).

* kotl/kexport.el (kexport:html-replacement-alist): Change \0
    back to \\& to try to fix link replacements again.

* kotl/kotl-mode.el (kotl-mode:goto-cell): Use prefix arg as a
    number rather than a string when called interactively.

* kotl/kvspec.el (kvspec:activate): Ensure Koutline is narrowed to
    editable region only.

* kotl/kview.el (kview:goto-cell-id): Simplify and make much more
    efficient via kproperty:position call.  Allow for integer
    idstamp argument as well.

* kotl/kcell.el (kcell:ref-to-id): Simplfy using 'when' and
    'match-string'; update doc on unimplemented Augment features.
    Fix to validate that idstamp exists before returning and to
    convert relative kcell labels to idstamps (integers).

* kotl/kproperty.el (kproperty:position): Add to quickly locate
    the first kcell with a property value.
                    (kproperty:all-positions): Add to quickly
    locate all kcells with a property value.
                    (kproperty:add-properties): Add to set
    multiple properties from a plist.
  kotl/kcell.el (kcell:is-p):
  kotl/kview.el (kcell-view:create, kcell-view:set-cell, kview:goto-cell-id):
  kotl/kfile.el (kfile:insert-attributes-v2, kfile:insert-attributes-v3):
    Update to use new kcell and kproperty single-level property-list
    configuration.

2021-05-22  Bob Weiner  <rsw@gnu.org>

* kotl/kcell.el (kcell:create): Remove contents arg since contents
    are now stored exclusively in kviews.
                (kcell:contents): Remove function.
                (kcell:create-top, kcell-data:create,
                 kcell-data:to-kcell-v2, kcell-data:to-kcell-v3):
  kotl/kview.el (kview:add-cell):
  kotl/kotl-mode.el (kotl-mode:copy-after, kotl-mode:copy-before):
    Use new kcell:create calling convention (no contents arg).

* kotl/kcell.el (kcell:copy, kcell:create, kcell:is-p):
Delete knode.el and integrate functionality into kcell.el.

* kotl/kcell.el (kcell:get-attr): Alias to plist-get.
                (kcell:set-attr): Alias to plist-put.

* kotl/kview.el (kcell-view:cell-from-ref): Add to get a kcell from a cell
    reference (label or idstamp).

* Makefile:
  kotl/MANIFEST:
  kotl/kproperty.el: Merge in "kprop-em.el" and remove "kprop-xe.el".

* kotl/kexport.el (kexport:html-file-klink): Change '\0' back to
    '\\&' to prevent klink nul char insertion bug.
                  (kexport:html): Fix cell label vertical alignment
    with table row-level valign=text-bottom.

* kotl/klink.el (klink:ignore-modes, klink:c-style-modes): Add so
    can customize modes in which klinks are ignored to avoid false
    matches.

* hsettings.el (hyperbole-web-search-alist): Update 'gitHub'
    name.

* hui-mini.el (hui:menu-item, hui:menu-line): Use simplified,
    concatenated car/cdr functions.
              (hui:menu-item-keys): Add to modularize menu
    item selection and allow selection by first capital letter,
    not just first letter.
              (hui:menu-select, hui:menu-item): Call hui:menu-item-keys.
              (hui:menu-select): Update doc string and {RET}
    direct selection handling.
  hargs.el (hargs:at-p): When reading a Hyperbole minibuffer menu
    item, match to the first capitalized char in each item.

* kotl/kexport.el (kexport:font-awesome-css-url,
                   kexport:font-awesome-css-include,
                   kexport:font-awesome-collapsible-javascript,
                   kexport:buffer,
                   kexport:display,
                   kexport:html): Add/update to support collapsible
   parent cells in HTML exported Koutlines.

2021-05-19  Bob Weiner  <rsw@gnu.org>

* Makefile (kotl/kotl-autoloads.el): Revert commit that removed
    PRELOADS (needed to define make-directory-autoloads in pre-
    Emacs 28.

2021-05-18  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (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.  Programmatically, give a 2nd arg of t to force
    archiving of any existing file and starting with a fresh
    EXAMPLE.kotl file.
  test/kotl-mode-tests.el (kotl-mode-move-between-cells,
                           kotl-mode-indent-cell-changes-level):
    Update to use new kotl-mode:example arguments.

* hrmail.el (rmail:msg-to-p): Alias to Rmail-msg-to-p for use in
    in hactypes.el.
            (require 'hvar): Add, used in Rmail-init.

* hpath.el (hpath:to-markup-anchor): Add support for path#anchor
    links in programming, text and outlining major modes.

* hactypes.el (link-to-ebut): Fix bug that always triggered an error
    if key-file was not given.  Also remove interactive conditional
    that prevented normalized-file from being set.

2021-05-18  Mats Lidell  <matsl@gnu.org>

* test/kotl-mode-tests.el (setup-kotl-mode-example-test)
    (smart-menu-loads-kotl-example, kotl-mode-example-loads-kotl-example)
    (kotl-mode-move-between-cells, kotl-mode-indent-cell-changes-level):
    Add kotl-mode tests.

2021-05-17  Mats Lidell  <matsl@gnu.org>

* kotl/kotl-mode.el (hypb):
  hyperbole.el (hypb): Use compatibility macro.

* hypb.el (hypb-with-suppressed-warnings): Add compatibility macro for
    suppressing warnings

* Makefile (kotl/kotl-autoloads.el): Remove PRELOADS for generating
    autoloads. Patch from Stefan Monnier. Thank you Stefan.

* kotl/kotl-mode.el (kotl-mode):
  hyperbole.el (fboundp): Do not use with-suppressed-warnings since not
    available in all versions of Emacs 27

2021-05-17  Mats Lidell  <matsl@gnu.org>

* kotl/kmenu.el (id-menubar-set): Add external dependency.

* hyrolo.el (google-contacts-history, google-contacts-expire-time)
    (google-contacts-query-string, hproperty:highlight-face): Declare used
    variables.

* hyrolo-menu.el (id-menubar-set): Add external dependency.
    (mode-popup-menu): Declare used variable.

* hyperbole.el (autoloads): Surpress warning for obsolete
    update-directory-autoloads.
    (hyperb:generate-autoloads): Use recommended hook.

* hypb.el (mh-e-RCS-id, pm-version, vm-version): Declare used variables.

* hui-dired-sidebar.el (dired-sidebar-cycle-subtree-on-click): Declare
    used variable.

* hmouse-tag.el (python-import-file, python-to-definition)
    (epc:manager-server-process, java-to-definition)
    (jedi:-get-servers-in-use, jedi:goto--line-column)
    (jedi:goto-definition, objc-to-definition): Add external
    dependencies.

* hmouse-drv.el (aw-dispatch-always): Declare used variable.
    (mouse-drag-mode-line): Use version dependent mouse drag function.

2021-05-16  Mats Lidell  <matsl@gnu.org>

* hibtypes.el (id-cflow-repeated-indicator, cscope-output-line-regexp):
    Declare used variables.

* hbut.el (hproperty:but-face): Declare used variable.

2021-05-16  Stefan Monnier  <monnier@iro.umontreal.ca>

* hvar.el: Add lexical binding updates.

2021-05-16  Bob Weiner  <rsw@gnu.org>

* hact.el (actype:act): Add error handler when actype is null
    rather than checking for an action.

* hargs.el (monkey-filename, hargs:at-p):
  hibtypes.el (rfc): Remove ancient dired-like monkey-mode support.

2021-05-16  Mats Lidell  <matsl@gnu.org>

* Makefile (version): Do version number check in a portable way.

* hyperbole.el (hyperb:maybe-load-autoloads):
    Only load autoloads if present.

* hypb.el (hypb:function-copy): Remove XEmacs compatibility code for
    bytecode objects.

2021-05-16  Bob Weiner  <rsw@gnu.org>

* INSTALL (Manual Tarball Archive Installation): Add.
  man/hyperbole.texi (Manual Tarball Archive Installation): Update.

* hyperbole.el (hyperb:maybe-load-autoloads): Add and call from hyperb:init.

* Makefile (hyperbole-autoloads.el, kotl/kotl-autoloads.el):
  hyperbole.el (hyperb:generate-autoloads): Suppress find-file-hooks
    during autoload generation so no file headers are added.

* kotl/kotl-mode.el: Change mistaken '(when arg...)' updates to
    proper '(unless arg...)'.

2021-05-16  Mats Lidell  <matsl@gnu.org>

* hyrolo.el (google-contacts-oauth-token, xml-node-child-string)
    (xml-node-get-attribute-type, hyrolo-fgrep-logical, google-contacts)
    (google-contacts-add-margin-to-text, google-contacts-build-node-list)
    (google-contacts-data, google-contacts-make-buffer)
    (google-contacts-margin-element): Add external dependencies.

2021-05-15  Bob Weiner  <rsw@gnu.org>

* kotl/kview.el (kcell-view:line):
  kotl/kotl-mode.el (kotl-mode): Where possible change 'if' to 'when'
    and '(or (not ...))' to 'unless'.
                    (cl-lib): Require for cl-remprop.
                    (kotl-previous-mode): Declare this variable.

* hyperbole.el (make-directory-autoloads): Fix definition for Emacs 27.

* hmouse-drv.el (hkey-ace-window-setup): Change global key setting
    to use hkey-set-key instead to set in Hyperbole's minor mode map.

* Makefile (autoloads): Change to use make-directory-autoloads.

* kotl/kotl-mode.el (kotl-mode-map): Remove 'interactive-only property
    from kotl-mode commands that overload standard editing commands
    to suppress byte-compiler warnings that these are for interactive
    use only.

* hycontrol.el (hycontrol-windows-mode): Add to :group 'hyperbole-screen.

2021-05-14  Mats Lidell  <matsl@gnu.org>

* hsmail.el (mail-reply-buffer): Declare variable.

* hrmail.el (rmail-old-text): Declare variable.

* hmouse-tag.el (br-env-spec, br-lang-prefix, buffer-tag-table)
    (jedi-mode, java-class-def-name-grpn, java-class-def-regexp): Declare
    variables.

* hmouse-sh.el (br-env-spec, br-lang-prefix, company-active-map)
    (java-class-def-name-grpn, java-class-def-regexp, jedi-mode): Declare
    variables.

* hmouse-drv.el (aw-dispatch-alist, aw-frame-size, aw-keys): Declare
    variables.

* hib-debbugs.el (debbugs-port): Declare variable.

* hbut.el (ebut:delimit): Use hproperty:but-face.

* hui-em-but.el (hproperty:but): Remove variable only used in one place.

2021-05-13  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hyperb:generate-autoloads): Fix improper default-directory
    when building kotl/kotl-autoloads.el.

* hycontrol.el (hycontrol-frames-mode): Add :group.
               (hycontrol-make-windows-grid):
               (hycontrol--buffer-list): Add this var and use instead of
    free var 'buffer list'.

* hui-mouse.el (smart-custom, smart-custom-assist): Add missing close paren
    in last-line-p clause.

* hmouse-drv.el (hmouse-choose-windows): Fix unneeded arg to message.

* man/hyperbole.texi (Implicit Button Types): Remove function-in-buffer.
  hibtypes.el (function-in-buffer):
  hui-mouse.el (hkey-alist): Remove XEmacs fume function finding; use imenu.

* hibtypes.el (hlink): Add missing let declaration of partial-lbl.

2021-05-13  Mats Lidell  <matsl@gnu.org>

* kotl/kotl-mode.el (kotl-mode): Set hook to be local to buffer.

2021-05-12  Mats Lidell  <matsl@gnu.org>

* kotl/kotl-mode.el (kotl-mode:backward-paragraph): Remove XEmacs zmacs-region-stays.
    (kotl-mode): Silence warning about unused filladapt-mode and suppress
    warning for free vars.

* hui-treemacs.el (treemacs, treemacs-current-button)
    (treemacs-current-visibility, treemacs-get-local-buffer)
    (treemacs-is-treemacs-window?, treemacs-node-buffer-and-position)
    (treemacs-quit, treemacs-toggle-node): Add external dependencies.

* hui-dired-sidebar.el (dired-sidebar-toggle-sidebar): Add external dependency.

* hui-mouse.el (todotxt-archive, todotxt-bury, todotxt-complete-toggle)
    (todotxt-edit-item, magit-current-section, magit-diff-visit-file)
    (magit-diff-visit-file--internal, magit-file-at-point)
    (magit-section-cycle-diffs, magit-section-cycle-global)
    (magit-section-hide, magit-section-show, -flatten)
    (imenu--make-index-alist, image-dired-thumbnail-display-external)
    (image-dired-display-thumbnail-original-image)
    (image-dired-mouse-select-thumbnail, helm-action-window)
    (helm-buffer-get, helm-get-selection, helm-mark-current-line)
    (helm-next-line, helm-pos-candidate-separator-p)
    (helm-pos-header-line-p, helm-resume, helm-window, with-helm-buffer)
    (ibuffer-mark-for-delete, ibuffer-unmark-forward)
    (ibuffer-unmark-all, ibuffer-do-view, ibuffer-mark-forward)
    (ibuffer-do-kill-on-deletion-marks, ibuffer-get-marked-buffers)
    (br-buffer-menu-select, ibuffer-current-buffer)
    (gnus-topic-read-group): Add external dependencies.

* hycontrol.el (ibuffer-get-marked-buffers)
    (which-key--hide-popup-ignore-command): Add external dependencies.

* hsettings.el (hproperty:cycle-but-color, hproperty:but-create): Add
    declarations for hui-em-but functions.

* hpath.el (br-quit, br-in-browser, br-to-view-window): Add external
    dependencies.

* kotl/kotl-mode.el (kotl-mode): Use write-file-functions.

2021-05-11  Mats Lidell  <matsl@gnu.org>

* hmouse-tag.el (br-edit, br-edit-feature): Add external dependencies.

* hmouse-drv.el (br-in-view-window-p, br-next-listing-window)
    (br-to-view-window, ace-window, ace-window-display-mode, aw-select):
    Add external dependency.

* hib-social.el (magit-status-setup-buffer): Add external dependency.

* kotl/kimport.el (kotl-mode): Add require.

* kotl/kexport.el (kview, kotl-mode, kimport): Add requires.

* hui-mouse.el (tar-mode): Add require.

* hpath.el (tramp): Require tramp.

* hibtypes.el: (markdown-footnote-goto-text)
    (markdown-footnote-marker-positions, markdown-footnote-return)
    (markdown-link-p, markdown-reference-goto-definition)
    (markdown-reference-goto-link, markdown-wiki-link-p)
    (markdown-footnote-text-positions):  Add exernal dependencies.

* hib-kbd.el (helm-mode): Add exernal dependency.

* hib-debbugs.el (debbugs-get-status, debbugs-gnu-bugs)
    (debbugs-gnu-current-id, debbugs-gnu-select-report)
    (debbugs-gnu-show-reports, debbugs-gnu-current-query):  Add external
    dependencies.

* hbdata.el (hgnus): Require hgnus.

* hactypes.el (bookmark): Require bookmark.

2021-05-11  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:pre-self-insert-command):
  kotl/kview.el (kcell-view:previous-kcell): Force to valid
    position before moving.  This fixes promotion/demotion bug.

* hib-kbd.el (kbd-key, kbd-key:act): Interactively
   allow for a key series, not just a single bound
   key sequence.
             (kbd-key:execute): Add to programmatically
   or interactively execute a non-normalized key series
   stored in a string.  Also, improve library commentary
   and mention this new command.

* hbut.el (ebut:operate): Fix error that could fail to
    delimit a new ebut.

* hbdata.el (hbdata:delete-entry, hbdata:to-entry): Change
    partial 'if' to 'when'.

* hui.el (hui:ebut-unmark): Document prefix arg and handle
    null but-key argument utilizing button at point, if any.
    Also, fix removal of any single digit instance string
    in button text.  Clarify let var naming and usage.

* test/demo-tests.el (demo-org-hide-header-test): Force full
    Smart Key functionality in Org mode to ensure test always
    works correctly.

* hmouse-drv.el (hkey-help): Set hrule:action to 'actype:identity
    so potential default org-meta-return command does not trigger
    when displaying help for a default Smart Key context.

* hsys-org.el (require 'set): Add explicitly since set:intersection
    is used in this library.
              (hsys-org-enable-smart-keys): Initialize to 'unset
    and then set default value in hyperb:init so that needed
    hyperbole-mode-map is initialized; otherwise, customizations
    are loaded before Hyperbole is initialized.

2021-05-10  Bob Weiner  <rsw@gnu.org>

* kotl/kview.el (kcell-view:label): Remove unneeded properties
    from returned string.

* man/hyperbole.texi (Relocating and Copying, Koutliner Keys):
  kotl/kotl-mode.el (kotl-mode-map): Change binding of
    kotl-mode:mail-tree from {C-c @} to {C-c C-@} to
    prevent conflict with hycontrol-windows-grid binding.

2021-05-09  Bob Weiner  <rsw@gnu.org>

* test/demo-tests.el (demo-org-hide-header-test): Fix, add
    save-excursion around action-key call since somehow the
    ert test runner changes the current buffer to its stats
    buffer after this call, then the final should test fails.

* hyperbole.el (action-key-url-function): Remove out-of-date
    Netscape and w3 references.  Use eww by default.
               (make-directory-autoloads): Add for Emacs 28
    compatibility.
               (hyperb:generate-autoloads): Use above func.

* hypb.el (hypb:file-major-mode):
  hui.el (hui:gbut-modify, hui:hbut-delete):
  hbut.el (ibut:delete, gbut:ebut-program): Change set-buffer
    to with-current-buffer to remove byte-compiler warning.
          (www-url): Declare this.

* hui-window.el (hmouse-read-only-toggle-key): Remove ref to
    obsolete toggle-read-only and vc-toggle-read-only.

* hsys-org.el (hsys-org-radio-target-at-p,
               hsys-org-radio-target-link-at-p): Fix to return
    def or target region.

2021-05-08  Bob Weiner  <rsw@gnu.org>

* hsys-org.el (hsys-org-mode-function): Autoload this variable.

* hui-mouse.el (action-key-error, assist-key-error): Document.

* hsys-org.el (hsys-org-meta-return-shared-p): Add to enable full
    Smart Key functionality in Org mode if either Org or Hyperbole
    has rebound its M-RET key so there is no need for shared behavior.
    Affects default setting of hsys-org-enable-smart-keys option.

* hui.el (hui:buf-writable-err): Indicate that buffer is read-only
    in msg.

* hui-window.el (hmouse-prior-active-region):
  hbut.el (ebut:operate): Fix bug where ebut:operate has been called
   once, so action key is considered depressed and then one of the
   hui button commands or gbut:program is invoked independently, in
   which case the original source location of the depress should be
   ignored.

* hbdata.el (hbdata:apply-entry): Add '-flag' to last 2 arg names
    for clarity.
            (hbdata:delete-entry): Make cross-platform by replacing
    shell cmd 'rm' with Elisp 'delete-file'.

* hmouse-tag.el (smart-lisp-find-tag, smart-lisp): Add new function
    smart-lisp-find-tag split out from smart-lisp, so can be used
    as an actype or bound to a key in lieu of xref-find-definitions.

* hbut.el (ebut:operate): Fix to reuse label text within activated
    region if point is at the end of the region.

2021-05-07  Bob Weiner  <rsw@gnu.org>

* hui-menu.el (hui-menu-options):
  hui-mini.el (hui:menus): Add Cust/Org-Meta-Return setting to menus.

* man/hyperbole.texi (Smart Key - Smart Scrolling):
  hui-mouse.el (action-key-eol-function, assist-key-eol-function):
    Explain how to disable these functions when desired.

* man/hyperbole.texi (Implicit Button Types): Update to new ordering
    of org-mode, mail-address, hsys-www, and pathname ibtypes.  This
    resolves a bug where URLs are mis-categorized as pathnames.
  hibtypes.el (hpath:www-at-p, mail-address): Make higher priority
    than pathname ibtype.
  hmouse-drv.el (hkey-debug): Send all used vars as params to remove
    dynamic variable binding.
                (hkey-execute): Update hkey-debug call.
2021-05-05  Mats Lidell  <matsl@gnu.org>

* hui-em-but.el (hproperty:but-flash-time): Mark hproperty:but-flash as obsolete.
    (hproperty:but-flash-time-seconds): Add customized flash time based on seconds.

2021-05-04  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Manual Stable Release Installation): Add this
    for old-school, manual installation.  Also, fix installation
    section formating.

* hsys-org.el (hsys-org-link-at-p): Fix to use Org context to
    determine if on an Org link.

2021-05-02  Bob Weiner  <rsw@gnu.org>

* Update release number to 8.0.0pre (pre-release) as not all the
    documentation is finished yet.

* INSTALL:
  man/hyperbole.texi: Made Installation subsections for Stable Release
    Installation and Git Pre-release Installation with the Straight
    package manager.

* hmouse-tag.el (smart-tags-display): Fix to never prompt for a tag
    table if none are found from automatic searches.  This prevents
    prompting when the Action Key is pressed on a potential identifier
    that could be anything.

2021-05-02  Mats Lidell  <matsl@gnu.org>

* test/hib-org-tests.el
    (hib-org:org-mode-with-no-smart-keys-on-file-is-org-meta-return)
    (hib-org:org-mode-with-no-smart-keys-on-hypb-button-is-org-meta-return)
    (hib-org:org-mode-with-no-smart-keys-on-org-link-is-org-meta-return)
    (hib-org:org-mode-with-smart-keys-buttons-on-file-is-org-meta-return)
    (hib-org:org-mode-with-smart-keys-buttons-on-hypb-button-activates)
    (hib-org:org-mode-with-smart-keys-buttons-on-org-link-is-org-meta-return)
    (hib-org:org-mode-with-smart-keys-on-file-activates)
    (hib-org:org-mode-with-smart-keys-on-hypb-button-activates)
    (hib-org:org-mode-with-smart-keys-on-org-link-activates):
    Update and add new tests for hsys-org-enable-smart-keys.

* hui-em-but.el (hbut-face): Add face for hbuts.
    (hproperty:but-face): Use face for property.
    (hbut-item-face): Add face for hbut items.
    (hproperty:item-face): Use face for property.

2021-05-02  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (pathname-line-and-column): Lower priority below grep
    ibtypes so does not interfere.
              (grep-msg): Stop from matching to any file names
    that start with quote marks.  Those are handled elsewhere.

* hui-mouse.el (hkey-alist, smart-org): Add smart-org near the top to
    handle M-RET dispatching in Org mode prior to most other contexts.
    Also integrated assist key handling from hsys-org.el org-mode:help
    into smart-org.
  hibtypes.el (org-mode): Remove this ibtype; replace with smart-org
    function; this also ensures that pathnames within org links are
    handled by Org commands.
  hib-org.el: Move remaining action types to hsys-org.el and delete
    this file.
  test/hib-org-tests.el: Rename to test/smart-org-tests.el.
  hui-mouse.el (action-key-error, assist-key-error): When in Org mode,
    if no other context fired, use org-meta-return.
  hsys-org.el (hsys-org-heading-at-p): Add to support Hyperbole
    EOL handling and use in smart-org.  Also when hsys-org-enable-smart-keys
    is 'buttons, follow Org links and radio targets.

* kotl/kotl-mode.el (kotl-mode:kill-whole-line): Add override
    of kill-whole-line for Koutliner.

* hibtypes.el (debugger-source, hib-python-traceback, python-tb-previous-line):
    Separated handling moving back a line to handle 2 line Python
    error/traceback entries into a function and an additional ibtype.
    This eliminates an expensive recursive call to hbut:at-p.

* hmouse-tag.el (smart-lisp): When search for an Elisp identifier,
    enable the xref etags backend to find symbols not yet loaded
    into Emacs.
                (smart-tags-display): Use case-insensitive tags
    lookup since this should be true for most languages in use
    today.  Also, make find-tag calls use only exact identifier
    matches, not partial matches.
                (smart-lisp): Remove (smart-emacs-lisp-mode-p)
    check since hkey-alist predicate has checked this already.

2021-05-01  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (pathname): Update to treat "-simple" as an Elisp
    library to load only if such a library exists; otherwise,
    is not treated as a pathname.

* kotl/kotl-mode.el (kotl-mode, kotl-mode:pre-self-insert-command):
    Update kotl-mode to add this new function as a pre-command-hook
    to prevent Koutline editing with point in an invalid location,
    after a mouse-set-point outside of editable bounds (which could
    corrupt the Koutline structure).

* kotl/kview.el (kview:valid-position-p, kcell-view:previous-kcell):
    Handle when mouse has moved point to a non-editable location at
    the end of a Koutline.

* hpath.el (hpath:auto-variable-alist): Add doc summarizing valid
    values of the cdr of each pair, the path variable.

* ChangeLog: Renamed this file from Changes so change-log-mode will
    be used (now that Elpa release builds no longer overwrite files
    named ChangeLog with git log information).

* hypb-ert.el (hypb-ert-sym, hypb-ert-sel): Change 2nd args to
    strings to fix Emacs 27 byte-compile error.

2021-05-01  Mats Lidell  <matsl@gnu.org>

* hui-em-but.el (hbut-flash): Set defaults
    (hproperty:color-list): Use defined-colors

2021-04-30  Mats Lidell  <matsl@gnu.org>

* hyrolo.el (hyrolo-highlight-face): Use the 'match face for rolo
    searches.
    (hyrolo-initialize-highlight-face): Remove since not needed when using
    'match face.

* hui-em-but.el (hbut-flash): Specify a face for flashing that supports
    light and dark background using built in functionality.
    (hproperty:background, hproperty:foreground)
    (hproperty:item-highlight-color, hproperty:but-color)
    (hproperty:set-flash-color, hproperty:set-item-highlight)
    (hproperty:set-face-after-init): Remove since not needed when using a
    fully specified face.

2021-04-30  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:at-p):
  hibtypes.el (pathname): Prevent from matching to a shell
    command within a semicolon separated sequence of commands.

2021-04-29  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hyperb:init): Remove enhanced priority Hyperbole
    minor-mode from emulation-mode-map-alists.
               (hkey-initialize): Remove Hyperbole-specific C-h
    and C-c prefix maps and use of the corresponding global prefix
    maps as parent keymaps for hyperbole-mode.  define-key does
    the right thing for minor modes without any of this.
               (hkey-help-set-key): Remove, not needed.

2021-04-28  Mats Lidell  <matsl@gnu.org>

* Makefile (EL_COMPILE) (ELC_COMPILE): Add hui-dired-sidebar and
    hypb-maintenance

2021-04-28  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-grep-or-fgrep): Add.
            (hyrolo-mode-map): Repurpose {r} to do a new regexp
    HyRolo search, {C-u r} for string search, using above
    new command.  This key had moved to previous matches but
    that is already bound to {Shift-TAB} and {M-TAB}.
            (hyrolo-bbdb-grep, hyrolo-google-contacts-grep): Let
    current-prefix-arg be nil after captured as arg so does not
    affect hyrolo-f/grep calls.
  man/hyperbole.texi (HyRolo Keys): Document new {r} binding.

* hyperbole.el (hyperbole-mode): Add hyperbole-mode-hook.
               (hyperbole--enable-mode, hyperbole--disable-mode):
    Add to separate from hyperb:init.
               (hyperbole-mode): Update to use above functions.

* hui-mini.el (hui:hypb-exit): {X} to exit from hyperbole-mode
    when a minibuffer menu is active.  Use {C-h h} to re-enable
    hyperbole-mode and display the minibuffer menu.
              (hui:hypb-exit): Command invoked by X in menus.

2021-04-27  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-magit-display-file): Add and use in smart-magit*
    functions so when files from diffs are displayed, they utilize
    Hyperbole's referent display setting, hpath:display-where.
  man/hyperbole.texi (Smart Key - Magit Mode): Updated Smart Magit
    doc with the above.

* hbut.el (gbut:ebut-program): Add to programmatically add global
    explicit buttons at the end of the personal button file.

* hmouse-sh.el (hmouse-get-bindings, hmouse-get-unshifted-bindings):
  hmouse-key.el (hmouse-check-action-key, hmouse-check-assist-key,
    hmouse-set-bindings): Change from global bindings to hyperbole-mode
    ones.

* hui-select.el (hui-select-at-p): Change test from '(and (bobp) (eobp))'
    to '(eobp)' only so never triggers at the end of a buffer, notably
    Hyperbole minibuffer menu help displays.

* hyperbole.el (hyperbole-mode-specific-map): Define to shadow without
    overwriting global C-c bindings.

2021-04-27  Mats Lidell  <matsl@gnu.org>

* test/hypb-tests.el (hypb:replace-match-string-after-27.1-test): Use
    separate test for replace matches that were fixed after Emacs 27.1.

* test/hui-tests.el (hui-ibut-label-create-fails-if-label-exists): Use
    string-match.

* test/hbut-tests.el (hbut-ib-create-label-fails-if-label-exists)
(hbut-pathname-dot-slash-in-other-folder-should-fail-test): Use string-match.

2021-04-26  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:global-bind-key): Renamed from hui:bind-key and made that
    name bind keys within the hyperbole minor mode map.

* hui-em-but.el (hproperty:but-add): Add make-overlay 4th arg = t to prevent
    highlighting from spreading to text inserted before an ebut.

* hbut.el (hbut:key-to-label): Ensure is a string and if one char, is not
    a punctuation char.
          (ibut:to): Fix possible infinite loop if label being tested is one
    character long.  This caused Action Key on "." in path variable values
    to hang.

* hpath.el (hpath:path-variable-value-regexp, hpath:at-p): Improved regexp
    structure and expanded classes of excluded chars to prevent spurious path
    matches by hpath:delimited-possible-path.

* hui-mini.el (hyperbole): Enable hyperbole-mode when invoked with {C-h h}.

* hyperbole.el (hyperbole-help-map, hkey-help-set-key): Add to set help keys
    available only when Hyperbole is enabled.

2021-04-26  Mats Lidell  <matsl@gnu.org>

* test/smart-org-tests.el (smart-org-mode-with-smart-keys-on-file-is-hypb-button)
    (smart-org-mode-with-smart-keys-buttons-on-file-is-hypb-button)
    (smart-org-mode-with-no-smart-keys-on-file-is-hypb-button): Tests for
    hsys-org-enable-smart-keys.

* test/hy-test-helpers.el
    (hy-test-helpers:hypb-function-should-call-hpath:find): Test helper to
    verify any hypb function that should call hpath:find

2021-04-25  Mats Lidell  <matsl@gnu.org>

* test/hsys-org-tests.el (hsys-org:cycle-on-header-cycles-visibility)
    (hsys-org:region-with-text-property-value, hsys-org:block-start-at-p)
    (hsys-org:org-link-at-p, hsys-org:org-target-at-p)
    (hsys-org:org-radio-target-link-at-p)
    (hsys-org:org-radio-target-def-at-p, hsys-org:org-radio-target-at-p)
    (hsys-org:org-internal-link-target-at-p, hsys-org:org-face-at-p): hsys-org tests

* test/smart-org-tests.el (smart-org-mode-on-header-cycles-visibility):
    smart-org test

* hsys-org.el (hsys-org-link-at-p): Use org-target-link-regexp for radio links
    (hsys-org-internal-link-target-at-p): Inverse boolean check

2021-04-25  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hkey-override-local-bindings,
                hkey-install-override-local-bindings,
                hkey-init-override-local-keys,
                hkey-toggle-override-local-bindings): Remove, replaced
    by minor mode.
  man/hyperbole.texi (Hyperbole Key Bindings): Rename from Global
    Key Bindings.
                     (Default Hyperbole Bindings): Rename from
    Default Global Bindings and remove discussion of overriding keys.
  hui-menu.el (hui-menu-options): Remove Toggle-Override-Local-Keys.
  hui-mini.el (hui:menus): Remove Override-Local-Keys.

* hyperbole.el (hyperbole-mode): Finish documentation.

* hpath.el (hpath:posix-mount-point-to-mswindows-alist): Made this an autoload
    since referenced in hyperbole.

* hyperbole.el (hkey-set-key, hkey-maybe-set-key): Add for use with Hyperbole
    minor mode.
               (hkey-initialize):
  hmouse-sh.el (hmouse-set-key-list): Rewrote to use above functions.

* hsys-org.el (hsys-org-link-at-p): Fix so any of the 3 expressions may match.
              (hsys-org-enable-smart-keys): Add to allow for 3 levels of
    Smart Key support in Org mode.
              (hsys-org-hbut-activate-p):
  hibtypes.el (org-link-outside-org-mode):
  hui-mouse.el (smart-org-mode): Updated to use hsys-org-enable-smart-keys.
              (inhibit-hsys-org): Remove, replaced by hsys-org-enable-smart-keys.
  man/hyperbole.texi (Questions and Answers): Updated Org mode section with
   this new variable.
              (hsys-org-hbut-activate-p): Remove, move logic to org-mode ibtype.

2021-04-24  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hyperbole-mode-lighter): Defined so user can remove Hypb modeline
    display by setting this to "" or nil.

* hib-kbd.el (kbd-key): With point within the double quotes of a (kbd) call, treat
    it as a key series (kbd-key) implicit button.

* hmouse-tag.el (smart-lisp-at-tag-p): Ignore any double quoted strings.

* hibtypes.el (mail-address): Change so only need to list parent modes in
    mail-address-mode-list to get a match, e.g. prog-mode.
              (mail-address-mode-list): Shrunk to just top-level parent modes.

* hui.el (hui:htype-help): Allow '*' as completion choice for interactive
    completion frameworks where RET does not send an empty string but the first
    pre-selected choice (which will now be '*').

* kotl/kotl-autoloads.el: Remove unreleased kexport-collapse* files from here.

* INSTALL: Update installation instructions for new hyperbole-mode

2021-04-22  Mats Lidell  <matsl@gnu.org>

* test/hpath-tests.el (hpath:load-modifier-loads-file)
    (hpath:load-modifier-with-plain-file-loads-file-from-load-path): Load
    modifier tests.

* test/hbut-tests.el (hbut-load-modifier-loads-file)
    (hbut-load-modifier-with-plain-file-loads-file-from-load-path): Load
    modifier tests.

2021-04-21  Bob Weiner  <rsw@gnu.org>

* hib-social.el (hibtypes-social-hashtag-alist): Fix to use && for executing
    git references under any OS as required by Windows.
                (git-reference): Eliminate ~ that Windows shell can't handle
    in shell paths.
    (git-reference): Chop commit numbers in help buffer names to a max of 10 chars
    for brevity while maintaining uniqueness.

* hib-debbugs.el (debbugs-query:at-p): Fix to allow : immediately after bug link.

* hib-kbd.el (kbd-key:help): Allow for an empty string input.
  hbut.el (hbut:key-to-label): Fix to return an empty label string when given an
    empty string as input.  Can prevent a failure in hpath:call.

* hactypes.el (exec-shell-cmd, exec-window-cmd): Couple 'cd' and command
    with '&&' rather than semicolon.  Also, expand default-directory to
    eliminate '~' home dir refs.   Both of these for better Windows
    compatibility.

2021-04-20  Bob Weiner  <rsw@gnu.org>

* Makefile (tests, all-tests): Add these target aliases.

* hui-mouse.el (hkey-alist): Move smart-magit-mode handling to a higher priority
    than Hyperbole button handling so implicit pathname buttons don't trigger.
    This makes behavior across magit lines consistent and pathnames can still
    be displayed using the Assist Key (invokes magit {RET} key).

* hyrolo.el (hyrolo-to-entry-end): Default to using entire hyrolo-hdr-and-entry-regexp
    to determine the outline depth when no hyrolo-entry-group-number is
    included in the expression.  Fixes issue that could call (goto-char nil).

* hib-doc-id.el (doc-id-online-regexp): Tighten matching to disallow any type
    of whitespace besides spaces within the document link.
                (link-to-doc, doc-id:help): Fix bug in hyrolo-grep call not
    using 'no-display argument causing invalid return type.
                (doc-id-p): Regexp-quote delimiters and allow for whitespace
    within them.

* kotl/kotl-autoloads.el: Remove reference to unreleased kexport-menu.el
    to fix bug#47916.

2021-04-20  Mats Lidell  <matsl@gnu.org>

* test/hpath-tests.el (hpath:find-exec-shell-cmd-test,
    hpath:find-exec-window-cmd-test): Path prefix tests.

* test/hbut-tests.el (hbut-find-exec-shell-cmd-test,
    hbut-find-exec-window-cmd-test): Path prefix tests.

2021-04-19  Bob Weiner  <rsw@gnu.org>

* hsys-org.el (hsys-org-link-at-p): Change to use org-link-bracket-re so match
    includes the second display part of an Org link and matches whole link
    expression.
              (hsys-org-radio-target-def-at-p): Change org-linked-text
    property to newer, org-target to properly match radio targets.
              (hsys-org-radio-target-link-at-p): Correct and simplify.

* hib-doc-id.el: Changed to use "[-" and "-]" delimiters because "[" and "]"
    are too common and mistakenly match to part of Org links.

* hibtypes.el (mail-address-regexp): Resolve bug#4788, allow first char in
    address to be a digit.

* hib-debbugs.el (debbugs-version-sufficient-p): No-op when debbugs package
    not found

2021-04-19  Mats Lidell  <matsl@gnu.org>

* hpath.el (hact): Add dependency
* hact.el (hpath.el): Remove dependency

2021-04-18  Mats Lidell  <matsl@gnu.org>

* test/hibtypes-tests.el (ibtypes::pathname-with-dash-loads-file-test):
    Bug fixed - Removed  expected failed.

* test/hbut-tests.el (hbut-pathname-with-dash-loads-file-test): Remove
    expected fail and added check for file loading

* test/hbut-tests.el (hbut-mail-address-test, hbut-pathname-test)
    (hbut-pathname-lisp-variable-test, hbut-pathname-env-variable-test)
    (hbut-pathname-emacs-lisp-file-test, hbut-pathname-anchor-test)
    (hbut-pathname-anchor-line-test, hbut-pathname-line-column-test)
    (hbut-pathname-load-path-line-column-test)
    (hbut-pathname-with-dash-loads-file-test, hbut-pathname-directory-test)
    (hbut-pathname-dot-slash-in-other-folder-should-fail-test)
    (hbut-annot-bib-test, hbut-ctags-vgrind-test, ibtypes::etags-test)
    (hbut-text-toc-test, hbut-dir-summary-test, hbut-rfc-test)
    (hbut-man-apropos-test, hbut-info-node-test): ibtypes test cases
    converted to use action-key

* test/hibtypes-tests.el (ibtypes::pathname-path-variable-test): Ert test
    for path variables.

* test/hpath-tests.el (hpath:path-at-point-in-path-variable-test)
    (hpath:path-at-point-in-path-variable-shorter-than-three-colons-returns-nil-test):
    Ert test for path variables.

* test/hbut-tests.el (hbut-pathname-path-variable-test)
    (hbut-pathname-path-variable-with-two-colons-is-one-file-test)
    (hbut-pathname-path-variable-with-three-colons-is-a-path-test)
    (hbut-pathname-path-variable-with-short-first-elemet-is-tramp-url-test):
    Test for path variables.

* Makefile (ELC_KOTL): Add kotl/kprop-em.elc
    (ELC_COMPILE): Remove kprop-em.elc

2021-04-18  Bob Weiner  <rsw@gnu.org>

* README.md, README.md.html, INSTALL: Update Hyperbole activation instruction to use
   (hyperbole-mode 1).

* hpath.el (hpath:substitute-dir): Remove hpath:validate calls, allowing non-existent
    filenames; validate elsewhere.  This resolves improper replication of final
    part of a path, e.g. file/file.

* kotl/MANIFEST: Add kotl-orgtbl.el and add copyright and documentation to that file.

* hui-window.el (hmouse-alist): Move minibuffer click handler to after drags so can drag
    from minibuffer to another window as an action if desired.
  hui-mouse.el  (hkey-alist, smart-custom, smart-custom-assist): ivy-mode, Custom-mode
    - Add Action/Assist Mouse and Key support for these modes.

* test/hibtypes-tests.el (ibtypes::pathname-with-dash-loads-file-test): Remove expected
    failure as this has been resolved.

* hui.el (hui:ebut-modify): Fix bug attempting to use loc attribute before it was set.
    Set this earlier in the function, separate from other attributes.

* hpath.el (hpath:at-p): Moved remote path handling to lower priority than PATH variable
    value handling; helps prevent false positives for remote paths.

* DEMO (Implicit Buttons): Add Table of Contents to long Implicit Buttons section.

* hmouse-drv.el (hkey-insert-region): Improve errors and allow for throwing regions within a
    single buffer as long as the destination is outside of the selected region.

* hibtypes.el (text-toc): Use string-trim to remove occasional stray newline at end of toc sections.

* hpath.el (hpath:auto-completing-read-modes): Add to suppress automatic press of ? key when
    displaying hpath:choose-from-path-variable completions when any of these modes are enabled.
           (hpath:at-p, hpath:is-p): Tighten matches to reduce improper multi-line selections.

* hpath.el (hpath:is-path-variable-p): Add to test if a string is a path-related variable.
           (hpath:choose-from-path-variable):
  hibtypes.el (pathname): Use this new function and document path variable handling.

* hibtypes.el (require 'hversion): Add this since added calls to  hyperb:* into this file.

2021-04-17  Mats Lidell  <matsl@gnu.org>

* test/hbut-tests.el (hbut-ib-url-with-label): Bug solved - removed
    expected failed.

* test/hui-tests.el (hui-ibut-label-create)
(hui-ibut-label-create-fails-if-label-exists): Test for hui.el

* test/hbut-tests.el (hbut-ib-create-label)
(hbut-ib-create-label-fails-if-label-exists): Moved to hui-tests.el

2021-04-17  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:path-variable-regexp, hpath:choose-from-path-variable): Add.
  hibtypes.el (pathname): Add Action Key activation of *PATH* environment variables and
    completion-based selection of the desired choice which Hyperbole then displays.

* hmouse-tag.el (smart-lisp-at-tag-p): Ignore referenced environment variables (include $).

* hpath.el (hpath:delimited-possible-path): Ignore space delimited / or \\
    which look like root directories but are not.

* hibtypes.el (rfc-toc): Make buffer-name match tighter so does not match to
    *rfc toc* buffers.

* hibtypes.el (pathname):
  hpath.el (hpath:expand): Fix locate-library calls to not add suffixes and thereby
    ignore non-Lisp files with generic names that match Lisp library names when
    a suffix is added.

* hui-mouse.el (hkey-alist): Raised priority of occur modes so don't trigger
    tag finding when on an occurrence line.

* hibtypes.el (rfc-toc):
  hactypes.el (rfc-toc): Fix to skip TOC and display only section header lines
    to jump to sections.
  hib-debbugs.el (debbugs-version-sufficient-p): Eliminate call out to
    shell to get debbugs.el version number; this fixes bug where
    browse-url-emacs sets current-directory to a url and a shell cmd
    invoked from that buffer can't do a 'cd' and fails.
  hpath.el (hpath:rfc):
  hactypes.el (link-to-rfc): Change to using http to retrieve RFCs instead
    of ftp since this is disabled in many environments.  Change hpath:find
    call to browse-url-emacs so is always displayed in Emacs.

* hpath.el (hpath:delimited-possible-path): Prevent match to strings
    with embedded double quotes.
           (hpath:at-p): Handle ":.::" current dir expressions in
    path variables.
           (hpath:call): Fix yesterday's handling of anchor only
    references like "#Smart Keys" from DEMO file.
           (hpath:path-variable-value-regexp): For Windows, replace : should be ;.
	   (hpath:is-p): Prevent from matching to PATH-type strings with at
    least 4 entries; fixes Action Key on Windows path within PATH variable.

2021-04-16  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:at-p): Fix to allow non-existent paths (or those
    that possibly can't be resolved) if path at point starts with
    a special prefix character, e.g. "!date", to run the POSIX date
    cmd.
           (hpath:compressed-suffix-regexp): Add this variable and
    use in hpath:expand-with-variable to properly expand compressed
    pathnames.
           (hpath:expand): For compressed Elisp libraries, add any
    found compressed suffix to the path.
           (hpath:path-variable-value-regexp): Add.
	   (hpath:at-p): Use above variable and detect paths within PATH
    variables so Action Key can display them.
           (hpath:is-p): Fix to return nil if path ends up as an empty string.

2021-04-15  Mats Lidell  <matsl@gnu.org>

* test/hibtypes-tests.el (ibtypes::pathname-anchor-test)
    (ibtypes::pathname-anchor-line-test, ibtypes::pathname-line-column-test)
    (ibtypes::pathname-load-path-line-column-test)
    (ibtypes::pathname-with-dash-loads-file-test)
    (ibtypes::pathname-directory-test)
    (ibtypes::pathname-dot-slash-in-other-folder-test)
    (ibtypes::pathname-dot-slash-in-same-folder-test): Pathname test cases.

2021-04-15  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:call): Add to wrap functions that test path validity,
    stripping and then re-adding Hyperbole recognized path prefix and suffix
    after path validity is verified.
           (hpath:is-p): Use hpath:call wrapper and document stripping of
    file:// prefix.

* hui-window.el (hmouse-drag-same-window): Rewrite to actually detect a drag.
    (hmouse-press-release-same-window): Detect if Action or Assist Key (based
       on assist-flag) has been pressed and released in the same window.

2021-04-14  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-toggle-debug): Fix doc string.

* hpath.el (hpath:is-p): Add support for :line-num:col-num.

2021-04-13  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (hibtypes-path-line-and-column-regexp): Rename to
   hpath:section-line-and-col-regexp and move to hpath.el
  hpath.el (hpath:file-line-and-column): Use hpath:line-and-col-regexp.

* hpath.el (hpath:expand-with-variable, hpath:auto-variable-alist,
            hpath:expand): Add to generalize file suffixes that trigger
     Hyperbole to use a path search for files of the type (implicit
     pathname expansion).
  hpath.el (hpath:find, hpath:file-line-and-column):
  hibtypes.el (pathname-line-and-column): Use hpath:expand.

* Makefile (HY-TALK): Add to Hyperbole distribution; slides and demo file
    discussing the history and utility of Hyperbole.

* hact.el (hact): Simplify macro.
          (action:path-args-abs, action:path-args-rel):
    Rename to hpath:absolute-arguments and hpath:relative-argumentss
    and move to hpath.el to eliminate circular dependency (hpath.el
    requires hact macro).

* hsettings.el (hyperbole-web-search): Optimize and make service-name
    matching case-insensitive.

2021-04-11  Mats Lidell  <matsl@gnu.org>

* test/hibtypes-tests.el (ibtypes::ctags-vgrind-test)
    (ibtypes::etags-test): Make tests independent of default directory.

* test/demo-tests.el (demo-manifest-test): Make test more robust.

* hypb-ert.el (hypb-run-all-tests): Run all hyperbole tests.

2021-04-07  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:label-separator): Explain usage properly in doc string.
          (ibut:to-text): Add to leave point in button text of ibuts with
    separate labels.
          (hbut:act): Move point with ibut:to-text to fix bug where an
     ibtype expects point to be within the button text but previously
      was left within the label.

* hpath.el (hpath:url-regexp, hpath:url-regexp2, hpath:url-regexp3):
    Allow @ symbols in URLs

2021-04-07  Mats Lidell  <matsl@gnu.org>

* test/hypb-tests.el: Rename test file

2021-04-05  Mats Lidell  <matsl@gnu.org>

* test/hypb-test.el (hypb:replace-match-string-test): ert test for
    hypb:replace-match-string

2021-04-05  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (hypb-ert): Load Hyperbole test runner ibtypes.

2021-04-04  Mats Lidell  <matsl@gnu.org>

* HY-NEWS: Section about hypb-ert
  Makefile (EL_COMPILE, ELC_COMPILE): Add hypb-ert
  hypb-ert.el (hypb-run-ert-test-symbol, hypb-run-ert-test-selector)
    (hypb-ert-sym, hypb-ert-sel): Add implicit buttons for running ert
    tests.

2021-04-03  Mats Lidell  <matsl@gnu.org>

* man/hyperbole.texi (Smart Key - Todotxt Mode): Add node to document
    Todotxt support
* HY-NEWS: Add section for Todotxt mode
* man/hkey-help.txt: Add section about Todotxt mode

2021-04-02  Mats Lidell  <matsl@gnu.org>

* hui-mouse.el (hkey-alist, smart-todotxt, smart-todotxt-assist): Add
    support for todotxt-mode

2021-03-26  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:get-completion): Extract from part of `choose-completion' from "simple.el".
  hargs.el (hargs:completion): Utilize hypb:get-completion to match with current Emacs.

* hui-window.el (hmouse-emacs-modeline-event-p):
                (hmouse-inactive-minibuffer-p):
                (hmouse-x-coord):
                (hmouse-y-coord):
  hmouse-sh.el (hmouse-move-point-emacs): Add window-valid-p check ahead of window-minibuffer-p
    to prevent errors if clicked within a transient window like which-key.

2021-03-21  Mats Lidell  <matsl@gnu.org>

* test/hbut-tests.el (hbut-defal-url-%s): Add test for %s format-style.

2021-03-21  Bob Weiner  <rsw@gnu.org>

* hbut.el (defal): Add support for use of %s format-style grouping 1 arg
    substitution.
  man/hyperbole.texi (Action Button Link Types): Documented.
  DEMO (defal): Add new example of Google file type search button.

2021-03-20  Stefan Monnier  <monnier@iro.umontreal.ca>

* test/demo-tests.el (demo-factorial-ebutton-test):
  test/hibtypes-tests.el: Mark those files as not-compilable since they
    require packages that may not be available during compilation.

* hyperbole.el: Fix release version to one accepted by ELPA.
    (hyperb:init): Don't use `after-load-alist` as a hook, since it isn't one.
    (hyperbole-mode): New minor mode.  Loading a file should not change
    Emacs's behavior, so move the toplevel code to this minor mode: users
    should enable this minor mode instead of loading the file.

* hypb-maintenance.el: Fix compilation failure in elpa.git checkout.

2021-03-14  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Smart Key - Magit Mode):
  hui-mouse.el (smart-magit, smart-magit-assist): With Action/Assist Mouse
    Key press on a read-only header line, cycle visibility of diff/all
    sections in the buffer.

2021-03-14  Mats Lidell  <matsl@gnu.org>

* test/hy-test-dependencies.el (package-installed-p): Check if
    with-simulated-input is installed.

* test/demo-tests.el (demo-smart-scrolling-non-proportional-test): Make
    test more robust

* test/hibtypes-tests.el (ibtypes::pathname-env-variable-test): Use env
    for HOME to not depend on machine or OS specifics

* test/hbut-tests.el (hbut-ib-link-to-file-with-label-variants): Test
    variants of label separation chars and lengths
    (hbut-ib-create-label): Test creation of label
    (hbut-ib-create-label-fails-if-label-exists): Check creation fails
    when label exists

* test/hy-test-dependencies.el (package-installed-p): Added
    with-simulated-input

2021-03-13  Bob Weiner  <rsw@gnu.org>

* hbut.el (defil): Improved to handle both symbol and string representations
    of Hyperbole action types.

2021-03-12  Mats Lidell  <matsl@gnu.org>

* test/hbut-tests.el (hbut-verify-defal, hbut-defal-function): Test defal
    with function.
    (hbut-ib-link-to-file-with-label, hbut-ib-url-with-label): Test for
    implicit buttons with labels.

2021-03-11  Bob Weiner  <rsw@gnu.org>

* hbut.el (defil, defal): If LINK-EXPR is a function and the button is
    an Action Button, then the function receives just the text following
    the action function name.

2021-03-07  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (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 and check for a source line again.

2021-03-06  Mats Lidell  <matsl@gnu.org>

* test/hibtypes-tests.el (ibtypes::ctags-vgrind-test):
    (ibtypes::etags-test): Updated since tags info changed

* test/hbut-tests.el (hbut-defal-url, hbut-defal-key-sequence)
    (hbut-defil-it, hbut-defil, hbut-defil-url, hbut-defil-key-sequence):
    Added more tests for defal and defil.

* test/hy-test-helpers.el
    (hy-test-helpers:action-key-should-call-hpath:find): Add helper for
    verifying hpath:find is called

2021-02-28  Bob Weiner  <rsw@gnu.org>

*  (hyrolo-grep-file): Disable magit-auto-revert-mode-enable-in-buffers
      for hyrolo buffers; not needed and can slow/hang file loading. Fixes
      issue reported by Gravitypost.

2021-02-28  Mats Lidell  <matsl@gnu.org>

* test/hpath-tests.el
    (hpath:find-report-lisp-variable-path-name-when-not-exists): Verify
    not found file name error message contains the expanded lisp variable.

* hbut.el (defil): Use FIXEDCASE is non-nil to not alter the case of the
    replacement text.

* test/hbut-tests.el (hbut-defal, hbut-defal-fails-on-file-missing)
    (hbut-defil): Test for defal and defil implicit button macros.

* (demo-man-appropos-test, ibtypes::man-apropos-test): Mock call to man.

2021-02-21  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-magit-tab): Do what TAB does unless TAB does nothing
    in the current mode, then do what RET does.
               (smart-magit-listing-modes): Removed, no longer needed.
	       (smart-magit-assist): Fixed RET invocation to not prompt.

* hib-social.el (git-commit-reference): Relaxed matching to match to
    commit <commit-number> wherever surrounded by whitespace.

* hypb.el (hypb:fgrep-git-log-activate, hypb:fgrep-git-log-mode):
          (hypb:fgrep-git-log): Improved to use its own major mode, allowing
    for RET to use the Action Key (previously RET did not work).

* DEMO (Action Buttons): Moved to after pathname implicit buttons and added
    Defining New Action Button Types subsection.

* hyperbole.el (hkey-define-key): Removed, had bug that did not use prefix
    keymap properly; use hkey-global-set-key with a full key sequence instead.
               (hkey-initialize): Replaced calls to above function.

2021-02-20  Mats Lidell  <matsl@gnu.org>

* test/hibtypes-tests.el (mail-address-at-p-test)
  (mail-address-at-p-no-mail-should-fail-test, ibtypes::mail-address-test)
  (ibtypes::pathname-test, ibtypes::pathname-lisp-variable-test)
  (ibtypes::pathname-env-variable-test)
  (ibtypes::pathname-emacs-lisp-file-test, ibtypes::annot-bib-test)
  (ibtypes::ctags-vgrind-test, ibtypes::etags-test)
  (ibtypes::text-toc-test, ibtypes::dir-summary-test, ibtypes::rfc-test)
  (ibtypes::man-apropos-test, ibtypes::info-node-test): Tests for hibtypes.

* test/hib-social-tests.el (hib-social-should-browse-twitter-url)
  (hib-social-twitter-test, hib-social-should-browse-github-url)
  (hib-github-user-default-test, hib-github-ignore-default-test): Test for
    hib-social.

* test/hy-test-dependencies.el: Load prerequisites for tests

2021-02-18  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (grep-msg): Added UNIX shell error support.

2021-02-15  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-window-link, hkey-ace-window-setup): Added Ace Window 'w' command to
    use hui:link-directly to instantly create a link between the selected window and one
    chosen via Ace Window.
  hui.el (hui:hbut-label): Added optional label PROMPT override.
         (hui:link-directly): Used PROMPT parameter here.
  hmouse-drv.el (hmouse-choose-windows): Simplified prompts.
  hui.el (hui:link-directly): Added optional depress-window and release-window params so
    can be called with non-Action Key window pairs.  Also, made interactive with mouse
    key selection of button and referent windows.
  man/hyperbole.texi (Keyboard Drags):
  DEMO (Creation via Ace Window):
  HY-NEWS: Added {M-o w} command.

* hypb.el (hypb:def-to-buffer): Added for quick def copying and insertion in another buffer.
    Can be bound and used in key series.

* hbut.el (defil): Fixed improper call of regexp-quote when link-expr was not a string.

* hib-social.el (git-commit-reference): Added flash of button label

2021-02-14  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Programmatic Button Creation): Documented ebut:program.

* hib-social.el (git-commit-reference): Loosened to match to single line commit log
    entries with text following the commit number.

* hypb.el (hypb:fgrep-git-log, hypb:grep-git-log): Added to allow f/grepping over
    repo changesets and listing associated commit log messages.

2021-02-11  Bob Weiner  <rsw@gnu.org>

* hbut.el (def-edebug-spec defib):
  hact.el (def-edebug-spec defact): Added edebug-defun support for ibtypes and actypes
    courtesy of Mats.

2021-02-08  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Creating Implicit Button Types): Renamed from Implicit
    Button Types Creation and added 2 new subsections on simplified link
    type creation.

2021-02-07  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-magit-listing-modes): Added list of major modes for
    which the Action Key should run RET instead of TAB.
               (smart-magit): Applied this new custom variable.

* hbut.el (defal): Greatly clarified use in doc string.

* hibtypes.el (dir-summary): Fixed so point is left in file displayed by
    action key press, not the MANIFEST.

* hpath.el (hpath:delimited-possible-path): Added support for file:// URLs.

2021-01-31  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-display-format-function): Separated records by 1
    newline, not 2; unsure how 2 were ever added.
            (hyrolo-fgrep):
  hyrolo-logic.el (hyrolo-fgrep-logical, hyrolo-map-logic):
  hyrolo-demo.el (hyrolo-demo-fgrep-logical): Changed default to not show
    full hierarchy of records but just matching sub-levels, for more
    intuitive logical expression matching.  Made rolo-logical searches in DEMO
    work.

2021-01-30  Mats Lidell  <matsl@gnu.org>

* Makefile (test-ert, test-all): Add ert test targets

* test/hib-kbd-tests.el (kbd-key-hy-about-test)
    (kbd-key-hy-demo-factorial-test): Added.
* test/hactypes-tests.el (display-boolean-true-test)
    (display-boolean-false-test): Added.
* test/hy-test-helpers.el (hy-test-helpers:consume-input-events)
    (hy-test-helpers:should-last-message): Added helper functions.
* test/demo-tests.el (demo-smart-mouse-keys-ref-test)
    (demo-smart-mouse-keys-ebut-test, demo-table-of-contents-test)
    (demo-smart-scrolling-proportional-test)
    (demo-smart-scrolling-non-proportional-test, demo-action-key-help)
    (demo-assist-key-help, demo-window-grid-22-test)
    (demo-window-grid-33-test, demo-hy-rolo-test, demo-hy-info-test)
    (demo-hy-history-test, demo-implicit-button-test)
    (demo-implicit-button-action-button-action-type-invocation-test)
    (demo-implicit-button-action-button-function-calls-test)
    (demo-implicit-button-action-button-variable-display-test)
    (demo-implicit-button-hash-link-test)
    (demo-implicit-button-line-and-column-test)
    (demo-org-hide-header-test, demo-manifest-test)
    (demo-mail-compose-test, demo-social-twitter-test, demo-www-test)
    (demo-github-user-default-test, demo-github-ignore-default-test)
    (demo-occur-test, demo-annotated-reference-test)
    (demo-man-appropos-test, demo-factorial-test)
    (demo-factorial-ebutton-test): Test cases
    (demo-should-browse-url): Test helper

2020-12-03  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (Info-node): Allowed for backslash double-quotes around node name, e.g. when in a doc string.

2020-11-22  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:trim): Fixed to not trim trailing quoted double quote,
    resolving bug#43644.

* hibtypes.el (mail-address): When mail-address-mode-list is set to nil,
    activated this ibtype in any major mode.

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

* kotl/kexport.el (kexport:html): Lowercased HTML tags for HTML5.

2020-11-08  Bob Weiner  <rsw@gnu.org>

* hsettings.el (hyperbole-toggle-messaging): Moved from hyperbole.el
    to here to prevent unknown function error during package byte
    compilation.

* hibtypes.el (man-apropos): Prevented matches to log lines like:
    WARNING: (func-name) - warning description

2020-11-07  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:copy-absolute-klink-to-kill-ring):
                    (kotl-mode:copy-relative-klink-to-kill-ring): Added new
   commands to copy kcell refs to the kill ring.
                    (kotl-mode:copy-absolute-klink-to-register):
                    (kotl-mode:copy-relative-klink-to-register): Added new
   commands to copy kcell refs to registers.

* kotl/kview.el (kcell-view:reference): Updated doc to explain handling of
    relative-dir = nil.
    (kcell-view:absolute-reference): Added for kcell references with
absolute paths.

2020-11-02  Mats Lidell  <matsl@gnu.org>

* hpath.el (hpath:external-display-alist-mswindows):
           (hpath:internal-display-alist): Add customization.
           (hpath:external-display-alist-x): Add customization. Use
    xdg-open to use users preferred app in window system.

2020-11-01  Bob Weiner  <rsw@gnu.org>

* hbut.el (ebut:program): Added a programmatic way to create explicit buttons.
  hui.el (hui:ebut-create): Updated doc to highlight that this is for interactive use.
  hbdata.el (hbdata:actype): Updated to handle programmatically created
    explicit buttions whose action types may be regular Elisp functions.

2020-10-27  Bob Weiner  <rsw@gnu.org>

* hbut.el (defal, defil): Added to allow non-programmers who understand
    simple regular expressions to create their own implicit button types.

    ibtype:create-action-link-type is an alias for defal which creates
    a new action button link type given a type symbol/name and a regular
    expression that resolves into a key series, URL or path to display.

    ibtype:create-regexp-link-type is an alias for defil; it behaves just
    like defal but requires starting and ending delimiters as well as a
    button text matching regexp and a link substitution regexp, allowing
    for more complex regexp substitution, not just the simpler action
    button formats.

* hib-kbd.el (kbd-key:is-p): Added to test if a string is a delimited key series.

2020-10-25  Bob Weiner  <rsw@gnu.org>

* hibtypes.el:
  man/hyperbole.texi (Implicit Button Types): Updated doc.

2020-10-22  Bob Weiner  <rsw@gnu.org>

* hact.el (symset:clear): Added to empty a symset like ibtypes to reset
    ibtype priorities.
  hibtypes.el: Changed require to load for all hibtype files so are always
    added when the ibtype priority list is reset.

2020-10-18  Bob Weiner  <rsw@gnu.org>

* hypb.el  (hypb:replace-match-string):
  hpath.el (hpath:substitute-match-value):
    Added optional 5th arg, fixedcase, which can be used to prevent
    case changes in replaced strings.
           (hpath:substitute-var-name, hpath:is-p,
            hpath:substitute-match-value): Used fixedcase arg in
    hypb:replace-match-string calls.
           (hpath:substitute-value): Used fixedcase arg in
    hpath:substitute-match-value call.
           (hpath:is-p): Handled empty string return value from
    hpath:substitute-value call.
    These changes fixed improper path variable subst where the path
    contains mixed case characters.

* kotl/kotl-mode.el (kotl-mode:action-key): Added Org table support.
                    (kotl-mode): Automatically enabled orgtbl-mode
    minor mode.  Forced load of org-table and kotl-orgtbl for this.
                    (kotl-mode-map): Bound demotion and promotion of trees
    to all of the following (inside Org Table is when orgtbl-mode minor
    mode is active and point is in a table):

     |----------------------------+-----------------------------|
     | Demotion Inside  Org Table | Promotion Inside  Org Table |
     |----------------------------+-----------------------------|
     | M-0 TAB                    | M-0 Shift-TAB or M-0 M-TAB  |
     | C-c C-,                    | C-c C-.                     |
     | C-c C-<                    | C-c C->                     |
     |----------------------------+-----------------------------|

     |----------------------------+-----------------------------|
     | Demotion Outside Org Table | Promotion Outside Org Table |
     |----------------------------+-----------------------------|
     | TAB                        | Shift-TAB or M-TAB          |
     | M-left-arrow               | M-right-arrow               |
     | C-c C-,                    | C-c C-.                     |
     | C-c C-<                    | C-c C->                     |
     |----------------------------+-----------------------------|

2020-10-11  Bob Weiner  <rsw@gnu.org>

* Makefile (EL_KOTL, ELC_COMPILE): Added kotl/kotl-orgtbl.{el,elc}.
  kotl/kotl-orgtbl.el (orgtbl-tab): Added to support Org Table minor-mode use
    in Koutlines.
  kotl/kotl-mode.el (hsys-orgtbl): Required this new library.
                    (kotl-mode-map): Bound M- arrow keys to closely match those
    in Org mode for tree promotion/demotion and moving text lines up and down.

2020-10-10  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (orgtbl-tab): Updated Org minor-mode table use of {TAB} key to
    allow promotion and demotion of koutline trees when given an explicit prefix
    argument.  Otherwise, tabs through and justifies table fields normally.

2020-10-04  Bob Weiner  <rsw@gnu.org>

* kotl/kexport.el (kexport:html-replacement-alist): Corrected \\0 with \0 so html
    export works properly.

* hibtypes.el (hsys-www): Moved to lower priority than pathname implicit buttons
    so they can handle file:// links, especially with :line-number suffixes.
    Fixes bug#43794.

* hsys-org.el (hsys-org-mode-p): Added org-agenda-mode check.
  hib-org.el (org-mode): Changed to apply inhibit-hsys-org to org-agenda-mode as well.

* hibtypes.el (hib-debbugs): Raised priority above social and markdown links.
              (org-link-outside-org-mode): Added to lower priority below
    other Hyperbole link types and removed from hsys-org.el.

* hib-org.el: Moved Org mode implicit button and action types to this new
    file to allow for separate handling of Org links outside of Org mode.
  Makefile (EL_COMPILE, ELC_COMPILE): Added hib-org.el{c}.

==============================================================================
V8.0.0 changes ^^^^:
==============================================================================

2020-09-21  Bob Weiner  <rsw@gnu.org>

* hversion.el: Released 7.1.3.

2020-09-06  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hkey-define-key): Added to support help-map being
    somewhere other than C-h.
               (hkey-initialize): Updated to support the above.
  hui-mini.el (hui:menu-doc): Updated to support the above.  Trigger an
    error if the 'hyperbole' command is not bound to a key.

* hmouse-drv.el (hkey-help): Fix to properly reflect and describe mouse
    drags and only reflect mouse usage if last-command-event was a
    mouse event.  Move clearing of action/assist key variables until
    after the last specified action is recorded.

* hib-kbd.el (kbd-key): Improve brace matching by temporarily tagging
    braces with list delimiter syntax.

* hypb.el (hypb:set-raw-syntax-descriptor): Add so can restore saved
    syntax table entries.
          (hypb:get-raw-syntax-descriptor): Add to get raw syntax
    descriptors.  Emacs does not provide these functions.

* hui-window.el (smart-coords-in-window-p): Ensure any window returned is
    still valid and fix eventp condition to return window rather than t.

2020-08-03  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:ebut-delete-op, hui:ibut-delete-op): Display deletion msg
    when used in a key series or kbd macro.

* hbut.el (ibut:delete): Fix to pass key instead of but symbol to ibut:to.

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

* hbut.el (hbut:key-src-set-buffer): Fixed explicit button creation in a new
    file that has not yet been saved.

* hib-social.el (git-reference, hibtypes-git-use-magit-flag): Added this flag.
    If Magit is available, when activating a git directory button, use Magit
    rather than Dired.

2020-08-01  Bob Weiner  <rsw@gnu.org>

* hui-mini.el (hui:menu-get-keys): Cleared hui:menu-keys to prevent multiple
    calls from concatenating results.

* hmouse-drv.el (hkey-help): Added note that implicit button types are displayed
    in highest priority first order when listing all of them.

* man/hyperbole.texi (Smart Key - Helm Mode):
                     (Smart Key - Magit Mode): Added new nodes to document these.

* kotl/kotl-mode.el (kotl-mode): Used setq-local to ensure fill-paragraph-function
    is set only for kotl-mode.

* hmouse-drv.el (hkey-help): Fixed to not show 'OR' before first 'CALL' listing
    and to only display Action/Assist Mouse Button contexts when last use was
    ia mouse button and not keyboard.  Also, displayed whether showing mouse or
    keyboard help.

* hmouse-drv.el (hmouse-key-release-window): Required position of last action/assist
     mouse key release event.  This fixed the problem of improperly registering a
     drag to outside of an emacs frame because action/assist-key-release-window was not
     set properly.
                (hmouse-function): Sent action/assist-key-release-position as argument
    to hmouse-key-release-window call.

2020-07-29  Bob Weiner  <rsw@gnu.org>

* man/hkey-help.txt: Added magit modes.
  hui-mouse.el (smart-magit, smart-magit-assist): Added.
               (hkey-alist): Added support for magit modes.

* kotl/kotl-mode.el (kotl-mode:eolp): Added optional 'next-char-visible' arg.
                    (kotl-mode:action-key, kotl-mode:assist-key):
  hui-mouse.el (hkey-alist): In kotl-mode, matched to eol only if following
    char is not invisible.  This allows Action Key to expand a tree when point
    is on the ellipsis (invisible portion of tree).

2020-07-28  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode): Set outline-regexp so outline-on-heading-p and
    smart-outline-subtree-hidden-p use it and the Action Key expands cells properly.

* hyperbole.el (outline-invisible-in-p): Fixed to detect if tree is collapsed anywhere.

2020-07-27  Mats Lidell  <matsl@gnu.org>

* hui-dired-sidebar.el: Added support for dired-sidebar.

2020-07-26  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (hsys-org): Moved org links/refs to near top of priority list so things
    like URLs embeded within Org links are handled by Org, not Hyperbole.
              (markdown-follow-inline-link-p): Fixed to defer in-file links with
    point on the link title to the `pathname' ibtype since
    markdown-follow-link-at-point does not handle them properly.

2020-07-25  Bob Weiner  <rsw@gnu.org>

* hib-kbd.el (kbd-key:execute-special-series): Added and used in kbd-key:act
    to make key series work properly when helm-mode is enabled.  Counsel-mode
    works without any change.

2020-07-23  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:ibut-label-create): Fixed to skip back past opening delimiter
    before adding new label.

2020-07-22  Bob Weiner  <rsw@gnu.org>

* hsys-org.el (org-mode): Added support for global Org link activation
    (Org links outside of Org buffers) and for Org Agenda item activation.

2020-07-21  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hkey-global-set-key): Documented.

2020-07-19  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hyperb:init): Remove WSL abbrev of /mnt/c as /c since may not exist.

2020-07-08  Bob Weiner  <rsw@gnu.org>

* hbut.el (hbut:delete, ibut:delete): Added.

2020-07-08  Bob Weiner  <rsw@gnu.org>

* hbut.el (gbut:to): Added to move to a global button file button.

==============================================================================
V7.1.3 changes ^^^^:
==============================================================================

2020-07-08  Bob Weiner  <rsw@gnu.org>

* hversion.el: Released 7.1.2.

* hmouse-sh.el (hmouse-drag-region): Added.
               (hmouse-unshifted-setup): Bound down-mouse-1 to hmouse-drag-region to support
    clickable Emacs buttons and proper highlighting when dragging mouse-1.  This also allowed
    for deletion of Info-mode-map mouse-1 bindings.

2020-07-05  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:to): Fix not handling ibut names by substituting ibut:label-p call for ibut:at-p.

* hui-mini.el (hyperbole-set-key): Like global-set-key but binding is a Hyperbole minibuffer key series.
              (hui:menu-keys): Added.
	      (hui:menu-act): Cleared hui:menu-keys.
              (hui:menu-item): Saved hui:menu-keys.
	      (hui:get-keys, hui:menu-get-keys): Added.
  man/hyperbole.texi (Binding Minibuffer Menu Items): Added.


* hib-kbd.el (kbd-key:hyperbole-mini-menu-key-p): Handled empty string properly.

* man/hyperbole.texi (Global Buttons): Documented Delete command.
  hui-menu.el (infodock-hyperbole-menu): Global-Button/Delete - Added.
  hui-mini.el (hui:menus): Gbut/Delete - Added.
  hui.el (hui:gbut-delete, hui:hbut-delete, hui:ibut-delete-op): Added.
  hui.el (hui:hbut-delete-confirm-flag):
  man/hyperbole.texi (Deletion): Renamed from hui:ebut-delete-confirm-p.
  hbut.el (hbut:delete, ibut:delete, gbut:delete): Add.

2020-07-04  Bob Weiner  <rsw@gnu.org>

* hbut.el (gbut:to): Added to move to a global button file button.

2020-06-28  Bob Weiner  <rsw@gnu.org>

* hload-path.el: Used (setq hyperb:dir (file-truename hyperb:dir)) only after Hyperbole paths
    have been added to load-path, so that if they are symlinks, the symlink name rather than
    the truename is used there since the package manage usses the symlink name and may have
    added such a path already.

* hmouse-drv.el (quit-window): Handled primitive functions when replacing this command.

* hypb.el (hypb:function-symbol-replace): Made a no-op if symbol-function is a non-Lisp primitive.
    Also, replace single clause 'if' calls with 'when' or 'unless'.

2020-05-09  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (beginning-of-visual-line,
                     end-of-visual-line,
                     kill-visual-line): Overrode in kotl-mode-map.

2020-03-25  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:yank): Fix hypb:replace-match-string call to use
    a replacement function rather than a string containing "\\0" which doesn't
    work.

2020-03-11  Bob Weiner  <rsw@gnu.org>

* kotl/klink.el (require 'kcell): Removed, caused recursive require loop.

2020-03-10  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:label-set): Updated doc to explain that this sets the text of the implicit button
    (which is only its label if there is no optional preceding delimited name).
          (ibut:rename): Changed to only move point to the button but not to edit the buffer when
    old and new labels are the same.

* hui.el (hui:gibut-create): Added to create global implicit buttons.
         (hui:gbut-create): Small improvements; with prefix arg, interactively call hui:gibut-create.
         (hui:gbut-modify): Updated to modify the text of an implicit button and to save the global
    button file after modification if called interactively.

2020-03-09  Bob Weiner  <rsw@gnu.org>

* hactypes.el (link-to-texinfo-node): Added first param, file, rather than just using the current
    buffer filename.
  hibtypes.el (texinfo-ref): Modified to send nil as first arg to link-to-texinfo-node.

2020-03-08  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:link-possible-types): Added link-to-bookmark, link-to-texinfo-node as possible types.

* hbut.el (ibut:previous-occurrence): Added.

* hibtypes.el (action): Added missing quote in front of variable name arg that caused an error
    on variable name action buttons.

2020-03-01  Bob Weiner  <rsw@gnu.org>

* hbut.el (require): Fixed require of 'help-mode' instead of 'help'.  This fixed 'make bin' compilation.

==============================================================================
V7.1.2 changes ^^^^:
==============================================================================

* Published 7.1.1 test release.

* hypb.el (hypb:display-file-with-logo): Modified to not move point or do anything other than use view-mode
    to display the file buffer if it exists prior to this call.  This allows using {C-h h d d} to jump back
    to the same point in the DEMO.  The FILE argument is now required.

* hbut (hbut:syntax-table, hbut:modify-syntax): Added to modify <> and {} syntactic character pairs for use
    with implicit button activations, notably Action and Key Series.
       (ibut:label-p): Used hbut:syntax-table.
       (require): Added elisp-mode for syntax table support.
  hyperbole.el (hyperb:init): Added hbut:modify-syntax call.

* DEMO (Sample Explicit Buttons and Types): Removed email example since it wasn't very good and that
    code has not been  updated in a long time.

* hsettings.el (hyperbole-web-search): Fixed to encode URL special characters including spaces.
    This fixed the 'electric car' explicit button example in the DEMO.

* hib-kbd.el (kbd-key:binding, kbd-key:kbd, kbd-key:parse): Added and used to prevent (kbd) calls from
    improperly parsing "<[td]>" as an Emacs event and as a result removing the angle brackets.

* DEMO (Global Buttons): Added a new example of a labeled global implicit button displaying a todo file.

* hpath.el (hpath:substitute-match-value): Added and called in hpath:substitute-value.  This function
    was hypb:replace-match-string in previous Hyperbole releases but now is only used by this one function.

* man/hyperbole.texi (Glossary):
  hibtypes.el (action):
  hib-kbd.el (kbd-key):
  hbut.el (hbut:max-len): Renamed variable from ebut:max-len since applies to all Hyperbole button types now.
    Increased to 200; allowed for 0 value which means no limit.  Locally set to 0 in Action implicit
    button type.
          (hbut:max-len): Added this inline function to retrieve the proper value.

* hibtypes.el (action):
  hact.el (actype:act): Added support for special forms like: 'progn', 'and', etc.

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

* hpath.el (hpath:find): Fixed bug where hpath:to-markup-buffer with point in the source link buffer
    rather than the referent.

* hib-kbd.el (kbd-key:key-series-to-events):
             (kbd-key:normalize): Rewrote and added support for <TAB>, <BS>, 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).
             (kbd-key:named-key-list, kbd-key:named-key-regexp, kbd-key:modified-key-regexp): Added and
    used in kbd-key:normalize.
             (kbd-key:key-and-arguments): Updated to handle that key-series now have multi-character modifier
    keys by adding a seq-position call.

* hypb.el (hypb:replace-match-string): Replaced all logic other than error generation with Emacs function,
    replace-regexp-in-string.

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

* hui.el (hui:ebut-delete-op):
  hactypes.el (link-to-ebut): Fixed ebut:get call to send file as 3rd arg, not 2nd; now link-to-ebuts work.

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

* hyrolo.el (hyrolo-add): Removed conditional on entry-level-len when nil that was causing an error during
    adding of a record.

==============================================================================
V7.1.1 test release changes ^^^^:
==============================================================================

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

* Published 7.1.0 test release.

* hui-menu.el (infodock-hyperbole-menu): Changed 'Activate-Button-at-Point' to 'Activate-Button-in-Buffer'
    and made prompt for button if not on one.  This synchronizes it with the top-level 'Act' command in
    the Hyperbole minibuffer menu.
* man/hyperbole.texi (Menus): Updated to reflect the above change.
                     (Modeline Clicks and Drags): Added moving frames with bottommost modeline drags.

* hui.el: (hui:ebut-act, hui:ibut-act): Changed body to a call of hui:hbut-operate.
          (hui:hbut-operate): Changed to call actype:act to perform operation.  Also changed to a private
    function.
  hbut.el (hbut:act): Activated only when a valid Hyperbole button symbol is given; improved error checking.

* hbut.el:
  hui.el: Changed doc strings to imperative form.

* hui-menu.el (infodock-hyperbole-menu): Updated Implicit-Button/Activate (renamed from Activate-at-Point).
  hui-mini.el (hui:menus): Updated Ibut/Act.
  hui.el (hui:ibut-act): Added to better mirror hui:ebut-act and replaced Ibut/Act menu items with this.

* hui.el (hui:hbut-act):
  hbut.el (hbut:act): Added interactive completion of in-buffer ebuts and ibuts.

* man/hyperbole.texi (Questions and Answers): Rewrote Org-mode question a bit to account for
    improved integration.

* hbut.el (ibut:act): Added to interactively prompt for and activate labeled implicit buttons.

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

* hui-em-but.el (after-init-time): Added setting of hyrolo-highlight-face used in HyRolo matches
   so text is highlighted and readable by default (foreground and background colors of matched
   text has been the same for some unknown reason.  This may affect user customizations however.

* man/hyperbole.texi (Smart Key - Bookmark Mode): Added.

* hpath.el (hpath:file-line-and-column): Added.
  hactypes.el (link-to-file): Rewrote to use above function, allow for :line:column suffixes and
    trigger error if path argument is invalid.

* hui-mouse.el (hkey-alist): Fixed bookmark-bmenu-mode so Assist Key shows what Action Key does
    rather than generic help.

* hbut.el (ebut:operate): Appended any instance-flag string to the button label; this fixed
    error where point moved to the wrong location when creating a new numbered instance of
    a particular button label.  Also, fixed so any existing text following point or
    highlighted as region is used in button labels, rather than new text being inserted.
          (ebut:delimit): Changed instance-str to instance-flag since not always a string.

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

* hpath.el (hpath:mswindows-to-posix): Made '\\' by itself in Windows an invalid path.

* hib-kbd.el (kbd-key:key-series-to-events): Added for use in testing and called from kbd-key:act.

==============================================================================
V7.1.0 test release changes ^^^^:
==============================================================================

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

* Published 7.0.9 test release.

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

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

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

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

* man/hyperbole.texi (Swapping Buffers):
  DEMO (Swapping Buffers): Added swapping buffers between frames.
  hycontrol.el (hycontrol-window-swap-buffers): Fixed so current buffer remains the same but selected window
    changes.
               (hycontrol-frame-swap-buffers): Fixed so current buffer remains the same but selected frame
    changes.  Also made this work anytime there are two or more frames regardless of how many windows in each.
               (hycontrol-frames-mode-map):  {~} removed secondary call of hycontrol-window-swap-buffers.
               (hycontrol-windows-mode-map): {~} removed secondary call of hycontrol-frame-swap-buffers.

* man/hyperbole.texi (Renaming, Global Key Bindings):
  hyperbole.el (hkey-initialize):
  hui-mini.el (hui:menus):
  hui-menu.el (hui-menu-key-bindings): Removed {C-c C-r} ebut rename binding since conflicts with bindings
    commonly made in some modes.  Use menu instead or choose a personal binding.

* hui.el (hui:hbut-help): Improved to flash unnamed implicit buttons with lbl-start and lbl-end properties.

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

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

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

* hui-menu.el (hyperbole-menubar-menu): Removed set-menubar-dirty-flag call.
              (hmouse-release-left-edge, hmouse-release-right-edge): Removed XEmacs code.

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

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

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

* hmouse-sh.el (hmouse-unshifted-setup): Disabled `mouse-1-click-follows-link' since it doesn't work
    with Hyperbole's down and up bindings.

* hui-window.el (hmouse-drag-outside-all-windows): Removed errant backquote typo that was causing
    any Action Mouse Key click to create a new frame.

* hargs.el (hargs:iform-read): Removed XEmacs setting and replaced with one-time transient-mark-mode
    setting to keep region enabled when '_' is included in interactive specs.

* DEMO: Removed {} from partial key series that we don't want new automated button tester to activate.

* hycontrol.el (hycontrol-windows-grid-by-major-mode): Changed initial-input to default value.

* hmouse-tag.el (smart-lisp-bound-symbol-def): Documented.

* hact.el (htype:create): Added definition-name property used by
    find-function-search-for-symbol so now Elisp stack frame and other function
    calls that look like actypes::<action-type> and ibtypes::<implicit-button-type> jump to
    the associated defact and defib definitions.

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

* hpath.el (hpath:posix-to-mswindows-separators):
           (hpath:mswindows-to-posix-separators):
	   (hpath:abbreviate-file-name): Added and called from the above functions.  Same as
    `abbreviate-file-name' but disables tramp-mode.  This prevents improper processing of hargs
     with colons in them, e.g. `actypes::link-to-file'."

* hbut.el (ibut:at-p): Fixed that button category/type was not set if KEY-ONLY flag was given.

* hmouse-drv.el (hkey-help): Fixed listing of command executed when prefixed with a funcall.

* hbut.el (hbut:report): Improved doc string.

* hui.el (hui:ebut-act):
  hsys-org.el (hsys-org-hbut-activate-p):
  hbut.el (hbut:act): Simplified most common call and made hbut optional, defaulting to 'hbut:current.

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

* hpath.el (hpath:cache-mswindows-mount-points): If a network share with a domain
    name, also add an entry WITHOUT the  domain name to the mount points table
    since Windows paths often omit the domain.
           (hpath:mswindows-to-posix-separators): Rewrote to better handle
    converting Windows UNC paths to Posix mount points.
           (hpath:directory-expand-alist): Renamed to hpath:posix-mount-point-to-mswindows-alist
           (hpath:mswindows-path-posix-mount-alist): Removed, unused.

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

* hyrolo.el (hyrolo-verify): Removed check of (stringp hyrolo-match-regexp) since may have
    done a logical search which does not set that regexp.  This resolved an error when
    using {q} to quit from the hyrolo match buffer.

* hyrolo-logic.el (hyrolo-map-logic): Fixed function call.
    Changed: (match-string-no-properties hyrolo-hdr-and-entry-regexp
         To: (match-string-no-properties hyrolo-entry-group-number)

* hsys-org.el (inhibit-hsys-org): Added customization to allow disabling all Smart Key support when in an
    Org mode and documented everywhere.
              (hsys-org-hbut-activate-p): Defined and added to org-metareturn-hook so local binding
    of M-RET in org-mode activates Hyperbole buttons (doesn't run full set of Action Key actions).
    (org-link): Updated to utilize newer org-link-open-from-string function when available.
    (hsys-org-link-at-p): Updated to utilize newer org-link-any-re variable when available.

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

* DEMO (Windows Grid): Used {Q} to ensure quit from HyControl and not from the DEMO (which is in Help mode).

* hypb.el (hypb:mark-object, hypb:object-p): Added these to give strings and symbols a hyperbole property.
  hpath.el (hpath:relative-to, hpath:absolute-to): Ignore any string with a hyperbole property.
    Prevents removal of trailing whitespace from normalized key series, for example.

* hib-kbd.el (kbd-key:hyperbole-mini-menu-key-p): Optimized to compute kbd-key:mini-menu-key only once.
             (kbd-key): Allow for double-quoted key series, i.e. "{C-x o}".

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

* hib-kbd.el (kbd-key:normalize): Prevent multiple normalizations which can strip desired RET and SPC characters.

* hyrolo-logic.el (hyrolo-map-logic):
                  (hyrolo-kill):
  hyrolo.el (hyrolo-add):
	    (hyrolo-grep-file):
            (hyrolo-to):
            (hyrolo-to-entry-end): Fixed bug that caused addition of new entries at the end of the hyrolo file,
    rather than in sorted order.  Also caused hyrolo-logic functions to fail.
    The issue was that 'hyrolo-hdr-and-entry-regexp' had been updated to include the whitespace following the entry prefix
    and this whitespace was improperly included when computing the hierarchy level of the entry.  Also, changed
    'curr-entry-level' parameter from a string to an integer to reduce length comparisons.
            (hyrolo-r-not): Fixed typo 'path' should be 'pat'.

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

* hui-em-but.el (hproperty:set-face-after-init): Conditionalized settings to avoid overriding customizations.
                (hproperty:item-highlight-color): Fixed initialization error.
                (hproperty:set-flash-color): Ensured not setting to nil values.
                (hproperty:flash-face, hproperty:highlight-face): Converted to defcustom variables.

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

* hmouse-drv.el (hkey-drag-to, hkey-drag-item):
  hui-window.el (hmouse-drag-item-to-display):
                (hmouse-at-item-p): Fixed to work with ace-window when Action Key is not used.

* hmouse-drv.el (hkey-throw): Rewrote to throw active (highlighted) region if any.
                (hkey-insert-region): Added.
  hui-window.el (hmouse-pulse-region): Added.

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

* hui-mouse.el (smart-imenu-item-p): Fixed to handle invalid marker positions after buffer changes
    when imenu-auto-rescan is false.

* hmouse-drv.el (hkey-execute, hkey-help): Simplified with cddr and cadr calls.

2020-01-31  Bob Weiner  <rsw@gnu.org>

* hui-em-but.el (hproperty:set-flash-color):
                (hproperty:set-face-after-init): Resolved issue that explicit buttons were not
    being highlighted upon load and that explicit and named implicit buttons were not flashing
    properly when activated due to improper face settings.

2020-01-29  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:markup-link-anchor-regexp): Prevent matches to files like: ".#a.org"

* hui-em-but.el (hproperty:but-flash, hproperty:but-flash-time): Revert this value back to 1000
    since users may have previously customized values that loading Hyperbole does not override.
    Revert logic to using this to compute number of fractional seconds to flash a button.  Prior
    change caused a mistaken wait of 1000 seconds since user customization value was not replaced
    by loading Hyperbole.

2020-01-25  Bob Weiner  <rsw@gnu.org>

* hactypes.el (link-to-ibut): Handled null 'defaults' when called interactively; needed when
    interactively creating a link-to-ibut and there is no ibut at point.  Also improved
    error message when a link-to-ibut is invalid, i.e. has a null button reference.
  hbut.el (ibut:to): Handled null lbl-key arg.

2020-01-21  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:at-p): Fixed to recognize non-labeled ibuttons in programming modes.

* man/hyperbole.texi (Glossary): Added Action Button, Elink, Ilink, Glink
    definitions to the glossary.

* Makefile (GNUFTP): Added --replace option in case need to quickly replace a
    release when first uploading it.

==============================================================================
V7.0.9 test release changes ^^^^:
==============================================================================

2020-01-20  Bob Weiner  <rsw@gnu.org>

* Published 7.0.8 test release.

* hib-social.el (social-reference): Fixed handling of social refs without any service name,
    e.g. #gnu.

* hibtypes.el (action): 'actype::' should be 'actypes::; action variable args were quoted
    twice so did not work.

* hpath.el: Fixed to handle in-file HTML-like link references.
     (hpath:is-p): Allowed for URL "file://" prefix.
     (hpath:markup-link-anchor-regexp): Allowed for anchor only paths, no pathname.
     (hpath:find): Use buffer-file-name if pathname is empty.
     (hpath:to-markup-anchor): Prevent string-match error if buffer-file-name is null.
  hbut.el (hbut:outside-comment-p): Ignore comment status for html-like markup
    modes that register as programming modes.  This fixes ibuttons not being
    recognized, notably in-file anchor links.

* Makefile (ftp): Added missing gzipped tar file dependency
  hui-select.el: Removed kotl-mode require as it caused an infinite loading cycle

2020-01-07  Bob Weiner  <rsw@gnu.org>

* hui-mini.el (hui:menus): Added Gbut/Rename.
  hui-menu.el (infodock-hyperbole-menu): Added Global-Button/Rename.

2020-01-06  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:gbut-modify): Changed hargs:read-match to use 'gbut' type
    rather than 'ebut'.
         (hui:gbut-rename): Added.

2020-01-05  Bob Weiner  <rsw@gnu.org>

* hbut.el (hbut:key, ebut:key, ibut:key, hbut:rename): Added.

* hui.el (hui:hbut-rename, hui:hbut-operate): Added.
         (hui:hbut-act): Rewrote to use hui:hbut-operate.

2020-01-04  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (pathname):
  man/hyperbole.texi (Implicit Button Types):
  hpath.el (hpath:find): Documented allowable Emacs Lisp and env. variable syntax.

2019-12-29  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:posix-to-mswindows-separators):
           (hpath:mswindows-to-posix-separators):
           (hpath:directory-expand-alist): Corrected use of this variable by switching
    it to hpath:posix-to-mswindows-separators.

2019-12-28  Bob Weiner  <rsw@gnu.org>

* hui-select.el (hui-select-set-region): Resolved markup-pair selection when selecting
    the whole buffer.

* hibtypes.el (action): Ignore / don't match to unbound symbols.

2019-12-18  Bob Weiner  <rsw@gnu.org>

* hui-select.el (hui-select-markup-modes):
  man/hyperbole.texi (Smart Key Thing Selection): Added XML mode support.

2019-10-13  Bob Weiner  <rsw@gnu.org>

* hact.el (action:path-args-rel): Limited to file-name-directory call to 'loc' value.
  hpath.el (hpath:find): Added file-name-directory call wrapped around 'loc' value;
    otherwise, default-directory could be set to a filename.

* hpath.el (hpath:absolute-to): Resolved bug that trimmed whitespace off non-path args,
    e.g. key series, thereby removing trailing C-m keys.

2019-10-06  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (hkey-alist): Added support for selection of bookmarks from bookmark menu list.

2019-10-05  Bob Weiner  <rsw@gnu.org>

* hactypes.el (link-to-bookmark): Added to link to an Emacs bookmark, similar to a
    global button with a link action type.
  man/hyperbole.texi (Action Types): Added link-to-bookmark.

* hpath.el (hpath:cache-mswindows-mount-points): Changed mapcar to mapc since
    not using return value.
    (hpath:display-buffer-function, hpath:display-path-function,
     hpath:display-where-function): Added.
    (hpath:display-buffer): Added call to hpath:display-buffer-function.
    (hpath:find): Added call to hpath:display-path-function.

2019-10-04  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:to-markup-anchor): If anchor contains both a dash and a space, then
    don't convert dashes to spaces.

* hmouse-drv.el (hkey-help): Added display of ibtype or actype (for explicit buttons).

* hact.el (actype:def-symbol):
* hbut.el (ibtype:def-symbol): Improved doc strings.
          (htype:def-symbol): Added.

==============================================================================
V7.0.8 test release changes ^^^^:
==============================================================================

2019-10-01  Bob Weiner  <rsw@gnu.org>

* hact.el (htype:delete): Removed improper quote in (fboundp 'sym) call.
          (htype:symbol): Reverted to prior version which properly creates
    previously undefined Elisp symbols, thereby fixing htype:create.
          (actype:create): Made symtable:add call part of compile-time macro value.

2019-09-24  Mats Lidell  <matsl@gnu.org>

* Makefile (ELC_COMPILE): Added missing kprop-em.elc.

2019-09-23  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:link-directly): Called symtable:actype-p replacing invalid
    htype:actype-p call.

* hmouse-drv.el (hkey-buffer-move): Wrapped (require 'windmove) in eval-and-compile
    to remove a byte-compiler warning.

2019-09-22  Bob Weiner  <rsw@gnu.org>

* hact.el (action:path-args-rel): Added file-name-directory call so always
    sends a directory as the second argument, preventing off-by-one level
    of relative directory generation.

2019-09-19  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibtype:def-symbol): Added.

* hact.el (actype:def-symbol): Change mislabeled 'sym-name' to 'name'.

2019-09-18  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:top-cells): Removed (kvspec:activate)
    which was using the unchanged viewspec that improperly set the view.

* hibtypes.el (action): Updated to handle boolean function results.
  hactypes.el (display-boolean): Added to display the result of Action ibtypes
    boolean function calls.
  man/hyperbole.texi (Action Buttons): Added paragraph on boolean
    predicate result display.

==============================================================================
V7.0.7 test release changes ^^^^:
==============================================================================

2019-09-17  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:action):
  hui-mini.el (hui:menu-item):
  hibtypes.el (hyp-source):
  hargs.el (hargs:at-p):
  hyrolo-logic.el (hyrolo-map-logic):
  hyrolo.el (hyrolo-grep-file): Undo adding second arg t to prin1-to-string
    call (meant to prevent string properties output) since has side effect
    of removing needed quote marks and changes the way buffers print which
    causes (hyp-source) matches to fail.

* hpath.el (hpath:to-line): Added and used in hpath:find and hpath:find-line.
           (hpath:find-line): Changed to save-restriction when move.
	   (hpath:shell-modes): Added and used in hpath:to-markup-anchor.

2019-09-16  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:line-and-column-regexp): Added.
           (hpath:markup-link-anchor-regexp): Added group number to doc.
	   (hpath:find): Added support to jump to line and optional
    column based on :line-num:col-num path suffix, even when preceded
    by a link anchor.

2019-09-15  Bob Weiner  <rsw@gnu.org>

* hmouse-tag.el (smart-lisp-at-tag-p): Ignore any leading '<' character
    from action buttons or other links, i.e. only when followed by an
    alphabetic character.

* hibtypes.el (action): Moved to near highest priority so embedded
    paths or other constructs do not match first.

* hact.el (symset:create): Added.  Can be used to manually test out
    different ibtype activation priorities.

* hibtypes.el (pathname-line-and-column): Moved to higher priority
    than grep, debugger and stack frame matches, so optional col
    number is not ignored.

* hpath.el (hpath:markdown-section-pattern): Added '*' as a section prefix
    and allowed for leading whitespace.

* hbut.el (ibut:at-p): Ignore any invalid null ibtype entries.

* hact.el (htype:category, htype:names): Simplified and speeded up.  Don't
    check existence of types.  Only valid types should be in
    the type category list.

* hbut.el (hattr:report): Changed intern call to make-symbol.

* hact.el (actype:elisp-symbol, actype:def-symbol): Added.
  hui.el (hui:ebut-message, hui:actype, hui:link-create): Changed
    to use above two functions.

2019-09-14  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:link-directly):
  hbut.el (ibut:at-p):
  hact.el (actype:act, actype:action, actype:create, actype:delete,
           actype:action-body, actype:interact, ibtype:create,
           ibtype:delete, htype:category, htype:delete, htype:symbol):
    Changed to use new, faster symtable instead of symset.

* hact (actype:action): Fixed to handle regular Elisp functions properly.

* set.el: Changed doc strings to imperative form.  Explained in the
    commentary that set:add can create a new single element set if the
    set passed is nil (empty).
         (set:empty): Added to test for emptiness.

* hact.el (symtable): Added to speed checks of whether a symbol is an
    existing Hyperbole type or not.  Created symtable:ibtypes and
    symtable:actypes to hold the categories of types.
* hact.el (actype:obarray): Added and filled in actype:create to speed
    checks of whether a symbol is an actype.

2019-09-13  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:to-markup-anchor): Added buffer-name to error messages as
    may be called when a buffer is temporarily selected.

2019-09-12  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:find): Changed to return buffer if path is displayed
    within a buffer and not externally (used to return t).  Added
    third parameter 'noselect' flag to return a buffer attached
    to the parsed filename but not to display it.
           (hpath:find-noselect): Added.
	   (hpath:normalize): Added and used in link-to-e/ibutton

2019-09-11  Bob Weiner  <rsw@gnu.org>

* hmouse-tag.el (smart-emacs-lisp-mode-p): Added change-log-mode so
    Elisp symbols there are matched.

* hmouse-tag.el (smart-lisp-at-definition-p): Don't match to 'def' alone.

2019-09-10  Bob Weiner  <rsw@gnu.org>

* hact.el (actype:action-body): Renamed from actype:action.
          (actype:action): Return action function symbol whenever possible

* hibtypes.el (hlink): Fixed to include link type in ibut:label-set call.

* hbut.el (gbut:help): Added labeled implicit button support.

* hargs.el (hargs:reading-p): Updated doc string.

2019-09-02  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:to): Point might be on closing delimiter of ibut in which
   case ibut:label-p returns nil; moved back one character to prevent this.
   Also changed wrong ibut:label-p call to proper ibut:at-p call to
   compare ibut key value at point to search match.

* hpath.el (hpath:substitute-value): Handled case where path does not
    include a directory separator after the variable name since the
    variable itself does, e.g.
    "${hyperb:dir}DEMO#POSIX and MSWindows Paths".  Also works if path
    separator is included.

* hui.el (hui:gbut-create, hui:gbut-modify): Fixed so that when link button paths
    are created, they are normalized and made absolute based upon the
    current buffer's default directory, not the global button file directory.
  hact.el (action:path-args-rel): Prior to button data storage, make absolute
    paths relative to the default-directory of their button file, not the current
    directory.

* hpath.el (hpath:find): Improved default-directory handling.

* hpath.el (hpath:relative-to, hpath:absolute-to):
  hactypes.el (link-to-file, link-to-file-line, link-to-file-line-and-column):
    Remove any double quotes and whitespace at the start and end of the path
    that interactive use or key series may have introduced.
  hactypes.el (link-to-file): Rewrote for use with global buttons where the button
    source directory is different than the link-to directory.  If path is not
    absolute, add its link-to directory to it.

* hibtypes.el, hpath.el: Added require of subr-x for string-trim function.
  hpath.el (hpath:trim): Added.

* hpath.el (hpath:is-p): Fixed failure to expand variables when path contains
     a [#,] suffix.

2019-08-31  Bob Weiner  <rsw@gnu.org>

* XEmacs: Removed support since no one uses it anymore.

* hbdata.el (hbdata:build): Fixed bug where int was sent to concat.

* hbut.el (ebut:operate): Fixed bug that caused hui:gbut-create to
    create buttons in the wrong place, sometimes in the middle of
    other buttons.  Added (and (not curr-label) (hmouse-use-region-p)
    calls to fix this.

* hib-kbd.el (kbd-key): Handled long key series up to 3000 characters
    with embedded elisp actions.

* hactypes.el (exec-shell-cmd): Fixed window handling accounting for
    pop-to-buffer call in shell function when shell is newly created.

* DEMO: Added sections on Button Files and Global Buttons.

2019-08-28  Bob Weiner  <rsw@gnu.org>

* hibtypes.el, hib-social.el, hib-debbugs.el: Changed from active to
    imperative tense.

* man/hyperbole.texi (Implicit Button Types): Added 'links' concept index entry.

2019-08-27  Bob Weiner  <rsw@gnu.org>

* DEMO: Changed most 'click' uses in DEMO to 'press'.

==============================================================================
V7.0.6 test release changes ^^^^:
==============================================================================

* man/hyperbole.texi (Implicit Button Type Summaries): Changed to Implicit
    Button Types.
                     (Implicit Button Type): Changed to Implicit Button
    Type Creation.

2019-08-26  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (hlink, parse-label-and-file): Added to allow for linking
    to Hyperbole butttons in other files and used in e/g/ilinks.

* hargs.el (hargs:delimited): Replaced cl evenp call with zerop and modulo.
  hibtypes.el (action): Replaced cl 'find' call with 'string-match-p'.

* Makefile (dev-install): Removed this target and replaced with 'bin'.  Added
   'src' target to setup to run from .el files only.  Updated help to explain
   how to run test code either from .el or .elc files.

==============================================================================
V7.0.5 test release changes ^^^^:
==============================================================================

2019-08-25  Bob Weiner  <rsw@gnu.org>

* Makefile (HYPERBOLE_FILES): Removed hyperbole-pkg.el and deleted that file
    which is now auto-generated.

* hactypes.el (exec-window-cmd): BUG FIX: Removed use of InfoDock 'new-shell'
    function which did not support provision of a buffer name for shell
    creation.  Also, called 'shell' command if existing shell buffer does not
    have a process and updated buf-name with the buffer returned by the
    'shell' command.
              (exec-shell-cmd): Applied similar changes.

* hpath.el (hpath:find): Changed modifier comparisons to use = and wrapped
    (load filename) in a 'hact' macro.
    (hpath:is-p): BUG FIX: Only temporarily strip any initial execution modifier
      character from the path so can be handled later by action types.

2019-08-24  Bob Weiner  <rsw@gnu.org>

* DEMO (Action Buttons): Added this new section to explain implicit action buttons.

* Merged in doc string change from active to imperative tense and updated
    the same in hibtypes.el and hactypes.el.

2019-08-23  Bob Weiner  <rsw@gnu.org>

* hactypes.el (display-variable): Added to display Elisp variable values.
  hibtypes.el (action:start, action:end, action): Added to allow in-buffer angle bracket
    delimited action/function calls/variable displays.
  hact.el (actype:act): Simplified logic and added support for printing variable values as an action.
          (actype:eval): Added to support action ibuts.

* hbut.el (hbut:act): Changed to use hrule:action setting.

* hbut.el (defact): Updated doc to reflect that action type functions may not return nil.
    Temporarily set hrule:action to #'actype:eval if you need a potential nil return.
  hactypes.el (eval-elisp): Updated doc-string to reflect it is for its side-effects and cannot
    return a nil value.

2019-08-22  Bob Weiner  <rsw@gnu.org>

* hmouse-tag.el (smart-lisp-identifier-first-char-regexp, smart-lisp-identifier-chars,
    smart-lisp-identifier): Added and used in smart-lisp-at-tag-p.

* hpath.el (hpath:is-p): BUG FIX: Move space normalization and variable substitution to beginning of
    function to apply to all paths given as inputs.  Expanded doc to explain this normalization.

2019-08-18  Bob Weiner  <rsw@gnu.org>

* hyperbole: Added second arg of t to most calls to prin1-to-string so properties are not utilized,
    notably when displaying @loc> locations.

* hversion.el: Change to using numeric test release codes instead of letters to ease version parsing.

2019-08-16  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:start-end): Added so implicit pathname buttons can flash when activated.

2019-08-14  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (elink, glink, ilink): Renamed from link-to-e/g/ibut.

2019-08-13  Bob Weiner  <rsw@gnu.org>

* hactypes.el (man-show): Eliminated infinite recursion and made work with latest
    Emacs man.el library.
              (link-to-ebut): Reversed order of args to match link-to-ibut.

2019-08-12  Bob Weiner  <rsw@gnu.org>

* kotl/kimport.el (kimport:copy-and-set-buffer): Made an autoload since M-x kotl-mode
    may call kfile;create which then calls this function.

* Change to use only 3 section version numbers for elpa compatibility.  Test releases
    change the 3rd section and production releases change the second.

==============================================================================
V7.0.4 test release changes ^^^^:
==============================================================================

2019-08-06  Bob Weiner  <rsw@gnu.org>

* hyrolo-menu.el (infodock-hyrolo-menu): Fixed Edit-Rolo to call a function rather than an sexp.

==============================================================================
V7.0.3b test release changes ^^^^:
==============================================================================

2019-08-05  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:rgrep-command): Changed to use zgrep only when it is the BSD version,
    since only that one supports the options needed by Hyperbole.

2019-07-28  Bob Weiner  <rsw@gnu.org>

* DEMO, man/hyperbole.texi (Implicit Button Types): Updated to expanded Org mode support.

* hib-kbd.el:
  man/hyperbole.texi (Implicit Button Types, Glossary): Changed hib-kbd
    key-sequence to key-series to indicate can be multiple key sequences.  Added
    def. to Glossary.
                     (kbd-key:doc): Changed to call hkey-help rather than trigger
    an error when key-series is not a single bound key sequence.

2019-07-23  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Referent Display): Rewrote and added details on how the 4 types
    of referents are processed.

2019-07-22  Bob Weiner  <rsw@gnu.org>

* hargs.el (hargs:at-p): Added hbut support (ebut or ibut).

* hui.el (hui:hbut-act): Generalized to handle both explicit and labeled implicit buttons.
         (hui:ebut-act): Added and replaced use of hui:hbut-act in menus.

* hbut.el (ebut:to, gbut:to, hbut:get): Added.

2019-07-21  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Implicit Button Types): Split off type descriptions to this new
    subsection and added these types: ripgrep-msg, ipython-stack-frame, link-to-ibut,
    link-to-gbut, link-to-ebut.
                     (Implicit Buttons): Added description and example of implicit button labels.
                     (Glossary): Updated Implicit Button and Global Button entries with changes.
  DEMO (Implicit Buttons): Added description and example of implicit button labels.
                     (Action Types): link-to-gbut, link-to-ibut - Added.

* hbut.el (gbut:act): Improved error message for implicit global buttons.

* hui-menu.el (infodock-hyperbole-menu): Implicit-Button/Label - Added to add a label.
    Implicit-Button/Rename - Added to rename the label of an implicit button.
  hui-mini.el (hui:menus): Added Ibut/Label and Ibut/Rename.

* hbut.el (hbut:key-to-label): Moved ebut:key-to-label body here and aliased that
    function to this hbut one since is now used by ibut:key-to-label as well.
          (hbut:label-to-key, hbut:key-src-set-buffer, hbut:key-src,
           hbut:key-src-fmt, hbut:key-src): Same change.
	   (ibut:rename): Added and used in hui:ibut-rename.

2019-07-18  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:label-separator): Added.

2019-07-17  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:alist, ibut:list, ibut:map): Added.
          (ebut:map): Moved body to hbut:map and called from ebut:map and ibut:map.
    Removed start-delim and end-delim arguments in ebut:map.

* hargs.el (hargs:at-p): Added support for reading ibutton labels.

2019-07-16  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:ibut-label-create, hui:ibut-rename, hui:ibut-message): Added.

2019-07-15  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (debugger-source): Handled Python tracebacks properly.

2019-07-14  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (link-to-ebut, link-to-gbut, link-to-ibut):
  hactypes.el (link-to-ibut):
  hbut.el (ibut:to): Fixed small logic errors with lbl-keys and save-excursion in these functions.

2019-07-13  Bob Weiner  <rsw@gnu.org>

* hsys-org.el (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.

* hibtypes.el (link-to-gbut, glink:start, glink:end): Added for in-buffer links to global buttons.
              (link-to-ebut, elink:start, elink:end): Added for in-buffer links to explicit buttons.
              (link-to-ibut, ilink:start, ilink:end): Added for in-buffer links to implicit buttons.

* hbut.el (ebut:label-p): Updated to better handle whether point is
    between specified delimiters.

2019-07-12  Bob Weiner  <rsw@gnu.org>

* hbut.el (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 currrent buffer by name.
          (ibut:to): Added to move to an implicit button in the current buffer
    matching a label key.

2019-07-11  Bob Weiner  <rsw@gnu.org>

* hargs.el (hargs:at-p): Added support for reading global button arguments.

* hactypes.el (link-to-gbut): Updated to handle global labeled implicit buttons.

* hbut.el (gbut:get): Added.

2019-07-10  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Invisible Text Searches): Added missing {M-s i} key sequence.

* hibtypes.el (Info-node): Modified to skip costly hpath:is-p if ref
    string is not of the right format.
              (hibtypes-path-line-and-col-regexp, pathname-line-and-column): Updated
    to handle Elisp variables with colons.

2019-07-09  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:at-p): Conditionalized on (not (hbut:outside-comment-p)).
          (hbut:map, ibut:label-map): Added.
	  (ibut:key-src, ibut:key-to-label, ibut:label-to-key, ibut:summarize): Added.
   Global, labeled implicit buttons now exist!

2019-07-08  Bob Weiner  <rsw@gnu.org>

* hbut.el (ibut:label-separator-regexp, hbut:outside-comment-p): Added doc
for expanded Org mode reference handling.

2019-07-01  Bob Weiner  <rsw@gnu.org>

* hbut.el (gbut:ibut-key-list): Added.

* hui.el (hui:hbut-term-highlight, hui:hbut-term-unhighlight): Fixed so
    save-excursion is outermost.

2019-06-29  Bob Weiner  <rsw@gnu.org>

* hbut.el (ebut:get, ebut:at-p, ebut:label-to-key, ibut:at-type-p): Simplified
    conditionals using 'when'.
          (ibut:label-start, ibut:label-end, ibut:label-p, ibut:get,
           ibut:next-occurrence, ibut:label-regexp): Added.
	   (hbut:label-regexp): Added to support labeled implicit buttons too.
           (ebut:label-regexp): Aliased to hbut:label-regexp.
	   (hbut:label-p): Updated to handle implicit button labels.

2019-06-23  Bob Weiner  <rsw@gnu.org>

* hsys-org.el: Added many new predicates and code to handle navigation between
    Org mode internal links and their targets, as well as radio target
    definitions and their links.
    (hsys-org-mode-function, hsys-org-mode-p): Added to determine when hsys-org actions
       are activated.

* hypb.el (hypb:region-with-text-property-value): Added and used in hysy-org.el.

* kotl/kfill.el (set-fill-prefix): Updated to better match standard Emacs functiion.

2019-06-22  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-add): Fixed bug in call to match-string-no-properties.

2019-06-21  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode): Set fill-paragraph-function rather than overloading
    fill-paragraph.
  kotl/kfill.el (kfill:fill-paragraph): Renamed and used only in kotl-mode.  Also
    temporarily set fill-paragraph-handle-comment to t and made prefix arg optional.
                (kfill:funcall): Removed.
                (kfill:function-table): Removed.
                (kfill:do-auto-fill): Temporarily set fill-paragraph-handle-comment to t.

2019-06-20  Bob Weiner  <rsw@gnu.org>

* hsys-org.el (org-link): Changed to call org-open-at-point which handles internal
    org links, fixing following links such as radio targets.
    (hsys-org-thing-at-p, hsys-org-target-at-p): Added.

* hpath.el (hpath:texinfo-section-pattern): Added and used in hpath:to-markup-anchor to
    jump to specific Texinfo sections.

2019-06-19  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Referent Display): Added doc of hpath:native-image-suffixes.

* hpath.el (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.

2019-06-18  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (grep-msg): Allowed for null char in place of first colon in colored grep output lines.

2019-06-17  Bob Weiner  <rsw@gnu.org>

* hactypes.el (link-to-gbut): Added.
  hui.el (hui:link-possible-types): Added link-to-gbut.

2019-06-16  Bob Weiner  <rsw@gnu.org>

* hyrolo.el: Replaced buffer-substring-no-properties with match-string-no-properties where possible.
             (hyrolo-hdr-and-entry-regexp): Changed to require whitespace following the entry prefix.
             (hyrolo-entry-group-number): Added.

2019-06-12  Bob Weiner  <rsw@gnu.org>

* hib-kbd.el (kbd-key): Fixed preceding character test to not depend on the buffer's syntax table,
    potentially missing kbd-key ibuts, notably ones using the universal argument.

* hbut.el (ibut:at-type-p): Added to test if point is on a specific type of implicit button.

* hib-kbd.el (kbd-key:normalize): Removed aggregation of C-u arguments into something like: C-u(16)
    as this no longer works in current Emacs and causes an error.  Now this just stays as "C-u C-u".

2019-06-11  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:format-quote): Modified to return non-string args as is rather than ignoring them so
    this can be used across any argument set.  Used in hypb:error.

2019-06-10  Bob Weiner  <rsw@gnu.org>

* htz.el (htz:date-parse): Fixed bug, missing seconds in format 4 leading to invalid time strings saved
    on MSWindows machines (and maybe more).  Allow for this in style 5 which is how Hyperbole stores dates.
         (htz:time-make-string): Chop off any spurious digits at the right.

* hactypes.el (link-to-ibut): Added.
  hui.el (hui:link-possible-types): Added ibut:at-p call for link-to-ibut.

2019-06-07  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (debugger-source): Added support for pytype package errors (close to Python pdb ones)

2019-06-06  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:find): Removed file-relative-name from error calls
    because does not work when current-directory and filename are on different
    drives under Windows at least through Emacs 26.
           (hpath:find): Fixed that default-directory was not set to current
       button's location, so path was expanded relative to another
       directory, notably in hpath:validate call.

2019-06-05  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:is-p): Tightened remote-path check to prevent matches that end with :line-num or :col-num.

2019-06-04  Bob Weiner  <rsw@gnu.org>

* hactypes.el (annot-bib): Changed to find referent from the end of the buffer rather than beginning,
    to avoid multiple earlier annot-bib buttons.
* DEMO (Hyperbole Source Buttons): Changed example button from annot-bib to kbd-key.

* kotl/kvspec.el (kvspec:hide-levels): Changed behavior so view updates to default level clipping when
    'l' is excluded from the viewspec.

2019-06-02  Bob Weiner  <rsw@gnu.org>

* kotl/kvspec.el (kvspec:lines-to-show): Changed behavior so view updates to default cell clipping when
    'c' is excluded from the viewspec.

* kotl/kotl-mode.el (kotl-mode:show-all): Limited (kvspec:update t) call to interactive usage only.
    When kotl-mode:show-all is called in kvspec:update-view, it doesn't overwrite the to be set viewspec.

* kotl/kvspec.el (kvspec:show-lines-per-cell)
                 (kvspec:show-lines-this-cell): Fixed viewspec 'c0' to expand visible cells properly.

2019-06-01  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (ipython-stack-frame): Added to handle ipython stack traces and exceptions.

2019-05-30  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hkey-maybe-global-set-key): Fix missing no-add argument
    to hkey-global-set-key call.

2019-05-26  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (hkey-alist): For Python files, use derived-mode-p and add
    support for helm-pydoc buffers.

==============================================================================
V7.0.3a test release changes ^^^^:
==============================================================================

2019-05-11  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (External Viewers): Commented out reference to mailcap use
    since it is presently not used (commented out in the code).

* hpath.el (hpath:find): Fixed filename and path ordering error when
    path contains a variable and a hash anchor.

* DEMO (POSIX and MSWindows Paths): Added this section.
* HY-WHY.kotl: Added a reference to that section.

2019-05-09  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-drag-item):
                (hmouse-click-to-drag-item): Added and thereby changed
    {M-o i} to trigger an error if not on an item to drag.  This also prevent
    Hyperbole explicit button creation from being invoked which can be
    confusing to users.
* DEMO (Displaying File and Buffer Items and Moving Buffers): Updated with
    {M-o i} change.

2019-05-07  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:directory-expand-alist: Added to store the reverse of
    each WSL mount-point for when converting from mswindows-to-posix.  Set
    in hpath:cache-mswindows-mount-points.
           (hpath:cache-mswindows-mount-points): Downcase all mounted Windows paths.
           (hpath:mswindows-path-posix-mount-alist): Added.

2019-05-05  Bob Weiner  <rsw@gnu.org>

* hmouse-tag.el (smart-jedi-find-file): Added.
		(smart-python-jedi-to-definition-p): Improved to use
    hpath:display-where to display target when possible, i.e. when the
    emacs-jedi project accepts our pull-request that adds this feature.

2019-04-22  Bob Weiner  <rsw@gnu.org>

* hversion.el: Pushed BW changes for 7.0.2c test update.

* hargs.el (hargs:delimited): Added exclude-regexp argument.
* hpath.el (hpath:delimited-possible-path): Used above new argument
   to prevent matching to strings that include string quotes.

2019-04-21  Bob Weiner  <rsw@gnu.org>

* man/hkey-help.txt: Added Company-mode and Treemacs entries.

* hui-window.el (hmouse-alist-add-window-handlers): Renamed from hui-window--register.

* man/hyperbole.texi (Smart Key - Company Mode): Added.

2019-03-11  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Implicit Buttons, gitlab-reference):
  DEMO (Gitlab (Remote) References): Added these sections.

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

* hui-window.el (smart-window-of-coords): Handled null coords parameter.

2019-02-10  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-drag-to): Fixed to match documentation that says will
    create an explicit file link button if called anywhere other than on
    a listing item.

* hui-treemacs.el (smart-treemacs-modeline): Replaced old call of
    treemacs-buffer-exists? with new calls to treemacs-current-visibility
    and treemacs-get-local-buffer for Treemacs V2.

2019-02-06  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (ripgrep-msg): Tightened match to ignore empty potential filenames
    that matched when they were expanded to the current directory.

2019-02-05  Bob Weiner  <rsw@gnu.org>

* hmouse-tag.el (smart-lisp-mode-p): Removed change-log-mode.
    (smart-lisp-at-change-log-tag-p): Added so can match
      only to bound Elisp entities in change-log-mode with '-' in
      the middle of their names to prevent false positives.
  hui-mouse.el (hkey-alist): Added tightened change-log-mode handling.
   man/hyperbole.texi (Smart Key - Lisp Source Code): Documented change.

* hargs.el (hargs:delimited): Fixed that strings on lines with an odd number
    of delimiters might fail to match.  Since strings can span lines but this
    function matches only strings that start on the current line, when
    start-delim and end-delim are the same and there are an odd number of
    delimiters in the search range, assume point is within a
    string and not between two other strings.
    For example, with the following text and point within "DEMO", its path
    previously was not found:
      For each site, the links are properly maintained.  See "DEMO#Path
      suffixes and Variables" and "DEMO#Path Prefixes".  "DEMO"

* hui-treemacs.el: Deleted treemacs-mode from aw-ignored-buffers so can select
    a Treemacs window via ace-window.

2019-02-04  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-dired-assist): Prevented any region selection from
    causing multiple files to be marked for deletion; we want to mark
    only one.

* hibtypes.el (annot-bib): Stopped this from activating when in org-mode to avert false positives.
              (markdown-follow-inline-link-p, markdown-internal-link): Added ibut:label-set
    to show a decent approximation of the button label when displaying help.

2019-02-03  Bob Weiner  <rsw@gnu.org>

* hversion.el: Pushed BW changes for 7.0.2b test update.

* hui-treemacs.el (treemacs-quit): Defined if treemacs doesn't and used.

2019-02-03  Mats Lidell  <matsl@gnu.org>

* hui-treemacs.el (treemacs-version): Require v2 or higher.

* hsettings.el (hyperbole-default-web-search-term-max-lines):
               (hyperbole-default-web-search-term): Added.

* hpath.el (hpath:tramp-file-name-regexp): Added and used in hpath:remote-at-p.

2019-02-02  Bob Weiner  <rsw@gnu.org>

* hsys-org.el (org-mode): Support derived modes too.

2019-01-31  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Keyboard Drags): Added doc of {M-o r <window-id>},
    replace selected window's buffer with that of another window.

* man/hyperbole.texi (Keyboard Drags):
  DEMO (Displaying File and Buffer Items and Moving Buffers):
    Added doc of {M-o m <window-id>}, swap selected window's buffer with
    that of <window-id>'s.

2019-01-30  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-drag-to): Fixed to handle the case where it is
    called but no drag has taken place, i.e. when invoked from the keyboard
    via Ace Window.

2019-01-29  Bob Weiner  <rsw@gnu.org>

* hargs.el (hargs:buffer-substring): Added and used in hargs:delimited to
    replace null char in colored grep output lines with a colon, so they are
    handled properly by the implicit buttons.

2019-01-27  Bob Weiner  <rsw@gnu.org>

* hversion.el (hyperb:microsoft-os-p): Renamed to this.

* hpath.el (hpath:cache-mswindows-mount-points):
    Added and called when Hyperbole is initialized, mainly to allow access to
    MSWindows network shares which would otherwise not be accessible as links
    under POSIX systems.
           (hypb:map-plist): Added to map over property lists.
    Called in hpath:cache-mswindows-mount-points.

2019-01-26  Bob Weiner  <rsw@gnu.org>

* hversion.el (hyperb:wsl-os-p): Added to test for use of Microsoft WSL.

* hpath.el (hpath:delimited-possible-path): Added optional include-positions parameter.

2019-01-21  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:mswindows-mount-prefix, hpath:mswindows-drive-regexp, hpath:mswindows-path-regexp,
    hpath:mswindows-to-posix, hpath:mswindows-to-posix-separators, hpath:posix-to-mswindows)
    hpath:posix-to-mswindows-separators, hpath:posix-path-p,
    hpath:substitute-posix-or-mswindows-at-point, hpath:substitute-posix-or-mswindows):
      Added to handle MSWindows paths under POSIX OSes, e.g. Windows Subsystem for Linux.
    (hpath:find-program): Commented out call to hpath:find-file-mailcap to prevent use of
      MIME external viewers on text files.
  hargs.el (hargs:delimited): Added call to hpath:mswindows-to-posix-path.
  hyperbole.el (hyperb:init): Abbreviated MSWindows mount point paths.

2017-12-29  Bob Weiner  <rsw@gnu.org>

* hsettings.el (inhibit-hyperbole-messaging): Moved this from hyperbole.el to here to prevent
    it being reset when hyperbole-toggle-messaging reloads the hyperbole library.

2017-12-20  Bob Weiner  <rsw@gnu.org>

* kotl/kexport.el (kexport:html-file-klink)
                  (kexport:html):
                  (kexport:html-replacement-alist): Added 'k' to precede klink HTML HREF
    references since these must start with a letter.

* hui-select.el (hui-select-get-region): Added this to be used in other libraries.
                (hui-select-get-region-boundaries): Added and used in hui-select-thing.

2017-12-19  Bob Weiner  <rsw@gnu.org>

* hib-social.el (github-reference, gitlab-reference): 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.

2017-12-19  Bob Weiner  <rsw@gnu.org>

* hib-social.el (github-reference): Added =item-id syntax.
                (gitlab-reference): Added to support Gitlab references.

2017-12-18  Bob Weiner  <rsw@gnu.org>

* hib-social.el (github-reference): Fixed resolution of these formats of issue reference:
    gh#gh-34 and gh#issue/34 (needed to be plural).

2017-12-17  Bob Weiner  <rsw@gnu.org>

* kotl/kfill.el: Eliminated use of filladapt.el since it causes kotl-mode filling errors.

* kotl/kfill.el (kfill:forward-line): Removed improperly used [] in skip-chars-forward.

2017-12-16  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:key-dir):
  hui-window.el (hmouse-at-item-p):
  hui-jmenu.el (hui-menu-buffer-mode-name): Simplified using buffer-local-value.

2017-12-15  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-throw): Fully resolved temporary display of newly created frames
    with a (redisplay t) to force display of any window updates during the temporary
    display.

2017-12-13  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-throw): Partially solved temporary display of newly created frames
    (when not given focus initially with a '(no-focus-on-map . t) property), so hkey-throw
    to a new target frame now temporarily displays the target frame and then makes the start
    frame the uppermost frame.  When on an item though, the item is not visible during the
    temporary display yet.

* Makefile (texinfo): Added texinfo dependency target and added additional image dependencies
    in man/im.

* hyperbole.el (require 'hmouse-drv): Changed from hmouse-key to prevent a require cycle
    during macro expansion.
  hmouse-key.el: Changed requires to just be during compile since hyperbole.el now includes
    these requires and will load hmouse-key.

2017-12-12  Bob Weiner  <rsw@gnu.org>

* hversion.el: Pushed 7.0.2a test update.

* hmouse-drv.el (hkey-throw): Modified to show a message if the frame of release is
    different than the frame of depress, since this frame is typically hidden by
    the depress frame.

* hmouse-tag.el (smart-lisp-mode-p): Added change-log-mode since such files often contain
    Lisp references.

* hypb.el (hypb:select-window-frame): Added and used in hmouse-item-to-window.
          (hypb:save-selected-window-and-input-focus): Added and used in hkey-throw.

* kotl/kotl-mode.el (kotl-mode): Fixed setq close paren error that skipped 4 settings of
    paragraph-start, selective-display, selective-display-ellipses and track-eol.

2017-12-10  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Menu Commands, HyRolo Menu): Documented how to invoke the Koutliner and
    HyRolo popup menus in Emacs.

* hyrolo-menu.el (hyrolo-menubar-menu):
  kotl/kmenu.el (kotl-menubar-menu): For GNU Emacs, use standard binding of C-mouse-3 to popup
    mode-specific menu instead of mouse-3.

2017-12-08  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-ace-window-setup): Autoloaded since might be added to an init file
    before Hyperbole is loaded.

* hycontrol.el (hycontrol-quit-frames-mode, hycontrol-quit-windows-mode): Added conditionals
    to allow for quitting from help buffers with {q} while remaining in HyControl, e.g. if
    display a key binding help window.  Added {Q} binding to unconditionally quit from HyControl.

* hmouse-drv.el (hkey-buffer-move): Added directional movement commands that call this function.
    hkey-buffer-move-left, hkey-buffer-move-right, hkey-buffer-move-down and hkey-buffer-move-up.

2017-12-07  Bob Weiner  <rsw@gnu.org>

* hload-path.el (hyperb:emacs-p): Removed Emacs19 test.
                (hyperb:kotl-p): Removed since all versions of Emacs in use now support the Koutliner.

* hlvar.el - Removed this since colons are now handled by Emacs 26 in local variable names.

* hypb.el (hypb:rgrep): Added support for ripgrep.
  hibtypes.el (ripgrep-msg): Added implicit button support for ripgrep (rg) messages where
    the associated pathname is output once before all matching lines.
    See "https://github.com/BurntSushi/ripgrep".

2017-12-04  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hmouse-alist): Reload the def of this variable if its value is null.
    (hmouse-choose-windows): Added to perform cross-window drags, replacements and throws with 3 mouse
       clicks.

2017-12-03  Bob Weiner  <rsw@gnu.org>

* hui-treemacs.el: Removed replacements for treemacs functions; as of Treemacs 1.14, all needed changes are
    included.

2017-12-01  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-drag-stay, hkey-replace): Added for use as ace-window commands.
                (hkey-throw): Rewrote so if not on an item, then throws the current buffer.
    hkey-replace is the inverse, it grabs the specified buffer and places it into the selected
    window ({r} command key for ace-window).  hkey-drag-stay does a drag but leaves point
    in the originally selected window.
                (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): Added to click
    with the mouse twice on two different windows to select the windows using hmouse-choose-windows.
                (hkey-drag, hkey-drag-stay, hkey-drag-to, hkey-replace, hkey-swap, hkey-throw): Added and
    made interactive with ace-window window parameter selection.
                (hkey-buffer-to): Added to copy a buffer from-window to-window, using ace-window
    to select the windows.
                (hkey-swap-buffers): Added to swap buffers between from-window and to-window, using ace-window
    to select the windows.

* hui-treemacs.el (smart-treemacs): Added standard Hyperbole end-of-line scrolling support.

* hui-mouse.el (smart-company-to-definition, smart-company-help): Added to support company completion mode.
  hmouse-sh.el (hmouse-shifted-setup, hmouse-unshifted-setup): Added Action and Assist Key local bindings
    for company-mode for GNU Emacs.

2017-11-30  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Glossary): Added Jedi item with link to its home page.  Added link to the OO-Browser
    home page in its item.

* hmouse-tag.el (smart-python-jedi-to-definition-p): Added and called in smart-python to use the Jedi
    package when its server is running.  It jumps to the proper definition of multi-level module
    references definitions, e.g. a.b.c.  Also fixed error where the default action was not jumping to
    a tag definition at point because it was testing that the identifier parameter was non-nil (no
    identifier is sent in such usage).

* hui-mouse.el (hkey-alist): Moved smart-python prior to Imenu for more advanced definition lookups

* hyperbole.el (temp-buffer-show-hook, temp-buffer-show-function): Added Hyperbole hkey-help-show
    function rather than replacing any existing hook values.

2017-11-29  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (markdown-internal-link): Rewrote (and added support functions) to handle markdown
    infile links properly.  Previous use of markdown-do was removed because that now does things
    other than following links.

2017-11-28  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-help-show): Added conditionals to support org-mode org-goto *Org Help* buffer
    properly.

2017-11-27  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-ace-window-setup): Made new ace-window frames (window id = z) inherit the size
    of the prior selected frame; same as HyControl.

* hui-window.el (hmouse-kill-and-yank-region, hmouse-yank-region): Added select-frame-set-input-focus
    in case released in a different frame.

2017-11-26  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-throw): Restored input focus to start-win rather than just making it
    the selected window.
                (hkey-drag-to): Fixed predicate test to call hmouse-at-item-p instead of
    hmouse-drag-item-to-display and set input focus to release-window if dragging an item.

* hmouse-drv.el (hkey-ace-window-setup): Added deletion of i and t command bindings before
    adding them to aw-dispatch-alist.
                (hkey-throw): Fixed split line code typo here.
  hycontrol.el (hycontrol-frame-offset): Fixed typo.

==============================================================================
V7.0.3 changes ^^^^:
==============================================================================

2017-11-23  Bob Weiner  <rsw@gnu.org>

* hversion.el: Released 7.0.2.

* hui-window.el (hmouse-at-item-p): Added to test if on a draggable item.

* hmouse-drv.el (hkey-throw): Added to throw a drag item to a specific window via the
    ace-window package and the key sequence {M-o t <window-id>}, leaving the original
    source window selected.
* man/hyperbole.texi (Keyboard Drags): Added description of throwing an item.

* hui-mouse.el: Fixed a compilation time problem with when hmouse-alist was defined.

==============================================================================
V7.0.2 changes ^^^^:
==============================================================================

2017-11-22  Bob Weiner  <rsw@gnu.org>

* hversion.el: Released 7.0.1.

* hui.el (hui:buf-writable-err): Added previously unused func-name parameter to error msg.

* hypb.el (hypb:error): Fixed issue when a literal string with % characters in it was sent to format
    and triggered an error, e.g. when a buffer or file name contains a %.

* hmouse-drv.el (hkey-help-show): Limited local binding of {q} to hkey-help-hide only
    when in a help-mode (or derived) buffer.

2017-11-21  Bob Weiner  <rsw@gnu.org>

* DEMO (Displaying File and Buffer Items): Added description of ace-window integration.

* HY-WHY.kotl: Added link to Delimited Thing drags; mention of Treemacs

* man/hyperbole.texi (Smart Key - Treemacs): Added and updated with other improvements for this release.
                     (Keyboard Drags): Added this section and documented integration with ace-window package.

* hui-window.el (hmouse-modeline-click): Loosened check to allow a small movement between press and release
    as long as it is less than whatever amount of movement registers a drag (used to require exact pixel match).

* hmouse-drv.el (hkey-ace-window-setup): Setup keyboard-based display of items in windows specified by
    short ids.  See its doc string for how to use.
                (hkey-drag, hkey-drag-to): Added for mouse drag emulation via keyboard from a single
    function that uses the selected window point for depress location and the parameter RELEASE-WINDOW
    for the window and its point for release.  hkey-drag-to is useful as a command in the ace-window
    package's aw-dispatch-alist, e.g. {i} for insert item, because it leaves RELEASE-WINDOW selected.

* hui-select.el (hui-select-ignore-quoted-sexp-modes): Added so major modes to ignore for syntactic pair
    selection can be customized.
                (hui-select-at-delimited-thing-p): Changed to not trigger when on an Emacs button.

* hui-window.el (hmouse-drag-between-frames): Replaced calls to window-valid-p with window-live-p.
                (hmouse-drag-window-side, hmouse-drag-between-windows, hmouse-drag-same-window,
		 hmouse-drag-outside-all-windows, hmouse-drag-item-to-display,
		 hmouse-item-to-window): Added window-live-p checks for cases where a window has
    been deleted between depress and release.

* hmouse-drv.el (hmouse-window-at-absolute-pixel-position): Updated to support keyboard drag emulation.
                (hkey-help): Changed hkey-forms to use hmouse-alist instead of hkey-alist so mouse
    drags are accounted for when emulating drags from the keyboard and then invoking {C-h A} for help.
  hui-window.el (hmouse-drag-outside-all-windows): Triggered only if an action/assist-key press has
    occurred, e.g. could be called by hkey-help when no press has occurred.
                (hmouse-x-coord, hmouse-y-coord): Removed error when there is no valid coordinate and
    returned nil instead to support keyboard drag emulation help.

2017-11-20  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-absolute-pixel-position): Added and used in Action/Assist Key functions.
                (hmouse-set-point): Fixed hkey-operate bug by wrapping final (posn-at-point) in
    a list with an event type symbol so if called from a keyboard event, returns a proper format
    event.
                (hkey-operate): Changed so output messages only when called interactively.

* hui-treemacs.el: Added for Smart Key support of the Treemacs file manager.
                   (smart-treemacs): Added.
                   (smart-treemacs-modeline): Added to allow toggling of Treemacs display on
    Action Key clicks on buffer id of modeline.
  hui-mouse.el (hkey-alist, action-key-modeline-buffer-id-function): Added Smart Key treemacs
    package support.
  hui-window.el (action-key-modeline): Updated to call action-key-modeline-buffer-id-function.
  hactypes.el (link-to-buffer-tmp): Added optional 2nd parameter of POINT to display.

2017-11-19  Bob Weiner  <rsw@gnu.org>

* hui-window.el (hmouse-item-to-window): Added support for hmouse-drag-item-mode-forms sending
    a sequence of (buffer position) rather than just buffer.
                (hmouse-drag-item-mode-forms): Added support for dragging items from the treemacs
    hierachical file viewer package.

2017-11-17  Bob Weiner  <rsw@gnu.org>

* hyrolo.el (hyrolo-initialize-file-list): Fixed to set hyrolo-file-list.
            (hyrolo-retrieve-google-contacts): Updated to cache Google passphrase whenever Google contacts
    are used so the user is not prompted for his passphrase on every HyRolo search.
  man/hyperbole.texi (HyRolo Settings): Updated Google Contacts settings handling to document this caching.

* man/im/C-hh.png - Added showing Hyperbole mini-buffer menu prefix key binding.

2017-11-16  Bob Weiner  <rsw@gnu.org>

* hywconfig.el (hywconfig-delete-pop): Fixed bug that removed the ring entry before using it to restore
    the window configuration.

==============================================================================
V7.0.1 changes ^^^^:
==============================================================================

2017-11-15  Bob Weiner  <rsw@gnu.org>

* hversion.el: Updated to 7.0.0 for major release.

* smart-clib-sym: Removed file-newer Perl script dependency.
  file-newer: Removed.

* Makefile (help): Removed misplaced double quote characters.

* hui-window.el (hmouse-drag-window-side): Fixed coordinate error when drag release is outside of Emacs.

* hui-mouse.el (smart-helm-assist): Fixed message formatting bugs in hkey-debug message.

* hlvar.el (hack-local-variables): Changed from use of older inhibit-local-variables variable to newer
    (inhibit-local-variables-p) function call.

* Makefile (version): Removed HY-ANNOUNCE-SHORT from distribution.

* kotl/kexport.el (kexport:html): Changed to wrap cell contents in <PRE></PRE> tags if soft-newline-flag is nil
    rather than using <BR> hard newlines, so all cell formatting is preserved.  Also changed NAME attribute to
    ID for HTML5.

2017-11-14  Bob Weiner  <rsw@gnu.org>

* kotl/kimport.el (kimport:star-heading): Added and replaced use of hard-coded regexps in star outline importation.
    Also, stopped allowing leading whitespace before outline heading stars so can use indented stars as list items
    rather than outline headings.

* hibtypes.el (text-toc): Expanded file names to include DEMO and TUTORIAL.
  DEMO: Added Table of Contents and a section on using it, Table of Contents Browsing.

* hbut.el (ebut:label-p): Changed last parameter to limit search to two lines rather than one, so Info node matches can
    span two lines as they often do.

* HY-ABOUT: Added link to HY-WHY.kotl.
  HY-WHY.kotl: Added links to relevant DEMO sections throughout.
 DEMO (Koutliner): Updated this section.
  hui-menu.el (infodock-hyperbole-menu): Added Why-Use? entry.
  hui-mini.el (hui:menus): Added WhyUse entry to display HY-WHY.kotl, list of Hyperbole use cases.
  man/hyperbole.css (code, tt): Removed leading and trailing padding of 5px from code samples so display inline better.

2017-11-13  Bob Weiner  <rsw@gnu.org>

* hui-window.el (hmouse-drag-thing): Added error if drag ends within the delimited thing region, so user knows
    that this is an invalid drag.
                (hmouse-yank-region, hmouse-kill-and-yank-region): Made no-op unless hkey-region is non-nil.
    This handles the hmouse-drag-thing case when we want that predicate true (so no other predicate matches)
    but there is no region to copy or kill, e.g. when the release point is within the thing itself.

* hui-select.el (hui-select-delimited-thing): Fixed to match doc and work as a predicate.

* hui-window.el (hmouse-goto-depress-prev-point): Deleted since it duplicated hmouse-goto-region-prev-point.
                (hmouse-goto-region-prev-point): Added missing check for prev-point nil when setting loc.
    This caused the Smart Keys to fail when used if a Lisp backtrace was active.
                (hmouse-drag-thing): Erased any saved location of a region prior to Smart Key depress since
    now we have a new region location.  This prevents hmouse-kill-and-yank-region from jumping to the old
    location.  Also fixed edge cases where want to copy or move thing to the beginning or end of the thing region.
                (hmouse-goto-region-point): Renamed to hmouse-goto-region-prev-point, for clarity.
                (hmouse-kill-and-yank-region, hmouse-kill-region): Used value of point saved in hkey-value to determine
    the region if non-nil.

* hui-select.el (hui-select-delimited-thing, hui-select-thing): Changed to use use-region-p.
  hmouse-drv.el (hmouse-use-region-p): Added and used to improve hmouse-drag-thing.
                (hmouse-save-region): Simplified.
  hui-window.el (hmouse-drag-region-active): Changed call of region-active-p to hmouse-use-region-p.


* hui-window.el (hmouse-kill-and-yank-region): Fixed error that was testing not in depress buffer (as desired) but the
    buffer prior to depress.  Also protected insertion from syntax-directed indentation errors.

* hui-em-but.el
  hui-xe-but.el (hproperty:but-create-on-yank): Added as handler for yank-handled-properties so explicit buttons are
    re-highlighted when yanked after being killed.

2017-11-06  Bob Weiner  <rsw@gnu.org>

* hyrolo-demo.el (hyrolo-demo-quit): Added to unload hyrolo-demo code and used in demo.

* man/hyperbole.texi (Menus): Documented hyperbole-popup-menu.

* hui-menu.el (hyperbole-popup-menu): With a non-nil prefix arg, rebuild the Hyperbole popup menu in case it did
    not initialize properly for any reason.

* man/hyperbole.texi (Using URLs with Find-File): Added URL browser customization menu reference and image.
                     (Smart Key - WWW URLs): Added browse-url-browser-function and Cust/URL-Display reference.
		     (Referent Display): Added this section and documented display options for standard link referents.

* hyrolo-logic.el (hyrolo-map-logic): Removed improper outline test for old format Emacs outlines.
                  (hyrolo-fgrep-logical): Fixed to include sub-entries in logical searches.

* hib-kbd.el (kbd-key:mark-spaces-to-keep): Added to preserve spaces in (), [], or <> delimited sections of
    Hyperbole sequences of brace delimited keys; used this function in kbd-key:normalize.

2017-11-04  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-windows-grid-buffer-list): Replaced all uses of (eq major-mode 'dired-mode) with
    (derived-mode-p 'dired-mode) to generalize.

2017-11-03  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (HyRolo Settings): Added Google Contacts set up and use description.

* hyrolo.el (hyrolo-file-list-initialize): Made interactive and displayed a message with the resulting list
    if called interactively.  Added autoload.
            (hyrolo-initialize-file-list): Renamed from hyrolo-file-list-initialize.

* hui-window.el (hmouse-split-window): Changed to split selected window parallel to its shortest dimension.

* DEMO: Added new section on HyRolo.
  DEMO-ROLO.otl: Added.
  hyrolo-demo.el: Added with the functions hyrolo-demo-fgrep and hyrolo-demo-fgrep-logical.
  hyrolo-logic.el (hyrolo-map-logic): Fixed issue where a buffer was required but a buffer name was
    given as an argument preventing search from matching.
                  (hyrolo-fgrep-logical): Fixed that logical searches were not forced to case insensitive
    to match hyrolo-fgrep.  Also updated to handle non-logical string searches.

* hbut.el (ebut:operate): Fixed issue where user had selected a region to use as a button label but then
    the same text was inserted when the label was created.  Solved by moving point to the beginning of
    any marked region so buffer text comparison succeeds.

* hui-window.el (hmouse-x-coord, hmouse-y-coord): Simplified logic in GNU Emacs clause.
                (hmouse-emacs-modeline-event-p): If a drag release was to an unselected frame mode-line,
    on click-to-focus systems, the release event will not include the mode-line area when release was on
    the mode-line, so manually compute if that was the location.

2017-11-02  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-help): Fixed that arguments were being stripped from action calls in the help
    output.

* hibtypes.el (pathname): Fixed to handle "-subr.elc" whose prefix character "-" tells Hyperbole
    to load, not display subr.elc.  Also handled subr.el.gz compressed source files.

* hib-kbd.el (kbd-key): Prevented matches to brace delimited things that are not preceded by
    whitespace or at the beginning of buffers, e.g. ${variable}.

* man/hyperbole.texi (Implicit Buttons): Added examples.
  hib-kbd.el (kbd-key): Improved doc.

* hibtypes.el (hyp-address): Fixed to grab email address using thing-at-point and work in mail-mode
    not just whatever mode hmail:composer is.
              (Info-node): Added check for ``dual single quotes'' used in Texinfo smart quotes.

* hpath.el (hpath:substitute-value):
           (hpath:substitute-dir): Fixed to handle unbound symbol names.  This fixed an error when an
    environment variable matched a symbol but the symbol was unbound, e.g. (hpath:substitute-value
    "${PATH}/python")

* hmouse-tag.el (smart-lisp-at-definition-p): Fixed to ignore lines like: (default (find-tag--default))
    so the function in that line can be found as a tag.

* HY-NEWS: Updated for next major release

* man/hyperbole.texi (Button Colors): Added doc on hproperty:but-highlight-flag.
                     (Hook Variables): Added doc of: action-key-depress-hook, action-key-release-hook,
    assist-key-depress-hook and assist-key-release-hook.

* hsettings.el (hproperty:but-highlight-flag): Added as a setting.
  hui-em-but.el (hproperty:but-highlight-p): Renamed to hproperty:but-highlight-flag.
                (hproperty:but-emphasize-p): Renamed to hproperty:but-highlight-flag.
  hui-xe-but.el (hproperty:but-highlight-p): Renamed to hproperty:but-highlight-flag.
                (hproperty:but-emphasize-p): Renamed to hproperty:but-highlight-flag.

2017-11-01  Bob Weiner  <rsw@gnu.org>

* hib-kbd.el (kbd-key:special-sequence-p): Added and used in implicit button type kbd-key and kbd-key:act.
             (kbd-key:key-and-arguments): Added to allow for key sequences with interactive arguments and
    added an example in DEMO.

* hui-mini.el (hui:menus):
  hui-menu.el (hui-menu-key-bindings): Added Find Web and Jump Thing key binding change entries.

* hyperbole.el (mouse-position-function): Added this setting to make mouse-position and mouse-pixel-position
    always return the selected frame.

* hsettings.el (helm-allow-mouse): Changed to require Hyperbole-modified branch of Helm named global_mouse
    and set helm-allow-mouse to the proper value of 'global-mouse-bindings.

* man/hyperbole.texi (Version): Updated to 6.0.2g and rebuilt output formats.

* hui-window.el (hmouse-prior-active-region): Changed to call use-region-p rather than active-region-p, for a tighter test.
    This is used as a predicate; fixed bug that moved point, causing Smart Key release logic to use the wrong point.

* hmouse-key.el (hmouse-add-unshifted-smart-keys): Removed GNU Emacs-only dependencies.

* kotl/kotl-autoloads.el: Renamed from kotl/kotl-loaddefs.el to match package autoload naming scheme.

* hmouse-sh.el (hmouse-unshifted-setup): In Info-mode, Emacs uses key-translation-map to link mouse-1 to do whatever
    mouse-2 does but because Hyperbole uses both down and up bindings on mouse2, this does not work.  So we rebind
    mouse-1 and double-mouse-1 in Info mode to be actual Action Mouse Keys (which makes them follow Info
    links/cross-references properly, doing a superset of what they did before).
               (hmouse-posn-set-point): Added to handle frames rather than windows returned by some events; used in
    hmouse-move-point-emacs.

* hui-mouse.el (hmouse-tag): Added require of hmouse-info and hmouse-tag for smart-info, smart-lisp etc. when autoload
    file is not available.

* hmouse-sh.el (hmouse-bind-key-emacs):
  hui-select.el (hui-select-initialize): Added missing double-down-* and triple-down-* bindings.

2017-10-31  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hyperb:init): Added an "Initializing Hyperbole..." message at the beginning of this function.
    Removed 'Hyperbole loading' message at the beginning of this file since Emacs load function outputs a similar
    message.  Moved Hyperbole 'ready for action' message here rather than at the end of this file since Hyperbole
    initialization may be deferred until after Emacs initializaton time.  Hyperbole init. is complete only after
    this function is run.

2017-10-30  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Glossary): Removed mention of old remote file access packages: ange-ftp and EFS.  Use Tamrp only
    now.
                     (Searching and Summarizing): Renamed from Location.

* hibtypes.el (mail-address): Made lower priority than pathname so when an email-like user@domain is part of a remote
    pathname, this won't trigger.

* hpath.el (hpath:remote-at-p): Fixed to return /ftp: prepended to ftp paths since Tramp requires it.
           (hpath:rfc): Prepended /ftp: to value so tramp recognizes it as a remote file path.

* man/hyperbole.texi (Smart Mouse Key Modifiers):
  hmouse-mod.el: Disabled this feature since it conflicts with present Emacs bindings of Control- and Meta- mouse keys.

* hui-mini.el (Doc/Manifest):
  hui-menu.el (Documentation/Manifest): Changed to use hypb:display-file-with-logo so can quit after viewing.

* hversion.el (id-browse-file): Changed alias from find-file-read-only to view-file.
  hui-mini.el (Doc/SmartKeys): Changed command used to match that used when same doc is displayed with a click at the right
    of a modeline.

* man/hyperbole.texi (Smart Keys): Added section on Smart Mouse Key Drags to match those in the DEMO file.
                     (Global Key Bindings): Replaced hkey-toggle-bindings with proper reference to
    hyperbole-toggle-bindings.
                     (Smart Key Bindings): Included 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.

2017-10-27  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.css: Added to format HTML version of the Hyperbole manual like the Hyperbole web page, greatly improving
    its appearance.

* man/hkey-help.txt:
  man/hyperbole.texi (Modeline Clicks and Drags):  Documented new drag below.
  hui-window.el (hmouse-alist): Added context of a drag from a window with a release to a modeline which for Action Mouse
    Key splits the release window (which contains the modeline) and then displays the item or the buffer from the depress
    window in the release window.  With the Assist Mouse Key, just swaps buffers with no new window creation.

                (hmouse-modeline-click): Updated to do full testing for a click, so this can be called at any point
    after Smart Mouse Key release.
                (hmouse-buffer-to-window, hmouse-item-to-window): Added optional boolean new-window parameter to force
    a new window before buffer display.
                (hmouse-split-window): Added.
		(hmouse-modeline-event-p): Fixed conditional error that caused fall through past Modern GNU Emacs clause.
		(action-mouse-key, assist-mouse-key): Set above new variables.
                (action-key, assist-key): Added clear of any value of *-key-depress/release-position.
  hmouse-drv.el (action-key-release-position, assist-key-release-position): Added these to compare to existing
    *-key-depress-position value.

* README.md, HY-ANNOUNCE: Updated for public release.

2017-10-26  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Smart Mouse Drags outside a Window): Added this new section.
    Updated manual with all new drag actions.

* hui-window.el (hmouse-goto-region-point, hmouse-prior-active-region): Rewrote these to work properly so that Smart
    Mouse yanking and killing feature works as documented.  Previously, it was not switching to the buffer of the
    depress point when checking for an active region.

* hmouse-drv.el: Updated doc.

* MANIFEST (topwin): Renamed to topwin.py.

* hycontrol.el (hycontrol-windows-grid): Improved doc.

* hyperbole.el (hkey-initialize): Added global {C-c @} binding to hycontrol-windows-grid.
  hui-mini.el (hui:menus): Under cust-keys, added GridOfWindows key change entry.
  hui-menu.el (hui-menu-key-bindings): Added Grid-of-Windows-Key entry.
  man/hyperbole.texi (Global Key Bindings): Documented this binding.

* DEMO (Modeline Mouse Clicks): Added section, "Running Dired on the Current Directory".

* man/hyperbole.texi (Smart Key - Image Thumbnails): Added this section.
                     Wrapped all images with @example and removed @center so do not appear way to the left of text when
    formatted as html.
                     (Koutliner): Centralized all key binding index entries under "koutliner, ".
		     (Glossary): Added Windows Grid entry.
		     (HyControl): Added Concept Index entries.
		     (Manual Overview): Improved pointer to DEMO.

* hycontrol.el (hycontrol-windows-grid-rows-columns): Renamed to hycontrol-make-windows-grid.
               (hycontrol--frames-prompt-format, hycontrol--windows-prompt-format): Changed FRAME: and WINDOW: prompt
    to plural to match mode and variable names.

2017-10-25  Bob Weiner  <rsw@gnu.org>

* hycontrol.el: Extended initial commentary with new features and improved explanations.
                (hycontrol-split-windows-rows-columns): Modified to temporarily exit HyControl mode if need
    to read a rows-columns argument.
                (hycontrol-split-windows-buffer-list, hycontrol-split-windows, hycontrol-split-windows-by-major-mode
                hycontrol-split-windows-repeatedly, hycontrol-split-windows-rows-columns): Renamed by replacing
    'split-windows' with 'windows-grid'.
                (hycontrol-window-minimize-lines): Previously did not resize window if it could not display all of the
    buffer lines in the window.  Now will resize to 1 line if cannot or if all lines are already displayed.
                (hycontrol-split-windows-buffer-list): Added doc string.

* DEMO (HyControl): Added interactive examples of newest HyControl commands.

* hui-window.el (hmouse-goto-depress-prev-point): Fixed to handle when no prev-point is saved.
                (hmouse-drag-region-active): Return nil if no prev-point saved.

* hpath.el (hpath:is-p): Fixed to handle single % in path argument when sent as format string near the
    end of the function.

* hib-kbd.el (kbd-key:normalize): Quoted % characters as %% to prevent format from treating them specially.
             (kbd-key:hyperbole-hycontrol-key-p): Added to match key sequences within HyControl since
    its prefix arguments are specified without C-u or ESC or META prefixes.
             (kbd-key, kbd-key:act): Used above function here.

* hmouse-drv.el (hkey-either): Fixed to ignore prefix args set by HyControl.

* hyperbole.el (hkey-initialize):
  hui-menu.el (hui-menu-key-bindings): Changed {C-c \} entry from hycontrol-windows to new hycontrol-enable-windows-mode.

2017-10-24  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Version): Updated to 6.0.2f and rebuilt output formats.

* hycontrol.el (hycontrol-universal-arg-digit): Removed first argument and replaced with global hycontrol-arg,
    so could set this value internally.

               (hycontrol-debug): Renamed from hycontrol--debug.  Made public so can be set directly.
               (hycontrol-setup, hycontrol-frames, hycontrol-windows): : Removed debug parameter; no longer needed since
    all events are handled normally by Emacs now.

               (hycontrol-windows-mode-map): [ and ] bindings; don't call these interactively because a prefix arg of 1
    tries to make one window 1 line tall.

               (hycontrol-split-windows-repeatedly): Added to allow rapid visual testing of various window layouts until
    satisfied.

               (hycontrol-post-command-hook): Made this automatically quit from HyControl whenever a minibuffer prompt
    becomes active so can use regular keys to type.

	       (hycontrol-invert-mode-line-flag, hycontrol-invert-mode-line): Added to invert mode-line to emphasize the
    special key bindings in effect in HyControl modes.

2017-10-23  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-split-windows-buffer-list): Added to prefix buffer-list with any marked items
    when in a Dired, Buffer-Menu or iBuffer listing buffer.  If any such items exist, the buffer-list
    is not filtered by hycontrol-display-buffer-predicate-list.

               (hycontrol-pre-command-hook): Added and changed setting of prefix-arg to pre-command-hook.  This set it
    properly for HyControl commands.

               (hycontrol--prompt-format): Added to generalize help prompt handling.
               (hycontrol-post-command-hook): Replaced windows and frames post-command-hook with this one.

               (hycontrol-frames-mode, hycontrol-windows-mode): Made these global minor modes and added their
    variables to the hyperbole-screen group.  Buffer local minor modes renamed to hycontrol-local-*-mode.
               (hycontrol-quit-frames-mode, hycontrol-quit-windows-mode): Changed defs to disable its global
    minor mode.

               (hycontrol-post-command-hook): Fixed so HyControl help messages are not logged to the
    *Messages* buffer.

               (hycontrol-disable-modes): Added.

* set.el (set:create): Added autoload in case is ever used without a require.

* hycontrol.el (hycontrol-split-windows, hycontrol-split-windows-rows-columns, hycontrol-split-windows-by-major-mode):
    Incredible new autoloaded commands that split a frame into a number of balanced
    windows specified by rows and columns (typically as prefix arg
    digits).  Each window shows a different buffer, if possible, with the
    by-major-mode command preferring buffers with the specified major mode.  The hycontrol-split-windows
    chooses the by-major-mode command when given a prefix arg of 0; otheriwse, the rows-column one.
               (hycontrol-window-display-buffer, hycontrol-display-buffer-predicate-list)
                hycontrol--invert-display-buffer-predicates): Added to support new commands.
               (require 'set): Added for set:create used in hycontrol-split-windows-by-major-mode.
               (hycontrol-*-mode-map): Bound {@} to hycontrol-split-windows-rows-columns, also in Buffer-menu,
    IBuffer and Dired modes.

* hycontrol.el (hycontrol--initial-which-key-inhibit): Added.
               (hycontrol-end-mode, hycontrol-frames, hycontrol-windows): Used above flag.

	       (hycontrol-setup): Refactored common parts of hycontrol-frames and hycontrol-windows here.
	       (hycontrol-frames-setup, hycontrol-windows-setup): Added and used in
    hycontrol-frames and hycontrol-windows, respectively.

2017-10-22  Bob Weiner  <rsw@gnu.org>

* Makefile ($(pkg_dir)/hyperbole-$(HYPB_VERSION).tar): Ensured `topwin.py' script was made executable.
  hmouse-drv.el (hmouse-window-at-absolute-pixel-position): Changed to find `topwin.py' executable in
    hyperb:dir so no additional installation is necessary.

* hycontrol.el (hycontrol-window-to-new-frame): Fixed to duplicate prior selected window size properly.

* hui-window.el
  man/hkey-help.txt: Noted that a modeline click on a dired Buffer ID shows the parent directory.

2017-10-20  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-help-flag):
               (hycontrol-toggle-help): Added to allow toggling minibuffer key binding help off.
	       (hycontrol-frames-mode, hycontrol-windows-mode): Made HyControl modes into minor modes.
               (hycontrol-enable-frames-mode, hycontrol-enable-windows-mode): Renamed from
    hycontrol-toggle-to-*-mode.
  man/hyperbole.texi (HyControl): Updated documentation with these changes.

* hbut.el (ibtype:create): Expanded this doc for defact, explaining how actions are connected to its
   'at-p' parameter.

* hycontrol.el (hycontrol-abort-mode): Added and used when {C-g} is pressed; exits HyControl
    and executes (keyboard-quit).
               (hycontrol-end-mode, hycontrol-quit-frames-mode, hycontrol-quit-windows-mode,
                hycontrol-toggle-to-frames-mode, hycontrol-toggle-to-windows-mode): Added
    and used as key bindings.
    (hycontrol-exit-mode): Deleted and replaced with above commands.

    (hycontrol-frame-fit-to-screen): Changed to adjust width and height separately which fixed
      a bug in our call to set-frame-size which kept increasing the frame height slightly.

    (hycontrol-frames, hycontrol-windows): Prevented `which-key' package from popping up its key
       help and interferring with the minibuffer message while in HyControl.  Otherwise, the
       which-key help could be left onscreen after a quit of HyControl.

* hui-window.el (hmouse-pulse-flag): Made t the default because timing and display issues with
    pulsing drag items were resolved now.

2017-10-19  Bob Weiner  <rsw@gnu.org>

* Makefile (pkg): Changed hyperbole source dir from hyperbole-<version> to hyperbole since that
    is the name of the git repo top-level directory from which packages are now built.

* hui-jmenu.el (hui-menu-hywconfig): Fixed improper variable reference that kept Delete-Name
    and Restore-Name from ever being active.

2017-10-19  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Version): Updated to 6.0.2e and rebuilt output formats.

* hycontrol.el (hycontrol-frame-adjust-widths, hycontrol-frame-adjust-heights,
    hycontrol-frame-adjust-widths-full-height, hycontrol-frame-adjust-heights-full-width,
    hycontrol-set-width-percentage-full-height, hycontrol-set-height-percentage-full-width,
    hycontrol-frame-widths-pointer, hycontrol-frame-widths, hycontrol-frame-heights-pointer,
    hycontrol-frame-heights: Added to cycle through resizing height or width of frames to
      common sizes.  Also cycle through one dimension while fixing the other dimension
      at full-screen size.
    (hycontrol--frames-prompt-format): Added {a} and {A} bindings to both frames and windows
        keymaps to adjust frame width and height respectively by cycle through a list of common
        fixed percentages such as 25% and 50%.  Added to Hyperbole manual.

2017-10-18  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-restore-frame-configuration, hycontrol-restore-window-configuration,
                hycontrol-save-configurations, hycontrol-delete-other-frames,
                hycontrol-delete-other-windows, hycontrol-clone-window-to-new-frame
                hycontrol-make-frame): Made interactive.
               (hycontrol-frames, hycontrol-windows): Forced arg to numeric value on entry.
    	       (hycontrol-stay-in-mode, hycontrol-universal-arg-digit,
	        hycontrol--debug, hycontrol--exit-status, hycontrol-arg,
		hycontrol--frames-prompt-format, hycontrol--windows-prompt-format,
		hycontrol-frames-pre-command-hook, hycontrol-windows-pre-command-hook,
		hycontrol-frames-mode-map, hycontrol-windows-mode-map, hycontrol-exit-mode): Added.
	       (hycontrol-prettify-event, hycontrol-handle-event): Removed.

	       (hycontrol-frames, hycontrol-windows): Rewrote HyControl to use a frame-mode
   and window-mode transient keymap which allows for regular key bindings and eliminates
   the need for a HyControl event loop and processing of non-HyControl events.  There should
   be no change in HyControl user-visible behavior from this other than that key bindings
   may now be customized (remember to update the HyControl minibuffer prompts if you do change
   any).  And mouse wheels now work for fast multi-window scrolling.

2017-10-17  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-screen-offset-alist, hycontrol-set-screen-offsets,
                hycontrol-display-screen-offsets):
    Changed ordering of items to match Emacs window-edges and frame-edges.
               (hycontrol-fit-to-screen): Added and used to ensure resized and repositioned
    windows fit on the screen.
               (hycontrol-set-frame-height, hycontrol-set-frame-position, hycontrol-set-frame-size,
                hycontrol-set-frame-width): Added with calls to hycontrol-fit-to-screen.

* man/hyperbole.texi: Removed InfoDock and XEmacs references since they are so old and no
    longer maintained that no one uses them today.

* hmouse-sh.el (hmouse-unshifted-setup): Changed to enable right mouse key as Assist Key unless
    optional argument MIDDLE-KEY-ONLY-FLAG is non-nil (which is how it is called from
    hmouse-shifted-setup).

* hycontrol.el (hycontrol-frame-percentage-of-screen): Automatically adjusted out of bounds
    percentages to the closest number of 0 and 0.998 (so does not overflow screen.
    Automatically moved frame if right or bottom edges are offscreen as a result of size change.

* DEMO (Dragging Buffers and Windows): Renamed this from 'Moving Buffers' and added subsections.

2017-10-16  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Smart Key Modeline Clicks): Renamed from Smart Key Modeline.  Added
    up-to-date info on click locations and actions.
                     (Implicit Buttons): Added git-reference, git-commit-reference and
    github-reference.
                     (Future Work): Added Direct Manipulation section.
		     (Smart Keys): Moved before Buttons chapter since Buttons references
    Smart Keys and the benefits of Smart Keys are quicker to understand.

* hui-mouse.el (smart-dired, smart-dired-assist): Made end of first line behave just like
    last line for quitting and executing actions.

* hmouse-drv.el (hmouse-window-at-absolute-pixel-position): Further optimized for when
    depress and release windows are the same and frame has an auto-raise property, then we
    know release window was uppermost at the point of release and can skip finding what app
    owned the topmost window.

* hui-window.el (hmouse-dired-readin-hook):
                (hmouse-dired-display-here-mode): Added and used in hmouse-drag-item-mode-forms.
    Once a dired buffer item has been dragged, make next Action Key press on an item display it
    in the same dired window.
  man/hyperbole.texi (Smart Key - Dired Mode): Documented here and in smart-dired function.

* man/hkey-help.txt:
  hui-window.el: Updated drag acton summaries with the latest information.

* hui-window.el (hmouse-drag-vertically-within-emacs): Added to allow for modeline vertical drags
    between windows.

* hui-mouse.el (smart-dired-pathname-up-to-point): Added this to change the behavior of smart-dired.
    When on the first line of a Dired buffer where its directory path is shown, treat any ancestor
    subdirectory of the current directory as a selectable path.  Thus, you can run Dired on any
    ancestor subdirectory simply by pressing the Action Key at the end of the subdirectory you want.
    A press on the first / character, runs dired on the root directory.
  man/hyperbole.texi (Smart Key - Dired Mode): Updated doc to reflect this change.

* hui-window.el (hmouse-drag-between-frames): Removed from hmouse-alist; treat this context
    the same as a drag between windows within one frame, for consistency.

* hui-menu.el (hui-menu-key-bindings): Added for use as menu filter for
    Hyperbole/Options/Change-Key-Bindings so displayed key bindings are always up-to-date.

* hui-mouse.el (smart-outline-level): Added and used instead of (outline-level) which assumes
    its caller has already generated match data, which is not always the case in Hyperbole.

* hmouse-sh.el (hmouse-move-point-emacs): Added mouse-select-region-move-to-beginning handling
    that appeared in Emacs 26.1 and noted this in the function documentation.

* hui-window.el (hmouse-buffer-to-window): Added along with drag from mode-line to another
    window context to replace the buffer in a dest. window with the buffer from the source
    window.

* hib-debbugs.el (debbugs-query:at-p): eliminated match of #id-number and always required
   'bug' or similar prefix so there is no ambiguity with social references including
   git #commit-number.

* hmouse-drv.el (hkey-help): Updated to handle call-interactively actions and 'or'ed action
    intelligently when printing action documentation.

2017-10-15  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (action-key-depress-position, assist-key-depress-position): Added to
    test whether or not last Action Mouse Key event was a mouse click (non-drag event).

2017-10-14  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hmouse-window-at-absolute-pixel-position): Added optional Python script,
    topwin.py, for macOS window-system only.  It determines the topmost application window at
    the given position and returns the application name, so Emacs can tell if its frame is
    obscured by another application or not.
                (hmouse-verify-release-window-flag): Added so can turn off use of the macOS
    Python script when desired since it slows Smart Key action handling at least 1/3 of a
    second.

* hycontrol.el (hycontrol-frames): Changed = command call to set-frame-size to use pixel
    dimensions rather than chars/lines for better accuracy.
    (hycontrol-window-to-new-frame): Same.

* hui-menu.el (hui-menu-key-binding-item): Added.

* hmouse-drv.el (hmouse-set-point): Fixed to return a posn object as a fallback, i.e. what
    event-start and event-end return; previously, had returned point as a marker in this case.
    Keyboard-based emulation of mouse drags via hkey-operate had been broken; this fixed it.
* hui-window.el (hmouse-x-coord, hmouse-y-coord): Updated to accept a posn.
                (hmouse-modeline-event-p): Ignored case where args is a posn or point-marker,
    not an event.

2017-10-13  Bob Weiner  <rsw@gnu.org>

* hversion.el (hyperb:window-sys-term): Emacs set-frame-parameter does not return the value, so
    this function was always returning nil.  Fixed it to return what the doc says it does.

* hycontrol.el (hycontrol-frame-at-left-p, hycontrol-frame-at-top-p, hycontrol-frame-at-right-p,
    hycontrol-frame-at-bottom-p): Added.
    (hycontrol-frame-expand-to-*): Rewrote these: first they expand a frame to a particular edge;
      then the next invocation when already at that edge, cuts that frame dimension in half from the
      opposite side (or to any percentage specified as an argument), leaving the particular edge fixed.
      Renamed to hycontrol-frame-resize-to-*.  This allows both rapid expansion and contraction of
      frames with just 4 keys whenever needed.
    (hycontrol-frame-resize-percentage, hycontrol-frame-resize-arg): Added as support functions.
    (hycontrol-frame-edges): Added to ensure outer edges of frames are always used.
    (hycontrol-frames): Added arg as a 0-100 percentage for i,j,k,m commands.
    (hycontrol-windows): Added same c (cycle frame positions), i,j,k,m keys and numeric
       keypad keys to here.
    (hycontrol-frames/windows): Added p (virtual numeric keypad) to allow keyboard-based frame
       quadrant movement when a numeric keypad is not available.  This can be interrupted
       with a q to return to the control menu or a C-g to abort the control menu.

* hui-window.el (hmouse-horizontal-action-drag): Replaced doc typo of 'vertical' with 'horizontal'.

* DEMO (Help buffers): Added description of how to get help for Smart Mouse Key-only events.

* hycontrol.el (hycontrol-windows, hycontrol-frames): In window-control mode, changed {f}
    to clone window to new frame without deleting the source window to match similar
    Action Key drag from window/modeline to outside of any Emacs window.  Added {F} to clone but
    delete the source window.  Added these 2 bindings to frame-control mode too.  Documented
    in Hyperbole manual.

    Expanded control help to 4 lines, added = command to equalize sizes of windows/frames,
    added f/F commands.

* hibtypes.el (texinfo-ref): Added doc display for Emacs Lisp @findex (function) and @vindex
   (variable) entries.  Changed so does nothing if function or variable is unbound.
   Updated its doc string and doc in the Hyperbole manual.

* hmouse-drv.el (hkey-help): Changed to print "WHICH WILL:" rather than "WHICH:" when the first
    word of the doc string does not end in an 's', e.g. "Display this" instead of "Displays this".

* hui-window.el (hmouse-release-left-edge): Noted that left edge mode-line clicks must be on the
    first blank character of the mode-line because Emacs overrides the Smart Mouse Key bindings
    immediately after that position.  Noted in Hyperbole manual as well.

* Makefile (version): Added hyperbole.el to version check.
  hyperbole.el: Updated the Commentary with a description of Hyperbole in case the Emacs package
    system or a user looks here for it.

* hycontrol.el (hycontrol-clone-window-to-new-frame): Added and used in hmouse-alist.

2017-10-12  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-window-to-frame): Renamed to hycontrol-window-to-new-frame.
               (hycontrol-keep-window-flag): Added: When non-nil (default is nil), leave
    original window when tear off window to another frame.

* hui-window.el (hmouse-emacs-modeline-event-p, hmouse-modeline-event-p): Added.
    (hmouse-modeline-depress, hmouse-modeline-release): Simplified and speeded up for GNU Emacs.
    (action-key-modeline, assist-key-modeline):
  man/hyperbole.texi (Modeline Clicks and Drags): Updated with new modeline buffer id click actions.
  man/hkey-help.txt: Updated with most new drag and click actions.

* hywconfig.el: Changed all (called-interactively-p 'interactive) to (called-interactively-p)
    so will work if called interactively from one of the Smart Key lists.

* DEMO: Fixed a number of small issues with implicit buttons therein.

* hui-window.el (hmouse-drag-diagonally, hmouse-drag-horizontally, hmouse-drag-vertically):
    Added explicit test that press and release are in the same window.
    (hmouse-drag-item-to-display, hmouse-item-to-window): Added dired support.
    (hmouse-pulse-flag): Disabled by default due to sluggishness and improper visuals at times.
    (hmouse-map-modes-to-form, hmouse-drag-item-mode-forms): Added.
    (hmouse-drag-item-to-display, hmouse-item-to-window): Updated to use the new variable,
       hmouse-drag-item-mode-forms so users can add new modes for named item drags.

* hui-window.el (hmouse-drag-between-frames): Added and used in hmouse-alist.
                (hmouse-alist): Added modeline drags between frames and outside of Emacs.
    Added window drags outside of any window (outside of Emacs).
                (hmouse-clone-window-to-frame): Added and used in hmouse-alist.
  man/hkey-help.txt: Updated with latest modeline and between window drag movements.

2017-10-11  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-window-to-frame): Modified in the case of only one window in the frame,
    then clone the window into a new frame.  This allows you to create a bunch of staggered frames
    when in Window Control mode.  Also made this an autoload and called in "hui-window" within
    hmouse-alist.

* hui-window.el (hmouse-drag-outside-all-windows): Added to handle the case where a drag release is
    outside of any Emacs window or frame and used in hmouse-alist.

* hmouse-drv.el (hmouse-vertical-line-spacing): Added and used to compute vertical character positions.
                (hmouse-key-release-window-emacs): Renamed to hmouse-key-release-window and used in
    hmouse-function to set action/assist-key-release-window accurately.
                (hmouse-function): Fixed so action/assist-key-release-prev-point is set properly,
    before point is set to the location of the mouse button release.

* hui-window.el (hmouse-drag-thing): Fixed to handle when release location is outside Emacs and
    end-point is nil.
                (hmouse-drag-same-window): Added and used in horizontal and vertical drag tests.

* hmouse-key.el (hmouse-update-smart-keys): Extended to also re-initialize Smart Key bindings.

* hmouse-drv.el (smart-scroll-up): Removed 's' from the end of verbs in all function comments,
   e.g. scroll window instead of scrolls window, for consistency within the file.
   (hmouse-window-at-absolute-pixel-position, hmouse-window-coordinates): Added to compute the
      actual window and location of the release of a mouse drag which Emacs does not compute.
      Proper top-to-bottom listing of frames is available only in Emacs 26 and above.  For
      prior versions, the ordering of the frames returned is not guaranteed, so the frame
      whose window is returned may not be the uppermost.

   (hmouse-key-release-window-emacs, hmouse-key-release-args-emacs): Updated to use new window
      of release functions.  Now drags between frames work properly.

2017-10-10  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (after-init-time): Added hyperb:init to the end of after-init-hook;
   previously was added at the beginning.  This is intended to ensure that Hyperbole
   key bindings are set after any others, notably {M-RET}.

* hypb.el (hypb:rgrep-command): Changed to zgrep when available to handle compressed source files.

2017-10-09  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (annot-bib): Eliminated matches for any programming mode (modes derived from `prog-mode').

* README.md: Fixed link markup in Mailing Lists and Ftp and Git Source Code-only Downloads

2017-10-08  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Implicit Buttons): Re-arranged types to reflect newest prioritization.

* hib-social.el (github-reference): Added support for showing status of Github services
    with gh#status.

2017-10-06  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Hiding and Showing): Added paragraph on using {C-x 4 c} to clone
    a Koutline and display multiple views of it.  But commented this out because of an
    Emacs bug which alters the narrowing of indirect buffers after an outline hide or show.

2017-10-06  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Version): Updated to 6.0.2d and rebuilt output formats.

* Makefile (README.md.html): Added build rule as part of 'make doc'.
  README*: Rewrote the Summary intro paragraph and first two numbered items in simpler terms
    for new users.

* hib-social.el (git-commit-reference): Added new implicit button type to display a diff for
    any commit listed in 'git log' output.
                (git-reference): Fixed a few typos and added support for git#=branch:file syntax
    to view (not edit) a file from a specific branch.  Hyperbole finds which project the branch
    and file are associated with if a default is not specified.  Documented in this file and DEMO.

2017-10-05  Bob Weiner  <rsw@gnu.org>

* hib-social.el (hibtypes-git-build-repos-cache): Fixed to prune matches like 'file-git',
    leaving just .git parent directories.
                (hibtypes-git-find-execute, hibtypes-git-find, git-find-file): Added
    to locate and edit any git-versioned filename.
                (hibtypes-social-regexp, git-reference): Updated with git#=file syntax
    to find git-versioned files by name.
  DEMO (Git (Local) References): Added example of new git#=file implicit button.

2017-10-04  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Version): Updated to 6.0.2c and rebuilt output formats.

* hmouse-sh.el (hmouse-bind-key): Renamed to hmouse-bind-key-emacs since is emacs-only.
               (hmouse-bind-shifted-key): Renamed to hmouse-bind-shifted-key-emacs.

2017-10-03  Bob Weiner  <rsw@gnu.org>

* hui-window.el (hmouse-alist): In hmouse-drag-horizontally test, removed check of
   (not (hmouse-drag-between-windows)) since was tested earlier in hmouse-alist.
                (hmouse-resize-window-side, hmouse-release-left-edge,
                 hmouse-swap-buffers, hmouse-swap-windows,
                 hmouse-modeline-resize-window, hmouse-release-right-edge,
                 hmouse-modeline-click, hmouse-modeline-release): Removed optional
    assist-flag arg; used assist-flag free variable instead.

* hmouse-tag.el (smart-tags-display): Fixed to include tags-table found in any
    ancestor directory of current directory when tags-table-list already
    contains items.

* hpath.el (hpath:find-program): Changed so Hyperbole external and internal
    file suffix lists are consulted before using standard directory or
    image display methods.  So for example, Emacs.app on macOS, which is actually
    a directory, can be displayed/run externally.
           (hpath:external-display-alist-macos): Added .app suffix.

* hui-jmenu.el (hui-menu-buffer-mode-name): mode-name might not be a string; pass it through
    format-mode-line to ensure it is a string.  Without this, hui-menu-of-buffers could
    trigger an error on some buffers.

2017-10-02  Bob Weiner  <rsw@gnu.org>

* hui-window.el (hmouse-pulse-flag): Added to allow disabling visual pulsing in Action Mouse
    Key buffer/file window placement.  Used in hmouse-pulse-buffer and hmouse-pulse-line.

* hload-path.el (stringp): Forced use of hyperb:dir truename (after resolving pathname links).

* hbdata.el (hbdata:build): Modified to ensure that but-sym or hbut:current (if but-sym is nil)
    is updated with all modified button attributes.  This is used after interactive explicit
    button creation or modification to display current attributes.

* hui.el (hui:ebut-operate): Removed as this was obsoleted long ago; use ebut:operate instead.

* hbut.el (ebut:operate): Updated documentation to clarify that this modified button properties,
    notably its action's argument list.
  hbut.el (hattr:copy, hattr:set):
  hpath.el (hpath:substitute-var): Clarified documentation.

* hui.el (hui:ebut-message): Added message for use when creating and modifying explicit buttons.
         (hui:ebut-create, hui:ebut-modify): Called hui:ebut-message after interactively creating
    or modifying an explicit button (just as hui:link-directly already did).
         (hui:link-directly): Modified to call hui:ebut-message.

* hact.el (actype:param-list): Added.
  hui.el (hui:action): Fixed to handle parameter lists with keywords such as &optional.

* hactypes.el (link-to-file): When modifying a link, changed to handle a variable in the pathname
    and also to maintain any prior in-file location as a default when prompting for changes even
    if the linked-to file is not yet loaded in a buffer.

* hact.el (action:params-emacs): Added to use doc strings and autoload functions to get calling
    signatures for Emacs25 byte-coded functions.  Previously, functions with bit-coded integer
    argument parameter placeholders were not supported.
          (action:params): Called action:params-emacs on byte-coded objects.  Also, rewrote
    to handle indirect byte-coded actions as well.

2017-10-01  Bob Weiner  <rsw@gnu.org>

* hui-window.el (hmouse-item-to-window): When drag from fixed menu header line, pulse the menu
    buffer and move the menu buffer itself to the drag release window.

* man/hyperbole.texi (Version): Updated to 6.0.2b and rebuilt output formats.

* hycontrol.el (hycontrol-handle-event):
               (hycontrol-prettify-event): Fixed to handle large integer code events, e.g. M-p.

2017-09-30  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (HyControl):
  hycontrol.el (hycontrol-frames, hycontrol-windows): Removed ESC as a quit command since now that
    key sequences are supported, this is often used as a meta key prefix.  Use {q} to quit.

* hact.el (actype:act, actype:action): Fixed regexp match to beginning of string; quote mark used
   had somehow been changed to the end of string match regexp.  As a result, when explicit
   buttons were being created or modified, no arguments were prompted for.

* hargs.el (hargs:delimited): Removed unneeded properties from any returned string.

* hpath.el (hpath:at-p): Added missing non-exist parameter to hpath:delimited-possible-path call.
    This extends the prior bug fix for hpath:at-p.  See below.

* hmouse-drv.el (hmouse-key-release-args-emacs): Updated to handle cross-frame drags properly
    for when Emacs' event system is fixed to return the proper frame for a cross-frame drag
    release event (as of 25.3, it returns the depress frame rather than the release frame).

2017-09-29  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-prettify-event): Added.

2017-09-28  Bob Weiner  <rsw@gnu.org>

* hycontrol.el (hycontrol-handle-event): Expanded to handle single non-self-inserting
    keys and key sequences.

* man/hyperbole.texi (Version): Updated to 6.0.2a and rebuilt output formats.

* man/hyperbole.texi (View Specs): Noted that ellipses can no longer be
    turned off.
  kotl/kvspec.el (kvspec:compute): Removed `e' ellipses viewspec because
    it no longer works with modern Emacs outlining.
                 (kvspec:update): Force display of `e' viewspec.
                 (kvspec:activate): Changed to always compute new kvspec:current
    even if requested view-spec seems the same so the 'e' viespec is added if
    not included.

* kotl/kotl-mode.el (kotl-mode): Handled removal of newest
    outline-minor-mode mode-line indication for Koutlines.

2017-09-28  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-push-button-help): Added 2nd optional arg, use-mouse-action,
    which if non-nil, displays help for mouse-action property if any, and falls
    back to action property otherwise.
               (hkey-alist): push-button - Changed to use mouse-action if
    last-command-event was a mouse event.  Previously, mouse actions were
     not supported.

* hmouse-tag.el (smart-lisp-at-tag-p): Changed to not match anywhere on the first
    line of def constructs.  This aids in using Smart Keys for outline
    folding within Lisp buffers.
                (smart-lisp-at-definition-p): Added to test if point is on
    the first line of a non-alias Lisp definition.
                (smart-lisp-at-load-expression-p): Added to test if point
    is on any type of Lisp library load expression.
                (smart-lisp): Changed call of buffer-substring-no-properties
    to match-string-no-properties.
                (smart-lisp): Fixed regexp matching of require and autoload expressions.
       For require and load, moved point to start of the buffer.
       For autoload, triggered an error if library is found but symbol def is not.

* hui-mouse.el (smart-outline-char-invisible-p): Substituted outline-invisible-p
    call for kproperty:get, which may not yet be defined.
               (smart-outline-subtree-hidden-p): Fixed to match only when point is
    on a heading.
               (smart-imenu-item-at-p): Updated to ignore when smart-lisp-at-definition-p
    or smart-lisp-at-load-expression-p tests are true.
               (hkey-alist): smart-imenu - ignored non-alias identifiers on the
    first line of a Lisp def.

2017-09-27  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-buffer-menu-no-marks): Added and called in smart-buffer-menu.
               (smart-ibuffer-menu-no-marks): Added and called in smart-ibuffer-menu.
    Makes Action Key display the selected buffer in the buffer menu window (like RET does)
    rather than restoring previous window configuration and then displaying buffer.  This
    works better with the new buffer item drag to display in a window feature.

* hui-window.el (pulse): Added require for momentary highlighting of buffer/file
    item lines.
                (hmouse-pulse-line): Added.
                (hmouse-item-to-window): Added pulses to source and dest. lines.

2017-09-26  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (action-key-depress): Added action-key-depress-hook.
                (assist-key-depress): Added assist-key-depress-hook.
		(action-mouse-key):   Added action-key-release-hook.
		(assist-mouse-key):   Added assist-key-release-hook.
                (action-key): Added action-key-depress/release-hook.
		(assist-key): Added assist-key-depress/release-hook.
  hui-window.el (action-key-depress-hook): Set to select helm items
    prior to a drag outside the helm buffer window.

* hui-mouse.el (smart-helm-line-has-action): Fixed to use position of
    Action Key depress; this properly selects the item chosen, even when
    a cross-window drag is used; this allows helm buffer and file items to
    be used in Hyperbole drag actions.

* hib-social.el (github-reference): Added support for
    gh#orgs/<org-name>/people query to list users in an org.

* hmouse-drv.el (hmouse-depress-inactive-minibuffer-p): Improved doc and
    changed param name to `event'.
                (action-key-depress-window, assist-key-depress-window):
    Improved doc.

* hui-window.el (smart-coords-in-window-p, smart-window-of-coords,
                 hmouse-inactive-minibuffer-p):
  hmouse-drv.el (hmouse-depress-inactive-minibuffer-p):
  hargs.el (hargs:select-event-window): Updated to handle multiple frames and minibuffers.

* hui-window.el (hmouse-alist): Extended hmouse-drag-between-windows to
    allow dragging items from a buffer menu or file menu buffer to a destination
    window for display.  Helm buffer items are supported as well.
                (hmouse-item-to-window, hmouse-drag-buffer-to-window): Added.
  hui-mouse.el (smart-helm-to-minibuffer): Added to encapsulate when to
    return to minibuffer, and called.

* hversion.el (hyperb:version): Start adding a letter at the end of the version number for
    significant pre-releases published to git, so we know which version is in use.

2017-09-25  Bob Weiner  <rsw@gnu.org>

* hui-mini.el (hui:menu-item): Improved so that if menu item has no help string but its action is a
    function with a doc string, then it will use the first line of the action doc string for displaying
    help on the item.

* hmouse-key.el (hmouse-check-action-key, hmouse-check-assist-key): Added to check that both depress
    and release events are set to Smart Mouse Keys.  Mainly for use with helm.  Called from smart-helm
    and smart-helm-assist respectively.

* hui-mouse.el (action-key-error, assist-key-error): Maded explicit these are messages from Hyperbole.
               (smart-helm-at-header): Corrected doc string.
	       (smart-helm-at): Added to test type of helm thing point is at.
	       (smart-helm, smart-helm-assist): Updated to complement each other better; made section header
    clicks work.

* hmouse-key.el (hmouse-add-unshifted-smart-keys): Renamed from hmouse-add-unshifted-keys.
    Made interactive and added error if invoked under something other than GNU Emacs 19 or higher.
                (hmouse-update-smart-keys): Added to provide interactive updating of Smart Keys
      whenever a matching context or action has been changed in the source code; reloads any
      changes to "hui-mouse", "hui-window", "hibtypes" or "hactypes", most notably changes to
      hkey-alist and hmouse-alist.

* hui-mouse.el (hkey-alist, smart-outline-char-invisible-p, smart-eolp):
    Added and used to improve and narrow matching of end-of-lines.  Previously, did not handle
    new-style Emacs outlines properly nor helm section header lines.

* kotl/kotl-mode.el (kotl-mode:action-key, kotl-mode:assist-key):
  hui-mouse.el (smart-outline, smart-outline-assist): Changed to invoke action/assist-key-eol-function
    for end-of-line scrolling, eliminating hard-coded call.
  man/hyperbole.texi (Smart Key - Emacs Outline Mode): Documented this change.

* hargs.el (hargs:at-p): Fixed bug when linking to files or directories, would choose
    symbol at Action Key release point rather than the file or directory containing
    that symbol.  This was caused by allowing matches to non-existent files and dirs
    when the 'no-default' argument was t.  Now prevented such matching.  This could
    occur when creating or editing explicit button links.

2017-09-24  Bob Weiner  <rsw@gnu.org>

* hib-social.el (hibtypes-git-get-locate-command): Added this function to trigger an
    error if locate command is not available when a git-reference is activated.  So
    user knows what happened.

2017-09-23  Bob Weiner  <rsw@gnu.org>

* hib-debbugs.el (debbugs-version-sufficient-p): Added to eliminate use of version testing
    function from package.el which some people prefer not to load.

2017-09-22  Bob Weiner  <rsw@gnu.org>

* hib-social.el (hibtypes-git-add-project-to-repos-cache)
                (hibtypes-git-build-or-add-to-repos-cache): Added to allow
    for adding a single new project to the cache.

* hact.el (actype:act): Expand arguments as pathnames only in functions
    defined with defact (actions may be regular defuns as well).

* hib-social.el (github-reference): Added support for listing all active or showing
    individual branches, issues, pull requests and commit tags.  See the
    doc string for this function and the examples in the file commentary.
                (git-reference): Added support for listing all active or showing
    individual branches and commit tags.  See the doc string for this function and
    the examples in the file commentary.
                (defact*): Changed all these to regular functions to
    prevent Hyperbole from trying to expand their arguments as pathnames.

2017-09-21  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-helm): Added: On a source section header, moves to the next source
    section or first if on last.  But this doesn't yet work properly (helm is scrolling
    the buffer and not leaving point in the proper location).

* hui-mini.el (hyperbole): Removed interactive use of prefix argument to set doc-flag and
    help-string-flag parameters since this didn't interactively display doc.  Instead,
    this change lets the prefix arg flow through to any menu commands that can use it.

* hib-social.el: Added full Commentary with implicit link examples.

2017-09-20  Bob Weiner  <rsw@gnu.org>

* DEMO (Git References): Added.
  hib-social.el (hibtypes-github-default-project): Renamed from hibtypes-social-github-default-project.
                (hibtypes-github-default-user): Renamed from hibtypes-social-github-default-user.
		(hibtypes-git-default-project): Added.
		(hibtypes-git-*, git-reference): Updated to allow
    git#project/commit-hashtag references.  So now all of the
    following are recognized as local git references if the default
    project setting is set up:
      git#hyperbole/5ae3550    (project name and commit hashtag can be given; commit diff displayed)
      gt#5ae3550               (project default is used; commit diff displayed)
      gt#/hyperbole            (project home directory is displayed)
                (github-reference): Renamed from github-commit-reference.  Also added support for syntax:
      gh#/hyperbole            (project home directory is displayed; uses default user setting)
      gh#/rswgnu/hyperbole     (project home directory is displayed)

    Requires GNU locate for finding all local git repositories.

* hibtypes.el (grep-msg): Added match to context lines produced by 'grep -A<num>'
    which use '-' around the line number rather than ':'.
    (hib-debbugs): Lowered priority below hib-social so it doesn't shadow valid
       social references since its matching is broad.

* hib-social.el (social-reference, hibtypes-social-regexp): Added missing '-'
    character in social-reference matches.

* hui-mouse.el (smart-image-dired-thumbnail, smart-image-dired-thumbnail-assist):
    Added to support browsing of directories of images via thumbnails.
    Action Key displays a scaled version of the original image in an Emacs window.
    Assist Key displays the original image in an external viewer.

2017-09-19  Bob Weiner  <rsw@gnu.org>

* hib-social.el (hibtypes-social-default-service): Changed to use a radio
    button choice when customizing this.
                (hibtypes-social-hashtag-alist, hibtypes-social-username-alist): Added
    github user and commit lookup via social link syntax.
                (hibtypes-social-github-default-user):
                (hibtypes-social-github-default-project)
                (github-commit-reference): Added this new action and its
    above default values.
                (hibtypes-social-regexp): Updated to allow
    github#user/project/commit-hashtag references.  So now all of the
    following are recognized as github commit links if the default user
    and project settings are set up:
      gh#rswgnu/hyperbole/5ae3550 (if include user must include project)
      github#hyperbole/5ae3550    (project can be given with user default)
      gh#5ae3550                  (user and project defaults are used)

    Additionally, gh@rswgnu can be used to jump to user rswgnu's github
    home page.
  DEMO (Github): Added to demonstrate github references.

* hibtypes.el (annot-bib): Moved in priority below social hashtags and
    denied matching to anything containing a # or @ character so
    [twitter@someuser] doesn't match as an annot-bib entry.

* hui-mouse.el (hkey-alist): Added helm support for Smart Key presses in
   the minibuffer window (runs the standard RET command).

2017-09-18  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-helm): Finalized and added doc. of contexts and actions.
    Made smart-helm ignore helm candidate separator lines.

* hui-window.el (smart-coords-in-window-p):
                (hmouse-drag-window-side): Handled null value of coords.

2017-09-17  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (hkey-alist): Changed minibuffer handling to support Helm.

* man/hkey-help.txt: Small updates to Special Mode doc.

* hmouse-key.el (hmouse-add-unshifted-keys): Added to allow user init
    of unshifted Smart Keys.  For GNU Emacs only, this binds
    [mouse-2] to the Action Key and [mouse-3] to the Assist Key.
  man/hyperbole.texi (Smart Key Bindings): Added doc for hmouse-add-unshifted-keys.

* hmouse-sh.el (hmouse-get-unshifted-bindings): Uncommented inclusion of
   mouse-3 for times when user manually sets mouse-3 as the Assist Key.
   Otherwise, hmouse-toggle-bindings will never change its value.
               (hmouse-bind-key, hmouse-bind-shifted-key): Added and used
   these to ensure depress and release bindings are wholly reset before
   rebinding them under GNU Emacs.

2017-09-14  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:external-open-office-suffixes): Added .odt suffix.

* hui-select.el (hui-select-at-p): Protect against empty buffer error.

2017-09-12  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (grep-msg):
              (pathname): Don't match in helm completion buffers.

* hui-mouse.el (smart-helm-line-has-action): Ignore any actions helm
    imputes to header lines and candidate separator lines in helm
    completion buffers, as they are non-actionable lines.  Also, ignore
    if at the end of the buffer.
               (hkey-alist): Lowered smart-helm priority so can use Smart
    Key end-of-line functions in such buffers.

* hsys-www.el (eww-link-at-point): Basic stylistic improvements.

2017-09-11  Bob Weiner  <rsw@gnu.org>

hyrolo.el: Added basic commentary to the file header.

2017-09-10  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-helm, smart-helm-assist, smart-helm-line-has-action):
  hsettings.el (helm-allow-mouse): Set to t.
    New helm completion activation support.
    Added to allow mouse direct selection of helm completion items and to see
    match item actions prior to invoking them.  The smart-helm function
    behaves similarly to the {C-j} and {C-z} key bindings that helm mode
    provides when a helm completion is active. If helm is not active,
    Hyperbole resumes the prior helm session before triggering the action.
    The smart-helm-assist function displays the match item and its associated
    action.

* hsys-www.el (www-url): 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.

2017-09-08  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:url-regexp3): Added a third pattern match for URLs,
   allowing for partial http urls with non-www site names preceded by the
   literal url or URL followed by a : or =.  For example:
   url:photos.google.com or url=calendar.google.com

2017-09-07  Bob Weiner  <rsw@gnu.org>

* hui-menu.el (hui-menu-browser): Changed the Default setting to always
    use the current setting of browse-url-default-browser since that is the
    default in browse-url (eliminated use of browse-url-generic).

* hypb.el (hypb:decode-url): Added.
  hpath.el (hpath:is-p): Fixed to handle and decode encoded URL paths before
    returning the path.

2017-09-06  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (hkey-alist): Changed Python predicate to match more
broadly, namely in any non-file buffer whose name includes Pydoc: or
Python (case-sensitive).

* hmouse-tag.el (smart-python-at-tag-p): Expanded to handle tags with
   periods embedded such as `sys.path'.

2017-09-04  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (debugger-source): Added support for Python pdb stack trace lines.

2017-08-31  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (pathname): Wrapped mode-name reference in format-mode-line
    call since mode-name is not always a string.

* hui-em-but.el (hproperty:but-highlight-p): Added to allow disabling of explicit button highlighting.
                (hproperty:but-create-all):  Used this new flag.
  hui-xe-but.el (hproperty:but-highlight-p): Added to allow disabling of explicit button highlighting.
                (hproperty:but-create-all):  Used this new flag.

* hbut.el (ebut:map): Changed to ignore explicit button matches in
    programming languages when outside of a comment.  For example, syntax like
    this in a Rust buffer had been improperly matched: fn parse_kv(kv_list:
    Vec<(syn::Ident, syn::StrLit)>, function: &Function) -> LispFnArgs

2017-08-25  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (smart-ibuffer-menu): Ibuffer calling conventions have
    changed across time (as of Emacs25) to allow for regional arguments;
    updated to account for these.

* hpath.el (hpath:remote-at-p): For Emacs 26 where
    tramp-file-name-structure is now a function instead of a variable, call
    the function.

* hyrolo.el (hyrolo-kill): Triggered error if FILE contains a '*' character,
    mainly in case a buffer name is passed as an argument.
            (hyrolo-file-list-initialize): Added this function so can
    re-initialize the hyrolo-file-list later if BBDB or Google Contacts
    support is loaded after the Hyperbole Rolo is initialized.

* hbut.el (hbut:source): Allowed for spaces in buffer names.

* hyrolo.el (hyrolo-edit-entry): Avoided error if bbdb-file is nil.

* hbut.el (ebut:label-p): Added one-line-flag to constrain label search to a single line.
  hibtypes.el (Info-node): Constrained Info-node hyper-button matches to a single line.

* hyrolo.el: Added support for Google Contacts when the google-contacts
    package is in use and a public key package is available for Google
    authorization.

2016-09-08  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi: Documented Pages Directory Listing handling.

* kotl/klink.el: (require 'hbut): Added to define defib when compiled.

2016-08-26  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (hkey-alist): Added Smart Key jump to associated page in pages-directory-mode (page-ext.el).
  man/hkey-help.txt: Documented Pages Directory Listing and Imenu Programming Identifier handling.

* hmouse-drv.el (hkey-help-show): Modified to invoke help-mode only if buffer name includes 'Help' to
    support other specialized modes that use temp buffers.

2016-08-25  Bob Weiner  <rsw@gnu.org>

* README.md, README.md.html: Updated to match Hyperbole home page.

2016-08-18  Bob Weiner  <rsw@gnu.org>

* DEMO: Wrote small textual updates.

* hib-debbugs.el: Added a note about bug-reference-mode.el and the differences.

2016-08-17  Bob Weiner  <rsw@gnu.org>

* README: Added Summary section with a description of Hyperbole since this file may be shown prior to
    download in the Emacs package manager.

* kotl/kexport.el (kexport:label-html-font-attributes): Fixed improper 'defvar' definition which should
    have been a 'defcustom'.

2016-08-16  Bob Weiner  <rsw@gnu.org>

* hib-kbd.el (kbd-key:normalize): Fixed so C-M-<char> is normalized the same way as M-C-<char>.
             (kbd-key:extended-command-prefix): Added.
             (kbd-key, kbd-key:act): Added kbd-key:extended-command-p test and used in this implicit button
    type and action type to support Action Key presses on M-x extended commands like {M-x occur RET} since
    these are included in the Hyperbole DEMO.

2016-08-15  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:substitute-dir): Added support for environment variables including those with PATH
    in their name (colon-separated paths) that should have been there.
    Added call to hpath:exists-p to test path with hpath:suffixes added.  This fixed the bug where
    "${load-path}/simple.el" did not resolve properly when the file was stored compressed
    as simple.el.gz, for example.

2016-08-12  Bob Weiner  <rsw@gnu.org>

* hui-mini.el (hui:menu-enter): Fixed potential error of (wrong-type-argument char-or-string-p 134217741)
    when insert was called with a non-character code integer.

2016-08-10  Bob Weiner  <rsw@gnu.org>

* HY-ANNOUNCE-SHORT - Added as a shorter release announcement.

* HY-ABOUT, README, README.md, README.md.html - Synchronized with Hyperbole web home page
    and typo fixes.

* hpath.el (hpath:external-open-office-suffixes): Added external display of
    Open Office documents based on this new option.
           (hpath:command-string): Quoted filename argument to allow spaces in filenames.
    This fixed an issue when an external viewer such as `open' was called under OS X
    and the filename to be opened contained spaces.

* hyperbole.el (Maintainer): Changed back to single line so ELPA parses it correctly.

* hib-debbugs.el (debbugs-gnu-query:list):
  hyperbole.el (hkey-global-set-key, Info-directory-list):
  hvar.el (var:append): Removed improper function quoting of variable.

==============================================================================
V7.0.0 changes ^^^^:
==============================================================================

2016-08-08  Bob Weiner  <rsw@gnu.org>

* Makefile (release, elpa, ftp): Updated to work better.

* hactypes.el (link-to-web-search): Added so Hyperbole global and explicit buttons can execute web searches.
  hsettings.el (hyperbole-read-web-search-arguments): Added and used in hyperbole-web-search and link-to-web-search.
  DEMO (Sample Explicit Buttons and Types):
  man/hyperbole.texi (Action Types): Documented link-to-web-search.

* INSTALL, README, README.md, README.md.html: Added Browsing the Source section with ftp tarball download information.

* hpath.el (hpath:delimited-possible-path): Added non-ascii quote characters to possible delimiters.
           (hpath:delete-trailer): Added quoting characters to deletion to fix bug where remote pathname retrieval
    would include a trailing quote mark.

* hargs.el (hargs:delimited): Added support for up to 2-line delimited regions as long as point is on the first line.
    Normalized any newline followed by whitespace to a single space in the string returned.
    Added (require 'hypb).

* hys-org.el (defib org-mode, org-mode:help): Ensured trigger only in org-mode and simplified logic.
             (org-heading-at-p): Deleted and used org-at-heading-p instead.

* hpath.el (hpath:to-markup-anchor): Generalized to work in any HTML buffer based on major mode, not file suffix.
           (hpath:html-suffix-regexp): Removed, no longer used.

* hmouse-tag.el (smart-asm-include-file, smart-c-include-file): Simplified conditionals a bit.

* hpath.el (hpath:is-p): Fixed improper parsing issue with hash links that included commas such as:
    "DEMO#Grep, Occurrence, Debugger and Compiler Error Buttons, and Cscope Analyzer".

* Demo (Org Mode):
  man/hyperbole.texi (Implicit Buttons):
  hsys-org.el (org-mode): Changed so if not at an end of line, on an org mode link or on an existing heading,
    then invokes the Org mode standard binding of M-RET, (org-meta-return).

2016-08-07  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:markup-link-anchor-regexp, hpath:to-markup-anchor): Modified to support hash-style links
    to Emacs outline file section headlines, matching as is done with Github-style Markdown section links.
  DEMO:
  man/hyperbole.texi: Updated to document the above change.

* hypb.el (hypb:file-major-mode): Added.

2016-08-06  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Customization): Renamed from Configuration.
                     (Web Search Engines): Added this section under Customization.
                     (HyControl): Added WindowsControl key sequence.
                     (Smart Key - Smart Scrolling): Documented {action,assist}-key-eol-function variables.

* hsmail.el (mail-indent-citation, mail-yank-original): Updated for Emacs 25 compatibility.

2016-08-05  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (annot-bib): Added markdown-mode to the excluded list to avoid conflict with its links.
              (markdown-internal-link): Added to follow internal Markdown links.
  man/hyperbole.texi: (Implicit Buttons): Added markdown-internal-link.

* hsys-www.el: Renamed from hsys-w3.el since it is not related to the Emacs W3 web browser any longer.

* Demo (HTML and Markdown Hash Links): Added this section.
  hibtypes.el (pathname):
  hpath.el (hpath:to-markup-anchor): Renamed from hpath:to-html-anchor and generalized for use with Markdown as well.
    Added recognition of section links like:
        - [Why was Hyperbole developed?](#why-was-hyperbole-developed)
      so the pathname implicit button type matches when the Action Key is pressed anywhere on or after the
      hash character and jumps to the section:
        ## Why was Hyperbole developed?
      accounting for any trailing punctuation, whitespace and differences in case.
           (hpath:markdown-suffix-regexp, hpath:markdown-anchor-id-pattern, hpath:markdown-section-pattern): Added.
           (hpath:markup-link-anchor-regexp): Renamed from hpath:html-link-anchor-regexp.

* hib-social.el (social-reference): Disabled this implicit button 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.
  hpath.el (hpath:to-html-anchor): Added.
           (hpath:find): Rewrote to follow HTML in-file anchor references.

2016-08-04  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:html-suffix-regexp, hpath:html-anchor-id-pattern, hpath:html-link-anchor-regexp): Added.

* README, README.md, README.md.html: Added a new testimonial.

* Makefile (elpa, ftp): Added these targets to install Hyperbole releases for ELPA or ftp download.
    Changed so release target depends on package target so you can build a package prior to a release.

* hpath.el (hpath:remote-available-p): Fixed tramp package check prior to loading by adding a test for
    tramp-autoload-file-name-handler.

* README.md.html: Fixed bookmarks/in-file link ids.

2016-08-03  Bob Weiner  <rsw@gnu.org>

* hsettings.el (hyperbole-web-search-alist): Made any edit update all Hyperbole menus with the new value.
  DEMO (Hyperbole Menus): Added description and exercise using the new Find/Web menu.
  hui-mini.el (Cust/Web-Search): Added to allow setting of hyperbole-web-search-browser-function.
  hui-menu.el (infodock-hyperbole-menu): Added optional rebuild-flag to force rebuilding of the
    Hyperbole menubar menu.

* man/hyperbole.texi (HyControl): Documented ESC as a way to quit from HyControl. (REMOVED IN A FUTURE REVISION).

2016-08-02  Bob Weiner  <rsw@gnu.org>

* README.md.html - Added.

2016-08-01  Bob Weiner  <rsw@gnu.org>

* hui-menu.el (hui-menu-browser): Added to allow setting of
    hyperbole-web-search-browser-function.
              (infodock-hyperbole-menu): Added missing quote in Display-Referents-in setq,
    fixing invalid code generation.

* README.md (Invocation):
  HY-ANNOUNCE (Invocation):
  INSTALL (Invocation):
  README (Files):
  DEMO (HyControl): Added pointer to HyControl video and {C-c \} binding.
  hyperbole.texi (HyControl): Updated {C-c \} binding description.

* hycontrol.el (hycontrol-frames, hycontrol-windows): Added ESC as an additional key
    that quits from HyControl.

* man/hyperbole.texi (Global Key Bindings): Documented {C-c /} prefix key.
                     (Menus): Added Find/Web menu.

2016-07-31  Bob Weiner  <rsw@gnu.org>

* Changes: Renamed this file from ChangeLog since Elpa release builds
    overwrite any file named ChangeLog with git log information which
    has less history than Hyperbole's Changes.

* hui-mini.el (hui-search-web): Added so can invoke the Hyperbole
    Find/Web search menu directly.
  hyperbole.el (hkey-initialize): Bound above command to {C-c /}.

* hsettings.el (hyperbole-web-search-browser-function):
               (hyperbole-web-search-alist):
               (hyperbole-web-search):  Added.
  hui-mini.el (hui:menu-web-search): Added and called within hui:menus.
  hui-menu.el (hui-menu-web-search): Added and called in infodock-hyperbole-menu.

* hinit.el (hyperb:init-menubar): Fixed so sets after-init-hook only
    if not after-init-time.  Also forced a return value of nil.
  hui-menu.el (hyperbole-menubar-menu): Changed so this always updates
    the menubar with the latest version of the Hyperbole menu; previously
    it only added the menu if it was not there.

2016-07-29  Bob Weiner  <rsw@gnu.org>

* README.md: Added menu images and screenshots for easy access.

* hui-mouse.el (action-key-eol-function, assist-key-eol-function): Added these 2
    options 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.

2016-07-28  Bob Weiner  <rsw@gnu.org>

* hyperbole.el: Updated the header fields to better match GNU standards for use
    by the Lisp maintainer package, lisp-mnt.el.

2016-07-27  Bob Weiner  <rsw@gnu.org>

* hactypes.el (exec-shell-cmd): Replaced call to old function 'show-output-from-shell'
    with 'comint-show-output'.  This fixed a failure when this action type is used.

* HY-ANNOUNCE (About):
  README (Files): Added pointers to Hyperbole screenshot files.

*  man/im/menu-hyperbole2.pdf: Removed this unneeded file.

* HY-ANNOUNCE: Updated first section and used in sending 6.0.1 release announcements.
    Added items from HY-NEWS for 6.0.1 that were unintentially left out of this file.

* hload-path.el (hyperb:dir): If the Emacs Package Manager has already added this
    to load-path without a trailing directory separator, don't add it with one.

==============================================================================
V6.0.2 changes ^^^^:
==============================================================================

2016-07-26  Mats Lidell  <matsl@gnu.org>

* hypb.el (hypb:rgrep-command): Removed -Z option.
  Different meaning on OS X and GNU/Linux.

2016-07-26  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:rgrep-command): Removed -S option not supported by GNU/Linux.

* hyperbole.el: Added Date: header with release date and updated date in
    man/version.texi used in hyperbole.texi.

* README.md: Added this, a markdown formatted introduction combining README,
    INSTALL and HY-ABOUT.

2016-07-26  Mats Lidell  <matsl@gnu.org>

* MANIFEST: Removed hyperbole-readme.txt.

2016-07-25  Bob Weiner  <rsw@gnu.org>

* README: Renamed this file from HY-README.  Moved installation and invocation
    instructions to "INSTALL" file.  These changes were to eliminate release
    problems with INSTALL and README being symbolic links.

* hmouse-tag.el (smart-tags-display): Added with-no-warnings around
    find-tag call to prevent obsolete warnings and removed setting of
    byte-compile-warnings.

2016-07-24  Mats Lidell  <matsl@gnu.org>

* Patch from Stefan Monnier. Thank you Stefan.
  .gitignore: Added *-autoloads.el and *-pkg.el to ignored set.
  hyperbole.el: Fixed autoload typo.
  hload-path.el (load-path): Fixed to use regular quote.
  hib-social.el (require 'hbut): Added to properly compile the defib.

2016-07-23  Bob Weiner  <rsw@gnu.org>

* Makefile (hyperbole-$(HYPB_VERSION).tar): Added HY-ABOUT and HY-ANNOUNCE
    to files installed outside the tar archive for reference.

* man/hyperbole.texi (Installation): Updated to latest version.

2016-07-23  Mats Lidell  <matsl@gnu.org>

* kotl/kotl-loaddefs.el: Generated.

* Makefile (kotl/kotl-loaddefs.el): Added copyright notice for satisfying elpa
    copyright check.
  hyperbole.el: Changed to load kotl/kotl-loaddefs file.

2016-07-22  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi: Added new @kitem and @kitemx macros to surround keyboard
    items in tables with braces.

* Makefile (version): Added HY-ANNOUNCE.
  HY-ANNOUNCE: Added release announcement.
  INSTALL:
  HY-NEWS: Small improvements.

* hui-menu.el (infodock-hyperbole-menu): Commented out InfoDock manual reference
    out until InfoDock is modernized for Emacs 25.

* man/hyperbole.texi (Implicit Buttons):
  hib-social.el (social-reference): Improved doc for this ibtype.

* man/hyperbole.texi (Implicit Buttons, Explicit Buttons): Improved clarity.
                     (Global Buttons): Explained how to use global buttons.

* Makefile (release): Added this target to generate the kotl/kotl-autoloads.el file
    within the source tree.

* hmoccur.el: Normalized header to match other Hyperbole files.

* hyperbole.el (hyperbole-koutliner group): Moved definition to ensure comes after
    hversion is loaded.

* Makefile (pkg): Updated to build kotl/kotl-autoloads.el file because the Emacs
    Lisp Package Manager (ELPA) does not yet handle generation of autoloads
    for package subdirectories.

2016-07-21  Bob Weiner  <rsw@gnu.org>

* hsettings.el: Renamed this from hsite.el to prevent Hyperbole V4 users from
    accidentally loading it manually.

* hyperbole.el (hyperbole-autoloads): If this exists and autoloads kotl-mode,
    then skip setup to generate hyperbole-autoloads with autoloads from the kotl/
    subdirectory.

* hib-social.el (social-reference):
  hibtypes.el (mail-address-at-p): Let case-fold-search be t since mail-addresses
    are case-insensitive.

* hibtypes.el (mail-address-regexp): Simplified and modernized address matching
    to better distinguish from @username social media references.
              (mail-address-mode-list): Added lisp-interaction-mode and fundamental-mode.
              (mail-address-tld-regexp): Added to match most common top-level
    domains to tell if a match is really an email address or not.
              (mail-address-at-p): Tightened by using mail-address-tld-regexp.
  DEMO (Email Addresses, Social Media Hashtags and Usernames): Added descriptions.

2016-07-20  Bob Weiner  <rsw@gnu.org>

* MANIFEST:
  Makefile:
  hibtypes.el (hib-social):
  man/hyperbole.texi (Implicit Buttons): Added social-reference.
  hib-social.el: Added this file to follow social media hashtag and username
    references.

* Makefile (help): Added as the default target, explaining major targets.

* HY-ABOUT:
  man/hyperbole.texi (Hyperbole Overview): Renamed 'Textual Information Management'
    to 'Contact and Text Finder'.  Renamed 'Button Types' to 'Buttons and Smart Keys'
    and made it the first item.  Added a paragraph on the Smart Keys.

* .gitignore: Added Texinfo formatting indices.

* hyperbole.el:
  Makefile:
  man/hyperbole.texi (Top):
  hversion.el (hyperb:version): Normalized version number to GNU 3-part standard.

2016-07-19  Mats Lidell  <matsl@gnu.org>

* .gitignore: Added git ignore file.

2016-07-19  Bob Weiner  <rsw@gnu.org>

* hyperbole-pkg.el (hyperbole): Version update in preparation for next release
    and rebuilt package.

* man/hyperbole.texi: Fixed typos and improved explanations in parts.
    (Smart Key Modeline): Expanded and added instructions on using
      customize-variable.
    (Suggestion or Bug Reporting): Added menu key sequences.

* Makefile (GPG): Added to digitally sign Hyperbole distributions.

2016-07-18  Mats Lidell  <matsl@gnu.org>

* .hypb: Added. Lost during initial commit to git.

2016-07-18  Bob Weiner  <rsw@gnu.org>

* HY-README (Installation):
* man/hyperbole.texi (Installation): Made elpa line match the default in Emacs
    so if it is already there, it won't be added again.

* hyperbole.el (hkey-override-local-bindings): Fixed case where an invalid
    key prefix is given and so local-key-binding returns a number rather than nil.

* hui-window.el (hmouse-x-coord): Added support for a marker as `args'.
  hypb.el (hypb:goto-marker): Added to jump to a marker in a different buffer.

* man/hyperbole.texi (Global Key Bindings): Changed from setting the value of
    hkey-init-override-local-keys in personal init file to using the
    customize-variable interface.

* MANIFEST: Eliminated hsite-ex.el and included hsite.el in distribution package.
    Users will use customizations now rather than direct editing of this file.

==============================================================================
V6.0.1 changes ^^^^:
==============================================================================

2016-07-17  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (inhibit-hyperbole-messaging): Added :initialize function that skips more
    complex :set function, which is not needed at initialization.  Also moved all requires
    to before this function.

2016-07-16  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi:
  hmouse-tag.el: Renamed all '-dirs' variables to '-path'.

2016-07-15  Bob Weiner  <rsw@gnu.org>

* hargs.el (hargs:at-p): Fixed issue when in a dired buffer and a file or
    directory is being read, the result was returned sans any path
    information; now the full path is returned properly.

* man/hyperbole.texi (Introduction): Removed Preface section and moved its
    contents into subsections of the Introduction chapter, so Top info node
    looks better is more helpful.
                     (Mail Lists): Improved readability of this section.
                     (Key Index): Grouped all HyControl bindings under "screen,"
    and HyRolo bindings under "rolo,".

* hyperbole.el (hyperbole-toggle-messaging): Moved this function from hvar.el and renamed from
    var:toggle-hyperbole-messaging).  Display message only if called interactively.

* hui-mini.el (Cust): Added All-Options to display editable Hyperbole options.
* hui-menu.el (Customize): Added All-Hyperbole-Options.

2016-07-14  Bob Weiner  <rsw@gnu.org>

* Renamed all -hook variables to not have : in their names.

* man/hyperbole.texi (Setup):
  HY-README: Removed By-Hand Installation section.  Use the Emacs package manager.
    Renamed Package Installation section to just Installation.
  man/hyperbole.texi (Setup): Renamed from Installation.
                     (Function, Variable and File Index): Renamed to this.

* man/hyperbole.texi (Configuration): Added text on using the Emacs customize interface.

* hyperbole.el (hkey-read-only-bindings):
  man/hyperbole.texi (Smart Key Bindings): Removed these read-only mode bindings in Hyperbole
    6.00 since is not consistent across all read-only modes and the standard bindings are
    easy enough to use.

* hui.el (hui:link-possible-types): Moved link-to-file below outline headline link match
    since link-to-file was hiding this capability.

* hywconfig.el (hywconfig-delete-by-name, hywconfig-restore-by-name): Added feedback messages
    if called interactively.

2016-07-13  Bob Weiner  <rsw@gnu.org>

* All Files: Added defcustom variable declarations throughout.

* hsmail.el (mail-yank-prefix): Set default value to match that of GNU Emacs.

* hui-select.el: Changed defgroup used to hyperbole-commands.

* hibtypes.el (mail-address-mode-list): Added more modes.

* wconfig.el: Renamed library and all symbols to begin with hywconfig.

* man/hyperbole.texi (Titlepage): Added cover image.

* wrolo*: Changed all wrolo and rolo references to hyrolo.
  hyrolo.el (rolo-file-list): Made obsolete and replaced with hyrolo-file-list.

* hyperbole.el (require 'custom): Added to ensure defgroup and defcustom are always defined.

2016-07-12  Bob Weiner  <rsw@gnu.org>

* All Files: Redid file headers mostly to GNU Emacs standards.

==============================================================================
V6.0.0 changes ^^^^:
==============================================================================

2016-07-07  Bob Weiner  <rsw@gnu.org>

* man/hkey-help.txt: Updated with Org mode and GNU Debbugs summaries.
  man/hyperbole.texi (Smart Key Debugging): Added this section.

* hyperbole.el (hkey-previous-bindings): Renamed from *hkey-list* for consistency with hmouse-previous-bindings.
               (hkey-bindings, hkey-bindings-flag): Added.
	       (autoloads): Commented out all "hyperbole" autoloads which date back to when
    Hyperbole was not fully loaded at initialization time.
               (hyperbole-toggle-bindings, hkey-set-bindings): Added to toggle
    Hyperbole key bindings on and off.
  hmouse-key.el (hmouse-toggle-bindings): Showed message only if called interactively.
               (hkey-binding-entry, hkey-bindings-keys): Added to encapsulate binding storage format.
	       (hkey-initialize): Stored Hyperbole key binding entries.
  man/hyperbole.texi (Menus): After Hyperbole key bindings are described, added documentation on
    how to toggle them on and off.

* hmouse-sh.el (hmouse-get-bindings): Fixed doc.

* man/hyperbole.texi (Invocation):
  HY-README: Expanded Invocation section with many useful pointers and renamed installation sections.

* hmouse-drv.el (hkey-help-hide): Changed to utilize quit-window function if *hkey-wconfig* is
    not set and made it interactive and an autoload so can replace quit-window in help buffers.
                (quit-window): Overloaded this function from "window.el" to utilize *hkey-wconfig*
    when set.
  hui-mini.el (hui:menu-help): This fixed an issue where Hyperbole minibuffer menu item help window
    quit did not properly restore prior window configuration.

2016-07-06  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:maximize-window-height): Added.
  hib-debbugs.el (debbugs-gnu-mode, smart-debbugs-gnu, debbugs-gnu-mode:help): Added to support
    the Smart Keys in Gnu Debbugs listing buffers.

* hversion.el (id-info, id-info-item): Generalized and improved file handling.

* hypb.el (hypb:format-quote): Added.
  hmouse-drv.el (hkey-debug): Called above function to protect existing % fields in ButLabel
    and Actions from affecting the message call.

* DEMO (Hyperbole Menus): Updated with these new menu control features.
  hui-mouse.el (hkey-alist): Same changes for Smart Mouse Key as below in hui-mini.el.
  hui-mini.el (hui:menu-select): Changed to make a press of RET within a menu prefix (before a '>')
    return to the top-level menu and a press at the end of the menu, quit the menu.

2016-07-05  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Creation Via Action Key Drags): Small improvements.

* man/hyperbole.texi (Smart Key - Identifier Menu Mode ): Renamed and updated with imenu support.
  hui-mouse.el (smart-imenu-display-item-where, smart-item-menu-p, smart-imenu-item-at-p): Added
    these functions and to use the Emacs imenu library to display programming identifiers defined
    within the same file in which they are referenced.  This works without a TAGS file and on files
    that have not yet been evaluated within the current Emacs session.
               (hkey-alist): Added imenu support: Action Key press on an imenu identifier displays
    its definition; Assist Key press prompts with completion for an identifier defined within the
    current buffer to display.

* hargs.el (hargs:find-tag-default): Added and used in hargs:at-p and hibtypes.el (hyp-address).
    This supports the newer find-tag-default-function which may be major-mode specific.

* hib-kbd.el (kbd-key): Added support to recognized key sequences in GNU standard Info manuals where
    they are surrounded by a form of smart quotes.
    (kbd-key:normalize): Added support for special keys delimited by angle brackets, e.g. <SPC>.

* hmouse-tag.el (smart-lisp-at-known-identifier-p): Improved to further limit search for
    library clauses by searching for close parentheses as well.

2016-07-04  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:delimited-possible-path): Added (code broken out from hpath:at-p) so
    can be used in multiple places.
  hactypes.el (link-to-file-line-and-column): Added.
  hibtypes.el (pathname): Called hpath:delimited-possible-path.
              (pathname-line-and-column): Added this new implicit button type and
    documented it.

* hibtypes.el: Updated all to use match-string-no-properties.

2016-07-02  Bob Weiner  <rsw@gnu.org>

* hsys-org.el: New file added; defines an implicit button type, org-mode, that
    displays Org mode links in a web browser and cycles through outline headings.
  hibtypes.el (require 'hsys-org): Added.
  man/hyperbole.texi (Implicit Buttons - org-mode):
  DEMO (Org Mode): Updated doc to reflect this behavior.

* hargs.el (hargs:delimited): Added optional 5th arg, LIST-POSITIONS-FLAG, which
    if non-nil makes the return value a list of (string-matched start-pos end pos).
    This is used for flashing any matching implicit button when activated.

* hui-mini.el (hui:menu-backward-item, hui:menu-forward-item): Added these to move
    point through minibuffer menu items; bound to SHIFT-TAB (or M-TAB) and to TAB.

* hmouse-info.el: Renamed for consistency from hmous-info.el.
    (require 'info): Added to be sure this is always loaded.

* hactypes.el (link-to-Info-node): If lookup as a node fails, try it as an index
    item name.  This allows for implicit links of the type "(file)index-item-name".

* hui.el (hui:link-directly): Removed any text properties from string arguments in
    case they are unintentially copied.

2016-07-01  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:link-directly): Updated message after creation to include arguments
    so the user sees what is linked to.

* hmous-info.el (Info-handle-in-menu): Called Info-menu-item-at-point.
                (Info-note-at-p): Added.

  hargs.el (hargs:at-p): When reading an Info-node or Info-index-item, if point is
    on a cross-reference or menu item, make the link to that item, not to the
    current Info node.
  hmous-info.el (Info-read-index-item-name, Info-build-menu-item-completions,
    Info-complete-menu-item, Info-current-filename-sans-extension,
    Info-menu-item-at-p, Info-node-has-menu-p, Info-read-index-item-name-1): Added.
  hui.el (hui:link-possible-types):
  hactypes.el (link-to-Info-index-item):
  hargs.el (hargs:iforms-extensions, hargs:at-p): Added link-to-Info-index-item
    action type (interactive spec of +X) with full completion of Info index nodes
    across all installed Info manuals (at link creation time).  Added to
    documentation.
  DEMO (Info Paths): Updated to include index item links.

* hact.el (action:params): Changed to return nil if ACTION argument is an Emacs
    byte-coded function with a variable number of arguments in which case the
    function parameters are not available.  This fixed an error in the function
    kotl-mode where it expected a list to be returned, bug#23873.

2016-06-30  Bob Weiner  <rsw@gnu.org>

* Makefile: Removed ps_dir since now make a .pdf file, not a .ps and removed any
    mention of a PostScript manual.
    (doc): Made dependent on version.texi too.

==============================================================================
V5.15 changes ^^^^:
==============================================================================

2016-06-29  Bob Weiner  <rsw@gnu.org>

* hvm.el, hui-xe-but.el, kotl/kprop-xe.el: Set to not byte compile since will be rarely
    used and reduces the byte-compiler warnings.

* hactypes.el: Replaced comint-kill-output with newer comint-delete-output.
    Replaced shell-sent-input with comint-send-input.

* hui-em-but.el: Added hyperbole group for all faces.

* hmouse-key.el (require 'hsite): Added this and replaced require of hversion so
    hmouse-middle-flag is defined at compile-time.

* hmh.el (Mh-to): Removed called to no longer existing Mh-get-buffer and changed variable name
    to currently used mh-show-buffer (all lower-case).

* hib-doc-id.el (require 'wrolo): Added for rolo-grep calls.

* hmouse-tag.el (eval-and-compile): Added this call around requires and loads.

* kotl/kimport.el (require 'kfile): Added.
  kotl/kcell.el (require 'kview): Added.

* All Files (with-current-buffer): Used in place of (save-excursion (set-buffer...))

* wrolo.el, wrolo-logic.el, wconfig.el, kotl/kexport.el, hvm.el, hui.el, hui-select.el:
    Replaced all remaining calls of (interactive-p) with
    (called-interactively-p 'interactive).

* hinit.el (hyperb:init): Moved to hyperbole.el to resolve a compile-time warning.
  hload-path.el: Added and moved load-path settings from hversion.el and hyperbole.el here
    and required this file in hversion.el.  This is so the kotl/ directory is added to
    load-path when just hversion.el is required.  This fixes an issue in hinit.el which
    required hibtypes.el which required klink.el before kotl/ was in the load-path.
  hversion.el (hyperb:kotl-p): Moved Koutline mode initializations from hyperbole.el
    to here since hversion is sometimes required at compile time without requiring
    the hyperbole library and we need the kotl/ subdirectory on load-path then.
  kotl/kimport.el (kimport:mode-alist, kimport:suffix-alist): Moved these 2 definitions
    from hyperbole.el back into this file since they are autoloaded and only used herein.
  hgnus.el (require 'hypb): Added.
  hsmail.el (smail:comment-add): Rewrote as a no-op if inhibit-hyperbole-messaging is nil.
            (message-setup-hook, mh-letter-mode-hook): Changed to use add-hook rather than
    var:append.  This solved a compile-time problem where inhibit-hyperbole-messaging was
    not yet defined (from hyperbole.el) but was used in the var:append call.

* htz.el (htz:span-in-days): Renamed call of calendar-absolute-from-julian
    to newer calendar-julian-to-absolute.

* hsmail.el (var:append): Fixed issue where inhibit-hyperbole-messaging was not defined
    at compile time, causing a failure of hgnus.el (which requires hsmail) to compile.
  hib-debbugs.el (debbugs-query:status): Added (require 'debbugs-gnu).
  hib-doc-id.el:
  hib-kbd.el:
  hib-debbugs.el (require 'hactypes): Added missing require and eval-when-compile
    needed for package compilation.
  hact.el, hactypes.el, hbut.el, hgnus.el, hinit.el, hmh.el, hrmail.el, hui-menu.el,
  hversion.el, hypb.el, kotl/kcell.el, kotl/kfile.el, kotl/kotl-mode.el, kotl/kview.el:
    Added eval-when-compile needed for package compilation.

==============================================================================
V5.14 changes ^^^^:
==============================================================================

2016-06-28  Bob Weiner  <rsw@gnu.org>

* hui-menu.el (infodock-hyperbole-menu): Fixed menubar Manual pointers for Find,
    Koutliner, and Screen.  Also renamed Hyperbole submenu to Koutliner from
    Koutline to distinguish it from the mode-specific Koutline menubar menu.
  hversion.el (id-info-item): Added and used in menubar menus to go to Info index entries.
              (id-info): Trigged an error if argument is not a string.
	      (infodock-hyperbole-menu):

* HY-README: Expanded the installation instructions here with additional pointers.

* hpath.el (hpath:get-external-display-alist): Renamed from hpath:find-alist and
    changed it from a variable to a function so it is resolved on a per-frame basis
    since each frame may have different window-system value when using distributed
    window systems.  Improved documentation.
	   (hpath:external-display-alist-macos)
	   (hpath:external-display-alist-mswindows)
	   (hpath:external-display-alist-x): Added these variables for use with
    each window system.
           (hpath:internal-display-alist): Renamed from hpath:display-alist.

* hactypes.el (link-to-Info-node): Updated doc to explain that completion is
    available and there is no need to include a .info suffix for the filename.

* hib-debbugs.el (debbugs-gnu-query, debbugs-gnu-query:string): Fixed some edge
    cases with internal and trailing spacing.

* DEMO (Thing Selection): Added this section.

* hpath.el (hpath:find-file-urls-p): Removed message and beep call; made a pure predicate.
           (hpath:enable-find-file-urls): Added a beep and message if called interactively
   and no remote path library is loaded.

2016-06-27  Bob Weiner  <rsw@gnu.org>

* DEMO (HyControl, Creating and Modifying Explicit Buttons): Added these sections.
    Reworked and updated the demo to reflect the current state of Hyperbole.

* hbut.el (ebut:operate): Fixed bug where point was left on a button different than
    the one operated upon by changing (forward-char 1) to (forward-char 2).

* hargs.el (hargs:iforms-extensions): Simplified ?I (read an Info-node name) to call
    Info-read-node-name.  This allows use of filename prefixes without the .info suffix,
    e.g. (hyperbole) while still supplying completions.

* hactypes.el (link-to-Info-node): Changed to call match-string-no-properties.

* hibtypes.el (man-apropos): Fixed for new Emacs versions.
    (rfc): Fixed to allow a space in the middle to match documentation.

* hui-menu.el (infodock-hyperbole-menu): Moved the Types menu below the
    Documentation menu to match the Hyperbole minibuffer menu.
  hui-menu.el (infodock-hyperbole-menu):
  hui-mini.el (hui:menus): Added Types item on the Explicit Buttons menu to display
    action types; this matches the same item from the IBut menu.

* DEMO: Removed description of Cust/Find-File-URLs as this is a bit advanced.  Doc is
    available instead at "(hyperbole)Using URLs with Find-File".
  man/hyperbole.texi (Using URLs with Find-File): Fixed to refer to the newer name,
    hpath:find-file-urls-mode rather than hyperb:find-file-urls-mode.

* DEMO (Path Suffixes and Variables): Added this section with more examples and removed
    description of hpath:display-alist; documented in the Hyperbole Manual instead.

* man/hyperbole.texi (Internal Viewers): Added description of file formats supported
    by the default setting of hpath:display-alist.

* hibtypes.el (pathname): Excluded paths that start with ~ from expansion via
    load-path matching and changed to call locate-library so compressed Lisp files
    are found.  Added support for Info filenames without any path (displays Top node).
  hpath.el (hpath:info-suffix): Added and used in hpath:display-alist and implicit
    type pathname definition.

2016-06-25  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:display-alist): Added audio format mp3, wav and ogg suffixes.

* man/hyperbole.texi (Link Variable Substitution): Small text fixes.

2016-06-24  Bob Weiner  <rsw@gnu.org>

* hui-window.el (hmouse-inactive-minibuffer-p): Added and used at the
    start of hmouse-alist.  This added Smart Key support for an inactive
    minibuffer.  Action Mouse Key click displays the Hyperbole minibuffer
    menu for easy item selection with the Action Mouse Key.  Assist
    Mouse Key click pops up the jump menu of frames, buffers and windows,
    just as a blank area in the modeline does.
                (action-key-minibuffer-function, assist-key-minibuffer-function):
    Added these variables and used at the start of hmouse-alist.
                (action-key-modeline-function, assist-key-modeline-function):
    Changed name from *-hook since should only be set to a single function.

2016-06-23  Bob Weiner  <rsw@gnu.org>

* hui-window.el (hmouse-depress-inactive-minibuffer-p): Added and used in
    action-key-depress and assist-key-depress.
  hmouse-sh.el (hmouse-shifted-setup): For GNU Emacs, changed
    hmouse-set-point-command to hmouse-move-point-emacs.
    (hmouse-move-point-emacs): Added.

* hycontrol.el (frame-pixel-*): Changed all these calls to hycontrol-frame-*
    to include any window manager decorations in the calculation.
               (hycontrol-frame-height, hycontrol-frame-width): Added.

* hyperbole.el (hyperbole, hyperbole-keys): Added these customization
    groups; used by hmouse-mod.el.
  hmouse-mod.el (hmouse-mod-disable): Renamed from hmouse-mod-unset-global-map.
    (hmouse-mod-enable): Renamed from hmouse-mod-set-global-map.
    (hmouse-mod-mode): Added this to make it a minor mode and replaced
  hmouse-mod-toggle.

* man/hyperbole.texi (Glossary): Added Chord Keyboard entry.
                     (Smart Key Modifiers, Smart Key Modeline): Added
    these sections.

* hib-kbd.el (kbd-key): Tightened to not match when point is on the
   outside curly brace characters, thereby allowing hui-select-delimited-thing
   to select the delimited key sequence.

* man/hyperbole.texi (Implicit Buttons): Added debbugs-gnu-query doc.

2016-06-22  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi (Smart Key Operations): Updated this section and
    fixed documentation error concerning where to click the Action Mouse
    Key to bring up the Info Browser.

* hui-mini.el (hui:menus): Changed from Doc/SmartKy to Doc/SmartKeys.

* hmouse-drv.el (hkey-summarize): Made interactive so can be bound to a key.
    Deleted return to previously selected window, so can browse through
    the help and then use {q} to restore the window configuration.
  hui-mouse.el (action-key-error): Changed to call hypb:error.
               (assist-key-error): Added and changed assist-key-default-function
    to default to this, since its prior value, hkey-summarize, is
    performed by an Assist Key click in the right of a modeline.

* hmouse-tag.el (smart-lisp-at-tag-p): Added &, ~, and ^ as identifier
    characters and removed #.

2016-06-21  Bob Weiner  <rsw@gnu.org>

* hib-debbugs.el: Added to browse discussion and show the status of Gnu
    debbugs issues embedded in any buffer.
  hibtypes.el (require 'hib-debbugs): Added.
  MANIFEST: Added an entry for this.
  Makefile: Added file entries.

* hbut.el (hattr:report): Simplified conditionals and printing via format.

* hui-mini.el (hui:menu-help): Fixed to handle windows already split side-by-side
    and to leave point in the help buffer (so can use {q} to quit) if not called
    from within the minibuffer, e.g. when on an implicit button.

2016-06-20  Bob Weiner  <rsw@gnu.org>

* hui-mini.el (hui:menu-doc, hui:menu-item-doc): Added and added
    parameters to their callers to allow for return of menu item
    documentation strings used by implicit keyboard buttons in hib-kbd.el.
    This allowed display of documentation of Hyperbole minibuffer menu
    items from readable key sequence strings via the Assist Key.

 hib-kbd.el (kbd-key:normalize): Added support for RETURN fully spelled out.
             (kbd-key:hyperbole-menu-key-p): Added.
             (kbd-key:doc): Added error if no doc found for a key-sequence.
             (ibtypes::kbd-key, kbd-key:act): Added support for invoking Hyperbole
    minibuffer menu items with the Action Key when over a sequence of keys
    like, e.g. {C-h h d d}.
             (kbd-key:normalize): Added error if argument is not a string.

* hui-window.el (hmouse-set-buffer-and-point): Added.
    (hmouse-goto-depress-prev-point, hmouse-goto-depress-point,
     hmouse-goto-region-point, hmouse-goto-release-point): Called `hmouse-set-buffer-and-point'.

* hui-mouse.el (smart-gnus-summary, smart-gnus-summary-assist): Changed from
    no-longer existing call of `gnus-summary-mark-unread-forward/backward' to
    `gnus-summary-mark-article-as-unread'.

2016-06-19  Bob Weiner  <rsw@gnu.org>

* wrolo.el (rolo-sort-lines): Added to handle sorting of collapsed rolo
   records properly since through Emacs 25.0 invisible lines are not
   grouped with the prior visible line, making rolo entry (or any record)
   sorts fail.  This function fixes that.
           (rolo-forward-visible-line): Added to support rolo-sort-lines.

2016-06-18  Bob Weiner  <rsw@gnu.org>

* hversion.el (hyperb:window-sys-term): Added per frame check for mouse
   support, notably for graphical emacsclient spawned from a non-graphical
   Emacs.  Previously such clients did not have Hyperbole mouse support;
   now they do.
     (hyperb:window-sys-term): Changed to take a single frame argument and
       set the value of 'hyperb:window-system into the frame parameters.
     (hyperb:window-system): Deleted this variable; now should be
       called as a function only.  Added this as a function to return the
       frame-specific value of `hyperb:window-system'.
  hmouse-drv.el (hkey-operate, hmouse-set-point):
  hypb.el (hypb:configuration):
  hyperbole.el (hkey-initialize):
  hui-window.el (hmouse-drag-window-side, hmouse-modeline-depress,
    hmouse-modeline-release, hmouse-resize-window-side, hmouse-x-coord,
    hmouse-y-coord):
  hmouse-sh.el (hmouse-get-bindings, hmouse-get-unshifted-bindings
    hmouse-shifted-setup, hmouse-unshifted-setup):
  hmouse-key.el (hmouse-set-bindings): Changed from variable ref to function
   call for hyperb:window-system.
  hui-window.el: Simplified hmouse-alist setup a bit.
  hui-mouse.el (hmouse-alist): Changed to always define this since one may start
    Emacs on a tty and then use a distributed window system to create a frame under
    a window system with mouse support that needs this.

2016-06-17  Bob Weiner  <rsw@gnu.org>

* hui-jmenu.el (hui-menu-of-buffers): Removed limit on top-level buffer menu length, i.e.
    the number of categories/major modes.

* man/hyperbole.texi (@var): Replaced all with @code since @var is meant for a
    different purpose.

* hmouse-key.el (hmouse-install): Changed to set the global value of hmouse-middle-flag
    so always know if the middle mouse button was bound by Hyperbole.
  hmouse-mod.el (DESCRIPTION): Fixed doc on adding unshifted middle button as Action Key.
  hmouse-sh.el (hmouse-shifted-setup): Renamed from hmouse-setup and improved documentation.
               (hmouse-unshifted-setup): Improved doc and removed use of flag argument.

2016-06-16  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hmouse-key-release-args-emacs): Handled integer events.

* man/hyperbole.texi (Cust/KeyBindings): Added doc for C-c RET,
    syntactical region marking and C-c ., delimited thing to start and end.
    Also indicated keys which are bound only if not bound prior to loading
    Hyperbole.
* hui-menu.el (hui-menu-options): On Customize/Change-Key-Bindings menu, renamed
    Dragging-Actions to Drag-Emulation-Key, renamed Button-Rename to Button-Rename-Key.
    Renamed HyControl-Windows to Windows-Control-Key.  Added Mark-Thing-Key.
  hui-mini.el (hui:menus): On Cust/KeyBindings menu, renamed ControlWin to WinControl.
    Renamed Dragging to DragKey.  Added MarkThing.

* man/im - Replaced old images with ones generated by Mats.

==============================================================================
V5.13 changes ^^^^:
==============================================================================

2016-06-15  Bob Weiner  <rsw@gnu.org>

* hui-jmenu.el (interactive "e"): Removed "e" from menu commands that take
    no arguments.

* hact.el (symset, htype): Moved from hbut.el because actype:create uses
    htype and htype uses symset it and hbut.el requires hact.el, so we
    can't require hbut here.  This solved an installation problem where
    hact was byte-compiled before hbut was loaded and produced an invalid
    defact/actype:create macro which then caused hactypes.el to fail
    upon loading.  Also forced a load of set.el at compile time to satisfy
    Hyperbole package builder.
  hactypes.el (hact.el): Forced a load at compile time to satisfy Hyperbole
    package builder.
  hbut.el (hversion): Added require of this library; needed for
    hyperb:microcruft-os-p definition at load time.

2016-06-14  Bob Weiner  <rsw@gnu.org>

* kotl/EXAMPLE.kotl:
  kotl/kmenu.el (kotl-menu-common-preamble):
  man/hyperbole.texi: Fixed all references to {C-h h o} which should have
    been {C-h h k} since the Koutliner menu key has changed.

* kotl/kotl-mode.el (kotl-mode:assist-key): Renamed from
    kotl-mode:help-key for consistency.

* man/hyperbole.texi (Glossary): Added Screen and Display entries.

* hactypes.el (link-to-file-line): Improved to handle compilation buffers
    where the directory has been changed and a relative pathname is given
    in an error message.  Now will prompt for the directory of the path.

* hmouse-drv.el (action-key-internal, assist-key-internal): Added.
   (action-mouse-key, assist-mouse-key, action-key, assist-key): Refactored
     to call the above internal functions.  Made action-key and assist-key
     clear all the action mouse key variables so there can be no confusion
     between mouse presses and keyboard presses.

   (hkey-help-show): Generalized handling of completions buffers
    and thereby fixed an issue in Emacs 24 where completions were not showing.

* hpath.el (hpath:remote-at-p): Tightened matches to require at least one
    char after the : to prevent false matches, e.g. to node:: in Texinfo files.
           (hpath:at-p): Tightened space delimited match to exclude @ characters.

           (hpath:find-alist): Added .pdf to mac-osx-suffixes and removed
    old Interleaf and Framemaker configuration from x-suffixes.
           (hpath:remote-available-p): Fixed to require the package if only
    listed in file-name-handler-alist.

* MANIFEST: Added man/hyperbole.pdf printable manual version to the distribution.
  Makefile (dvi, ps): Removed .dvi and .ps outputs and replaced with just .pdf.
           (distclean): Remove im/*.ps unneeded files and temp files used
    in hyperbole.pdf generation.

2016-06-13  Bob Weiner  <rsw@gnu.org>

* man/hyperbole.texi: Typos and various small changes throughout.
    Redid image insertion so is no longer conditionalized by output type
    and uses @image and @caption.

* Makefile:
  HY-WHY.kotl: Added this file as a quick list of reasons to use
    Hyperbole.  More are welcome.

2016-06-09  Bob Weiner  <rsw@gnu.org>

* hargs.el (hargs:delimited): Fixed to not return an empty string.

* hyperbole.el (unless (fboundp 'kotl-mode)): If this is not bound, load
    autoloads file, e.g. when loading Hyperbole other than as an Emacs
    package.

* hpath.el (hpath:find): Changed to not try to resolve executable paths
    that begin with a modifier character.

2016-06-08  Bob Weiner  <rsw@gnu.org>

* hui-window.el (hmouse-drag-window-side): Rewrote to work with GNU Emacs
    but only allows dragging vertical dividers on the right to the left
    to shrink a window.
    (hmouse-side-sensitivity): Increased from 2 to 5 to make this work.

* hui.el (hui:bind-key): Forced prompt into minibuffer window for when
    called from a menubar menu.

* hmouse-drv.el (hkey-assist-help): Renamed from assist-key-help.
    (hkey-mouse-help): Renamed from action-mouse-key-help.

* hmouse-key.el: Moved all Smart Key depress functions from here to
    hmouse-drv.el where the release function are.

* kotl/kotl-mode.el (kotl-mode:remove-cell-attribute): Added.
    (kotl-mode:transpose-chars): Improved error handling at the beginning of
       cells and end of lines.

2016-06-07  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:set-cell-attribute): Fixed interactive part,
    added error if called non-interactively in a read-only buffer
    and improved prompts.

* kotl/kview.el (kview:set-buffer): Renamed from kview:set-buffer-name
    since it could get out of sync if some other library changed the
    buffer name leading to kview:buffer returning nil.  Now the buffer
    itself is stored.
  kotl/kfile.el (kfile:write): Called kview:set-buffer.

* kotl/kotl-mode.el (kotl-mode-map): Added missing {C-c C-i} binding
    mentioned in the EXAMPLE.kotl file; sets cell attributes.

* hui-select.el (hui-select-thing-with-mouse): Rewrote to better match
    hui-select-thing and fixed issue with point moving away from point
    clicked.

* hmous-info.el (Info-handle-in-menu): Added support for index-nodes.
                (smart-info, smart-info-assist): Added support for fixed
    header line and text-property-based breadcrumb header line now used in Emacs.

* hmouse-key.el (hmouse-save-region): Improved conditional for each emacs
    version, tightening when a region is saved.

* hmouse-mod.el (hmouse-mod-insert-command): Rewrote to support GNU Emacs
      last-command-event and added autoload magic strings.
    (hmouse-mod-set-global-map, hmouse-mod-unset-global-map): Modified to
      save the prior global map and restore it later.
    (hmouse-mod-execute-command): Added setting of prefix argument for
      commands and made to support any self-inserting-character.
    (hmouse-mod-toggle): Added to toggle this on and off.
  hmouse-drv.el (action-key, assist-key): Added clear of action and assist
    key depressed flags so hmouse-mod.el works properly.

* hmouse-tag.el (smart-java-at-tag-p): Prevented @ annotation matches.
                (smart-java-keywords, smart-c++-keywords,
                 smart-c-keywords, smart-objc-keywords, smart-python-keywords):
    Added to prevent tag matches in smart-*-at-tag-p.
		(smart-asm-at-tag-p, smart-c-at-tag-p)
                 smart-fortran-at-tag-p, smart-lisp-at-tag-p):
    Added optional no-flash parameter for when called after button has
    already been flashed.

* man/hyperbole.texi (@smallexample): Changed most of these to @example
    because the text was too small.

2016-06-06  Bob Weiner  <rsw@gnu.org>

* kotl/klink.el (klink:at-p): Greatly tightened matching by checking for
    klink prefixes and that pathnames are valid.

* hycontrol.el (hycontrol-frames): Added 1-9 argument for zoom amount.

* hui-menu.el (hui-menu-options): Updated Change-Key-Bindings item names
    and added HyControl-Windows.  For minibuffer menu, added ControlWin entry.

* man/hyperbole.texi (Menus): Added pulldown menu cindex entries and
    matched index entries exactly to the menus.

* hycontrol.el (hycontrol-save-frame-configuration, hycontrol-save-window-configuration):
    Added missing interactive specifiers.

* man/hyperbole.texi (Glossary): Added Buffer, Frame, HyControl and Window definitions.
                     (HyControl): Added this chapter.

* hyperbole.el (hkey-initialize): Added {C-c \} key binding to hycontrol-windows.

* man/hyperbole.texi (Smart Key Thing Selection): Renamed from Smart Key Selection.
                     (Smart Key Argument Selection): Renamed from Entering Arguments.
		     (Questions and Answers): Added some additional Q&A.

* hactypes.el (link-to-Info-node): Removed hpath:absolute-to call.
    Later Info-goto-node call fully resolves Info pathnames.

2016-06-04  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:htype-help): Optimized replaces in temp-buffer hook.
         (hui:htype-help-current-window): Added and used in Hyperbole Doc
    menus for consistency of documentation display.
  hui-mini.el (hui:menus):
  hui-menu.el (infodock-hyperbole-menu): In Types menu, called above func.

* hargs.el (hargs:delimited): Fixed to handle backslash quoted end delimiters.

* hmouse-tag.el (smart-c-use-lib-man): Made small doc improvements.

2016-06-02  Bob Weiner  <rsw@gnu.org>

* hui-menu.el (hui-menu-screen): Added.
	      (hui-menu-cutoff-list): Added.
              (hui-menu-global-buttons):
  hui-jmenu.el (hui-menu-of-frames, hui-menu-of-buffers,
    hui-menu-of-windows): Called hui-menu-cutoff-list.
               (hui-menu-of-buffers): Changed from buffers-menu-max-size
    to hui-menu-max-list-length for cutoff menu size.
  hui-jmenu.el (hui-menu-sort-buffers): Fixed reverse sort order issue.

* hui-jmenu.el (hui-menu-to-window): Added error if window is not live
    and forced skipping of minibuffer.
               (hui-menu-modeline): Changed to a function so is
    dynamically recomputed each time as it needs to be.

* hypb.el (hypb:char-count): Added.
  hui-mini.el (hui:menu-help): Simplified with call to hypb:char-count.

2016-06-01  Bob Weiner  <rsw@gnu.org>

* hui-jmenu.el (hui-menu-wconfig): Moved from hui-menu.el since used here first.

* hycontrol.el: Added this for quick, interactive sizing, moving,
    replicating and deleting of windows and frames.
  hui-mini.el (hui:menus): Added new Screen submenu to work with hycontrol.el.
* hui-menu.el (require): hui-jmenu and added its menus to the newly added Screen menu.

* man/hkey-help.txt: Clarified and fixed modeline documentation

* wrolo.el (rolo-grep, rolo-isearch, rolo-isearch-for-regexp): Made all
    finds and searches in the rolo consistent and case-insensitive by
    temporarily setting case-fold-search to t in these functions.  Other
    functions already had this.
    (rolo-grep): Fixed so when a raw numeric-style prefix argument is given,
      it is always converted to and evaluated as an integer.

2016-05-31  Bob Weiner  <rsw@gnu.org>

* DEMO: Updated horizontal and vertical drag exercises to correspond to
    current Hyperbole behavior.

* man/hyperbole.texi (Rolo Keys): Added doc for the {l} key.

* wrolo.el (rolo-grep): Added support for using bbdb-file in
    rolo-file-list for searches.
    (rolo-file-list): Automatically added bbdb-file to search list if it
      is set before wrolo is loaded.
    Renamed rolo-buf arguments to rolo-file-or-buf wherever a filename or
      buffer is acceptable.
    (rolo-show-levels): Added to handle the bulk of {t} and {o} keys.
      Added show of all match buffer @loc headers and maximized the number
      of entries displayed for any given location of point.
    (rolo-top-level, rolo-overview): Called rolo-show-levels.
    (rolo-isearch-for-regexp): Added.
    (rolo-isearch, rolo-isearch-regexp, rolo-locate): Rewrote and called rolo-isearch-for-regexp.
    (wrolo-mode-map): Changed to {M-s} rolo-isearch and {C-u M-s} rolo-isearch-regexp key bindings.

* man/hyperbole.texi (Smart Key Bindings): Removed {C-c C-t} binding for
    hmouse-toggle-bindings to force the user to invoke this command by name or
    to bind it themselves, so they really know what they are doing before use.
    Also, this key collided with outlining usage in the Koutliner and Rolo tools.
    Suggested a personal binding if needed.
  hyperbole.el (hkey-initialize): Removed {C-c C-t} global binding.
  hmouse-key.el (hmouse-toggle-bindings): Removed default disabling of
    this command since it is no longer bound to an easy to invoke key.
  hui-menu.el (hui-menu-options): Removed Toggle-Mouse-Keys.
  hui-mini.el (hui:menus): Removed Toggle-Mouse key rebinding.

* hmouse-drv.el (hkey-help-show): Made ignore completion buffers;
    otherwise, was changing the current buffer to the completions list
    when it should have been the minibuffer window.
  hargs.el (hargs:set-string-to-complete): Fixed to prevent window
    movement with save-window-execursion instead of save-excursion.

* wrolo.el (rolo-date-format): Added.
           (rolo-current-date): Rewrote to use rolo-date-format.
           (rolo-set-date): Rewrote to add tab char. insertion here rather
    than in rolo-current-date.

* wrolo.el (rolo-isearch): Rewrote to handle string isearch only.
           (rolo-isearch-regexp): Added to handle regexp isearch only.

2016-05-30  Bob Weiner  <rsw@gnu.org>

* hui-menu.el (infodock-hyperbole-menu): Renamed Action-Types to Show-Action-Types
    and Implicit-Button-Types to Show-Implicit-Button-Types.
* hui.el (hui:bind-key): Allowed C-g to quit this operation.

* hmouse-sh.el (hmouse-unshifted-setup): Changed to take
    hmouse-middle-flag as a parameter and to use var:add-and-run-hook.

* hmouse-tag.el (smart-lisp-bound-symbol-def): Added with fix for if one
    of the 3 functions called herein triggers an error.  Previously, the
    condition-case was outside of all three, preventing testing each in turn
    if one signaled an error.
                (smart-lisp, smart-lisp-at-known-identifier-p): Called
    above function here.

* wrolo.el (rolo-bbdb-grep): Modified to make buffer unmodified and set to
    read-only after entries are added.

==============================================================================
V5.12 changes ^^^^:
==============================================================================

2016-05-29  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hkey-install-override-local-bindings): Called var:run-hook-in-matching-buffer
    to ensure existing buffers are affected by the hook change.

* hui-em-but.el: Removed window-system test since faces now work on dumb terminals.

* hui-menu.el (hyperbole-popup-menu): Added to access the menubar menu as
    a popup and for possible use as action-key-default-function.

* hmouse-tag.el (smart-python, smart-python-tag, (smart-python-oo-browser,
    smart-python-at-tag-p): Added these functions to handle Python identifiers
    much better.
  hui-mouse.el (hkey-alist): Updated to use smart-python.
  man/hyperbole.texi (Smart Key - Python Source Code), HY-NEWS: Added this doc.

* man/hyperbole.texi: Added separate subsections for each major context of
    the Smart Keys for easier quick reference.  Updated ordering of contexts
    and added some missing ones.

2016-05-28  Bob Weiner  <rsw@gnu.org>

* kotl/kproperty.el: Added (require 'hyperbole) to ensure kotl/ is in load-path.
    Needed during package install.

2016-05-27  Bob Weiner  <rsw@gnu.org>

* wrolo.el (rolo-edit-entry): Added errors for when not on an entry line
    or when attempting to edit a BBDB entry.

* hui-select.el (hui-select-at-delimited-thing-p): Changed to return nil
    if on a punctuation character that is not a comment.
    (hui-select-thing-with-mouse): Simplified buffer-substring calls with match-string.

* hbut.el (hattr:copy): Removed empty unwind-protect body.

* set.el (set:create, set:intersection, set:difference): Reversed results to keep in stable order.
  hbut.el (ebut:list): Removed nreverse call after set:create.

* hvar.el (var:append): Added error messages if called with invalid
    arguments and made it return the value of the 1st argument symbol.

* hibtypes.el (Info-node): Allowed for `single' quotes around the referent.

* hpath.el: Simplified buffer-substring calls with match-string.
            (hpath:remote-at-p):
            (hpath:remote-p): Rewrote to beter support tramp package.
            (hpath:remote-available-p): Fixed to always return a package symbol or nil.

* wrolo.el (rolo-bbdb-fgrep, rolo-bbdb-grep): Added these commands to integrate the BBDB with
    the Rolo.
    (wrolo-mode-map): Added {o} key bound to new function rolo-overview.  Shows first
      line of all levels of rolo matches.
    (rolo-top-level): Added and bound to {t} since previous binding of {t}
      did not work when multiple levels of cells were showing upon command invocation.
    (rolo-isearch, rolo-locate): Rewrote and required press of {C-s} following this call.
  man/hyperbole.texi (Rolo Keys): Updated doc to reflect {M-s C-s}
    sequence and new {o} key binding.  Improved doc of {t} binding.
    (wrolo-mode-map): Added additional {Shift-TAB} binding to move
       backwards by one rolo match.
    (rolo-verify): Added to verify appropriate commands are called
       from the match buffer and that match string exists.

2016-05-26  Bob Weiner  <rsw@gnu.org>

* hui-jmenu.el: Added for buffer, frame and window popup menu on the
    Assist Key when pressed on the main part of a modeline.
  hui-window.el (assist-key-modeline-function): Set to hui-menu-display-commands.
  Makefile (EL_COMPILE, ELC_COMPILE): Added hui-jmenu.{el,elc}.
  MANIFEST: Added hui-jmenu.el entry.
  HY-NEWS: Added writeup about this.

* hui-window.el (assist-key-modeline): Fixed naming issue with the Smart
    Key help buffer that prevented hiding it with a click of the Assist
    Modeline Key.

* hmouse-tag.el (smart-lisp): Rewrote to use find-func.el library functions
    that use symbol load history to quickly find Emacs Lisp identifiers
    without any TAGS file.  Also now find face definitions as a result.
    Used buffer-substring-no-properties throughout this file.
                (smart-lisp-at-known-identifier-p): Rewrote in similar way to
    smart-lisp.
                (smart-emacs-lisp-mode-p): Fixed match for *Compile-Log* buffer.

* hmoccur.el (moccur-mode-display-occurrence, moccur-noselect): Added and
    bound to {C-o} to display occurrence in source file without jumping to
    it.
             (moccur-mode): Improved doc and derived from special-mode so
    can now quit with {q} and have frame restored like in occur-mode and
    help-mode.

2016-05-25  Bob Weiner  <rsw@gnu.org>

* hmouse-tag.el (find-func): Required this library.
                (smart-tags-noselect-function): Added
    find-definition-noselect as the best way to locate a function def.

* kotl/kotl-mode.el (kotl-mode:completion-kill-region): Added for
    overloading binding of {C-w} when completion.el package is loaded.

* hyperbole.el (hversion): Rewrote require of this file to handle when
    hyperb:dir is not yet in the load-path but load-file-name is set.
    (inhibit-hyperbole-messaging): Added this variable with a default of t.
       When t, Hyperbole will not alter messaging mode hooks nor overload
       functions from these packages, preventing potential
       incompatibilities.
  hvar.el (var:append): Does nothing when inhibit-var-append is non-nil.
          (var:append): Simplified and saved additions for possible future removal.
          (var:append-all, var:remove, var:remove-all): Added.
  hyperbole (hyperbole-toggle-messaging): Added.
  hui-menu.el (hui-menu-options): Added Toggle-Messaging-Explicit-Buttons.
  hui-mini.el (hui:menus): Added Cust/Msg-Toggle-Ebuts.
  man/hyperbole.texi (Buttons in Mail, Buttons in News): Updated these
    sections to document new ability to toggle messaging ebut support on
    and off.

* hinit.el (hyperb:init): Changed var:append call to add-hook.
  hsite-ex.el (hui:but-flash): GNU Emacs now has faces on ttys, so enabled
    explicit button flashing on them.  Changed var:append call to add-hook.

* hui-mouse.el (outline): Rewrote hook adding and supported outline-minor-mode.

* hypb.el (hypb:rgrep): Improved pattern quoting, dynamically changing
    pattern delimeters when patterns contain quote marks.  Still need to
    backslash double quotes in patterns.

* hsmail.el (smail:comment): Disabled by default since not many people
    ever embedded buttons in mail.

* hypb.el (hypb:toggle-isearch-invisible): Added and used in menus.
  hui-menu.el (hui-menu-options): Added Toggle-Isearch-Invisible-Text,
    most useful in the Koutliner to allow searching only within visible
    text if desired.
  hui-mini.el (hui:menus): Added matching Isearch-Invisible item.

2016-05-24  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:reveal-toggle-invisible): Added to cleanly
    handle isearch temporary showing of invisible text and to leave any
    isearch exit point visible.

* hibtypes.el (pathname): Tightened to ignore matches in dired and buffer
    menu modes.

* hyperbole.el (package-generate-autoloads): Let `noninteractive' be t to
    silence autoload generation messages.  (Former value of
    inhibit-message is not defined in some V24 Emacs.

* kotl/kimport.el (kimport:aug-post-outline, kimport:star-outline,
    kimport:text): Fixed to handle now that count-matches when called
    non-interactively returns its value rather than printing it,
    eliminating the need to call read with its result.

==============================================================================
V5.11 changes ^^^^:
==============================================================================

2016-05-24  Bob Weiner  <rsw@gnu.org>

* hyperbole.el: Hyperbole now downloads, builds and installs as a regular
   Emacs package.
  HY-README: Rewrote Obtaining and Installation instructions for Hyperbole
    as an Emacs package.

* man/hyperbole.texi (Installation): Updated with package support.
                     (By-hand Installation): Added this section.

* hyperbole-pkg.el (:keywords): Fixed to be strings.

* HY-WHY.kotl: Added to provide quick reasons to use Hyperbole.

* kotl/kotl-mode.el (kotl-mode:add-cell): Added missing idstamp increment
    when adding a child.

* kotl/kview.el (kview:add-cell): Simplified doc.
  kotl/kotl-mode.el (kotl-mode:kill-tree):
  kotl/kfile.el (kfile:create): Changed label to "1" as it should be.

* hib-kbd.el (kbd-key:normalize): Use kbd function first and if that does not
    help produce a key binding, manually normalize the key sequence.

* hversion.el (hyperb:stack-frame, hyperb:path-being-loaded): Moved here
    from hyperbole.el so can be used within hsite.el as well.
  hsite-ex.el (hyperb:stack-frame '(package-install)): The Emacs package
    installer might load this file during package installation before
    hyperbole.el is loaded. Test for this case and allow.
              (hversion): Required.

2016-05-23  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hyperb:package-autoloads-subdirectories-p): Added code to
    ensure Koutliner autoloads in kotl/ subdirectory are generated and
    loaded since these are now generated by the Emacs package system which
    may require a patch to handle subdirectories in patches.  Hyperbole
    automatically applies the patch if need be.
               (hyperb:init): Call this after-init-time so {M-RET} binding
    and others are not overridden.

* Makefile (dist): Removed and replaced with package target.

* hmouse-tag.el (smart-lisp-at-tag-p): Added /, = and ? as valid identifier characters.

* Makefile (temp_dir): Removed this directory; used dist_dir instead.
           (dist_hyperbole): Renamed from temp_hyperbole.

* hpath.el (hpath:push-tag-mark): Added xref support.

* kotl/EXAMPLE.kotl:
* man/hyperbole.texi (View Specs): Noted that turning ellipses off may not work in Emac25.

2016-05-22  Bob Weiner  <rsw@gnu.org>

* hyperbole.el ((hkey-override-local-bindings, hkey-global-set-key): Added key-description to saved key list
    and fixed the first function to override keys properly.

* man/hyperbole.texi (Autonumbering):
  kotl/kvspec.el (kvspec:label-type-alist):
  kotl/kmenu.el (kotl-menu-common-body):
  kotl/kview.el (kview:default-label-type, kview:set-label-type): Disabled partial-alpha, start and
    no labeling in outlines since there are likely problems with each and
    no major need for them.

* kotl/kview.el (kview:id-counter): Added and used.

* kotl/kotl-mode.el (kotl-mode:add-cell): Conditionalized
    klabel-type:update-labels call to update sibling labels to apply only to
    label-types that require sequential updating.  This eliminated a problem
    when idstamp labels were in use and the counter would increase twice for
    each cell added.

* kotl/klabel.el (klabel:idstamp-p): Added and used to prevent
    incrementing idstamp count in multiple places.

* kotl/kview.el (kcell-view:create): Generalized and rewrote the way label
   is generated to account for kview's label-type.
  kotl/kotl-mode.el (kotl-mode:kill-tree):
  kotl/kfile.el (kfile:create): Called kview:add-cell with parameter of
    "0" rather than "1" so proper label type is generated.
    (kcell-view:create): Updated to handle various label-types.

* kotl/klabel.el (klabel-type:increment, klabel:increment-alpha)
    (klabel:increment-partial-alpha, klabel:increment-legal): Changed to
      compute first child of 0 root cell, rather than trigger an error.

* kotl/kview.el (kview:set-label-type): Reset per kview function
    definitions even if the label type doesn't change, as these function
    definitions might have changed.

* kotl/klabel.el (klabel-type:function): Removed string formatting of
    idstamp labels as they are already returned as strings.

* kotl/kview.el (hyperb:emacs-p): Optimized to skip to the end of each kcell property

* kotl/klabel.el (klabel-type:child, klabel-type:increment, klabel:level, klabel-type:parent):
    Added support for idstamp and partial-alpha labels.

* kotl/kotl-mode.el (kotl-mode:end-of-cell): Fixed handling of arg other
    than 1 and noted that this applies only to visible cells.

* kotl/kview.el (kcell-view:level): Deleted save excursion and stopped moving point.

* kotl/klabel.el (klabel-type:legal-label): Improved naming and fixed
    where string should have been referenced but index was instead.
    (kotl-label:log26): Deleted and replaced with a direct call of (log n 26).
    (klabel-type:update-tree-labels): Added missing first-label parameter.

* kotl/kmenu.el (kotl-menu-common-body): Rearranged movement items so prev
    item of matching item pair always comes first.

* kotl/kotl-mode.el (kotl-mode-map): Added explicit {C-x i} binding to
   kotl-mode:insert-file since sometimes, e.g. with ido.el loaded, the
   insert-file command is remapped to another command in the global map and
   then the implicit local key binding doesn't happen.
  kotl/kimport (kimport:insert-file): Renamed from kotl-mode:insert-file.
               (kimport:insert-file-contents): Renamed from kotl-mode:insert-file-contents.
	       (kimport:insert-buffer): Renamed from kotl-mode:insert-buffer.
	       (kimport:insert-register): Renamed from kotl-mode:insert-register.

* kotl/klink.el (klink:at-p): Fixed issue with missing fall-through
    condition causing <@ 2b1a> style klinks to be missed.

2016-05-21  Bob Weiner  <rsw@gnu.org>

* hsite-ex.el (find-file-hook): Changed from older find-file-hooks.

* kotl/kfile.el (kfile:find-file-hook): Removed; unnecessary since file
    reading code has already put point at a valid position before this hook
    was called to do that.  Removal eliminates mutual dependency on
    kotl-mode.el.

* man/hyperbole.texi (Hook Variables):
  hinit.el (hyperb:init):
  DEMO (hyperbole-init-hook): Renamed this variable from hyperb:init-hook.

* hactypes.el (annot-bib): Fixed to not move point in source window.

* hbut.el (ebut:key-src): Tightened search for @loc> button source to only
    look prior to the end of the current line.  Also, changed to ignore
    this source if the explicit button is within a file buffer.  This
    fixed an issue in DEMO where the wrong button source was chosen for an
    explicit button because of a @loc> later in the file.

* dir: Added as part of Hyperbole packaging for adding Hyperbole to the
    Emacs category info directory tree.

* DEMO:
  man/hyperbole.texi:
  hui-mini.el (hui:menus): Changed all references of Outliner to Koutliner.

* Makefile (version): Added man/version.texi version number check.

* hrmail.el (require): Simplified requires.

* hyperbole.el ("Hyperbole %s is ready for action."): Added version number
    to this message.
               (autoload): Removed duplicative autoloads now loaded from
    hyperbole-autoloads.
  kotl/kotl-mode.el (require): Removed kview and kimport; added kfile.
  kotl/kfile.el (require): Removed kotl-mode; added kview.
  kotl/kimport.el (require): Added kotl-mode, allowing removal of more
    duplicative autoloads.


* hpath.el (hpath:display-buffer): Made an autoload since used in hooks.

* Makefile (package): Added this and packageclean targets.  Added remove
    of GNUmakefile.id (not used) in distclean.

2016-05-20  Bob Weiner  <rsw@gnu.org>

* hyperbole.el (hyperb:dir): Set from load-file-name if available, e.g.
    when Hyperbole is installed as an Emacs package.

* hyperbole-autoloads.el: Renamed from auto-autoloads.el and added kotl/
    autoloads in here as well.  Require this from hyperbole.el so it can
    redefine some of the autoloads to load more of Hyperbole when called.

* hypb.el (hypb:locate): Added and required locate library.
          (hypb:locate-pathnames): Added.
  hui-menu.el (infodock-hyperbole-menu): Added Find/Locate-Files.
  hui-mini.el (hui:menus): Added Find/LocateFiles.
          (hypb:rgrep): Rewrote so if in the *Locate* output buffer from
    the locate command, then the grep is done on the files listed therein.

* hyperbole.el (hkey-override-local-bindings): Fixed bug that argument is
    a cons pair, allowing for local binding overrides.

* hui-select.el (hui-select-at-delimited-thing-p): Rewrote to handle
    comments whose syntax is marked as punctuation and thus allow the
    action key to select comments.

2016-05-19  Bob Weiner  <rsw@gnu.org>

* hui-select.el (hui-select-comment): Added save-excursion in first cond
    predicate so point remains for 2nd conditional.

* hsite-ex.el: (hyperbole-loading): Prevented manual require/load of
    hsite library.  Require/load hyperbole library instead.

* kotl/kotl-mode.el (kotl-mode:to-visible-position): Updated so when
    backward-p is true, only consider visibility of the character before point.

* hui-select.el (hui-select-initialize): help-mode - match to Lisp symbols with : in
    their names, often included in help buffers.

* hargs.el (hargs:at-p, hargs:iforms-extensions):
  hactypes.el (link-to-Info-node): Removed old reference to Info-directory.
  (hargs:iforms-extensions): When reading a kcell label, match only to
  presently visible cells.

* hargs.el (hargs:read-match): Generalized doc string and if input is
    empty, return the default `initial-input' value instead.
  kotl/kview.el (kcell-view:visible-label): Added and used in hargs:read-match.

* kotl/kview.el (kview:get-cells-status): Added missing (goto-char start).

* kotl/kotl-mode.el (kotl-mode:demote-tree, kotl-mode:promote-tree):
  kotl/kview.el (kview:map-siblings, kview:map-expanded-tree, kview:map-tree):
    Called kotl-mode:to-start-of-line to handle edge case when a tree is
    collapsed, its branches hidden and point is after the hidden branches.
    Otherwise, the visible tree is missed.  Also ensured point ends up
    back in the same cell where it started.
    (kotl-mode:move-before, kotl-mode:move-after): Removed unused `orig' marker.

* kotl/kotl-mode.el (kotl-mode:start-of-line): Renamed to kotl-mode:to-start-of-line
    to clarify that it moves point.
                    (kotl-mode:just-one-space): Fixed point movement issue
    when point is within hidden text.

* kotl/kvspec.el (kvspec:initialize): Updated to use unless.
                 (kvspec:lines-to-show): Fixed to not alter which cells
  are visible; this in turn fixed display in kotl-mode:top-cells.

* hui-select.el: Removed all calls to with-syntax-table since there is no
    one table that works for all modes.  Better to simply modify each mode
    as needed for selection.
    (hui-select-thing): Solved problem where punctuation would not select
a region, so the region would never grow.  Now selects the word after point.
    (hui-select-punctuation): Fixed to select properly.
    (hui-select-initialize): Made . a symbol constituent in html and web
      modes so can select a series of object references like parent.child.subchild.

2016-05-18  Bob Weiner  <rsw@gnu.org>

* hui-select.el (hui-select-markup-modes, hui-select-initialize): Added
    support for web-mode (multiple language mode for HTML buffers).  Also
    bound {C-c .} for moving between matching tags in web-mode.

* hmouse-tag.el (smart-javascript-at-tag-p): Rewrote for much tighter matching.
                (smart-javascript-keywords): Added to ignore keywords as identifier matches.
  hui-mouse.el (hkey-alist): Added missing . after smart-javascript-at-tag-p test.

* hyperbole.el (smart-javascript): Added missing autoload.

* kotl/klink.el (klink:at-p): Conditionalized smart-c-include-regexp to
    match only when in a C-based major mode, avoiding false hits in
    hmtl-mode, for example.

* wrolo-menu.el (wrolo-menubar-menu):
  kotl/kmenu.el (kotl-menubar-menu):
  hui-menu.el (hui-menu-options):
  hinit.el (hyperb:init-menubar):
  hui-menu.el (hyperbole-menubar-menu): Fixed so current-menubar is not
    referenced under GNU Emacs and improved readability.

* kotl/kotl-mode.el (kotl-mode-map): Added [backtab] (Shift-TAB) binding
    to promote a tree (used to only be M-TAB but many outliners use
    Shift-TAB.

* hyperbole.el (wconfig-ring-empty-p): Added missing autoload for this
    which is referenced in the Hyperbole menubar menu.

* hversion.el (hyperb:mouse-buttons): Changed so Windows default is 3
    mouse buttons as many mice now have 3 buttons or can emulate 3 buttons.

* hsite-ex.el (htz:local): Hyperbole now automatically sets the timezone
    under Windows; manual modifications are no longer necessary.  Added
    conditionalized (require 'htz) here.
  htz.el (htz:local): Modified for MS Windows which returns things like
    "Eastern Daylight Time", so abbreviate to the first letter of each
    word for matching to htz:world-timezones.

2016-05-17  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:collapse-tree, kotl-mode:expand-tree):
   Fixed to not expand hidden cell when given the all-flag.
                    (kotl-mode:hide-subtree): Fixed to handle when point
   is in a hidden part of the tree.
                    (kotl-mode:move-after, kotl-mode:move-before): Changed
   to leave point at the start of the root of the moved or copied text, so
   user can see and further manipulate this text.

* kotl/kview.el (kview:get-cells-status, kview:set-cells-status, kcell-view:lines-visible,
    kcell-view:next-invisible-p, kview:map-expanded-tree):
      Added these functions and used in kview:map-* functions to restore
      cell view status after manipulation.
                (kview:move):
  kotl/kotl-mode.el (kotl-mode:fill-tree, kotl-mode:fill-cell): Rewrote to
      utilize above new functions and to greatly improve maintaining the
      same view when some cells are collapsed and invisible.

* kotl/kvspec.el (kvspec:show-lines-this-cell): Added and used.

* kotl/kview.el (kview:map-branch, kview:map-siblings, kview:map-tree):
    Added a second save-excursion to eliminate movement within the kview
    if the kview is not within the current buffer.

* kotl/kotl-mode.el (kotl-mode:fill-cell): Changed to call
    kcell-view:collapsed-p.
    (kotl-mode:fill-tree): Fixed bug that did not expand whole tree for filling.

* wconfig.el (wconfig-set-window-configuration): Added and used throughout
    to handle bad wconfig entries.

* hinit.el (hyperb:init-menubar): Fixed to add Hyperbole to the menubar
    after emacs initializations are run.

2016-05-16  Bob Weiner  <rsw@gnu.org>

* kotl/kvspec.el (kvspec:show-lines-per-cell): Simplified to first show
    all lines in all cells.

* kotl/kview.el (kview:map-region): Added to apply a function to either
    all or all visible cells within an active region.
    (kview:map-branch, kview:map-tree): Simplified.

* kotl/kotl-mode.el (kotl-mode:delete-indentation): Slightly improved doc.

* kotl/kview.el (kview:char-visible-p, kview:first-invisible-point): Added.

* kotl/kotl-mode.el (kotl-mode:shrink-region, kotl-mode:valid-region-p,
    kotl-mode:maybe-shrink-region-p):
      Added these new functions and used the last one at the start of each
      kotl-mode editing command to trigger an error if the region spans more
      than one cell, e.g. after a mouse drag.
    (kotl-mode:indent-region): Called last above function.
    (kotl-mode:shrink-region-flag): Added with default value of nil.
       When enabled, automatically shrinks the region to within a single cell
       before edit commands.
    (delete-selection-pre-hook): Overrode this function from delsel.el to
       possibly auto-shrink the region.
    (kotl-mode:*): Added mode-specific support for delete-selection-mode from delsel library.
    (kotl-mode:electric-newline-and-maybe-indent, kotl-mode:electric-indent-just-newline,
     kotl-mode:reindent-then-newline-and-indent): Added.
    (kot-mode:newline): Made arg optional and added delete of excess horizontal space before insertion.
    (kotl-mode:yank):
    (kotl-mode:yank-pop): Updated with latest Emacs changes.
    (kotl-mode:exchange-point-and-mark): Added and used.
    (kotl-mode:clipboard-yank): Added.
    (kotl-mode:quoted-insert): Added to overload quoted-insert.

* Makefile (distclean): Remove auto-autoloads.* files.  This is created
    when the package is installed.
  hyperbole-pkg.el ("hyperbole"): Defined attributes for release as a package.

2016-05-14  Bob Weiner  <rsw@gnu.org>

* README: Added symbolic link to HY-README for Emacs package system.

* man/hyperbole.texi (Glossary): Added entries for Tramp and remote pathname.

* kotl/kview.el (kview:create): Added (kview:is-p) test in case kview
    exists already.  This may eliminate a sporadic issue where a kview
    data structure becomes invalid.

* hui-mini.el (hyperbole):
  hmouse-drv.el (hkey-help): Removed (require 'hsite) since the
    hyperbole.el file now takes care of this.

* hyperbole.el: Removed duplicative adding of Hyperbole directories to load-path
    and restored conditional adding of kotl/ directory.
  hinit.el (hui-menu-remove): Made this an autoload and moved from hyperbole.el.

* hypb.el (hypb:debug):
  hyperbole.el (autoload): Changed all to load "hyperbole" rather than "hsite".
               (hypb:chmod): Changed from (function) to #'.

* hibtypes.el (rfc):
  hactypes.el (link-to-rfc): Generalized doc.
  hsys-w3.el (www-url-find-file-noselect): Generalized.
  hyperbole.el (hpath:find-file-urls-p): Renamed from hyperb:find-file-url-support-p.
               (hpath:remote-regexp): Renamed from hyperb:efs-path-and-url-regexp.
               (hpath:handle-urls): Renamed from hyperb:handle-urls.
    Rewrote to generalize and support Tramp.
    Moved all hpath:* functions and variables from here to hpath.el.
  hpath.el (hpath:enable-find-file-urls, hpath:disable-find-file-urls): Rewrote to use Tramp.
           (hpath:efs-*): Renamed all to hpath:remote-*.
           (hpath:remote-default-user, hpath:remote-available-p): Added newer
    Tramp library support and changed to return the symbol for the package to use.

* hib-doc-id.el: Updated documentation and removed site-specific code.

==============================================================================
V5.10 changes ^^^^:
==============================================================================

* hyperbole.el (hsite): Added code to automatically install hsite.el and
    to warn if hsite-ex.el is newer.

* man/hyperbole.texi (Glossary): Added InfoDock and the OO-Browser definitions.

* hyperbole.el: Moved complete hyperb:dir setup here from hversion.el.
    Moved Hyperbole initialization here from hsite-ex.el.  Changed so this
    file requires hsite rather than vice-versa, allowing for single file
    loading and initialization of Hyperbole, including adding it to the
    load-path.  Do not separately require or load hsite anymore.

2016-05-13  Bob Weiner  <rsw@gnu.org>

*  man/hyperbole.texi (Koutliner Keys):
   kotl/EXAMPLE.kotl:
   kotl/kotl-mode.el (kotl-mode:overview, kotl-mode:show-all, kotl-mode:top-cells): Added
     optional prefix arg to toggle display of blank lines viewspec.

* hui-mouse.el (smart-outline-subtree-hidden-p): Fixed to not move point.

* hyperbole.el (hui-menu-remove): Deleted support for older XEmacs versions.

* Removed (function) quote from all lambda calls; lambda is self-quoting now.
  Removed #' quoting from lambdas; any current emacs version should support this.

* kotl/kotl-mode.el (kotl-mode:backward-word, kotl-mode:forward-char, kotl-mode:forward-word):
    Updated to use some new primitives.
                    (kotl-mode:hide-tree): Added kotl-mode:start-of-line to ensure whole
    tree is expanded.

* kotl/kview.el (kview:previous-visible-point, kview:first-visible-point): Added.
  kotl/kotl-mode.el (kotl-mode:eolp, kotl-mode:eocp): Documented to handle
    only visible locations.
                    (kotl-mode:to-visible-position): Added.

* kotl/kview.el (kcell-view:next-kcell): Added and used in kcell-view:next.
                (kcell-view:previous-kcell): Added and used in kcell-view:previous.
		(kcell-view:invisible-p): Added and used.

* kotl/kvspec.el (kvspec:hide-levels): Removed call to kview:set-attr
    which was duplicated in the subcall to kvspec:levels-to-show.

* kotl/kotl-mode.el (kotl-mode:tree-end): Fixed to go to end of current
    cell when at the end of the tree and used in kotl-mode:mail-tree.

* hsmail.el: (mail-yank-original): Changed all calls of insert-buffer to insert-buffer-substring.

* hsmail.el:
  hrmail.el (rmail-forward): Replaced mail-setup-hook with message-setup-hook.
  hyperbole.el (mail-mode-hook): Changed to newer message-mode-hook.


* wconfig.el (wconfig-ring-empty-p): Added and used in Hyperbole menus.

* kotl/kotl-mode.el (kotl-mode:copy-to-buffer, kotl-mode:mail-tree): Changed to call kfill:forward-line.
  hypb.el (hypb:insert-region): Rewrote.
  kotl/kview.el (kview:char-invisible-p): Added this function and called in hypb:insert-region.

2016-05-12  Bob Weiner  <rsw@gnu.org>

* kotl/kvspec.el (kvspec:label-type-alist): Changed 'idstamp' to 'id' to
    properly match label-type value.

* kotl/kview.el (kview:move): Ensured collapsed cells list is created
    before the cells are moved, since insert may not retain collapsed
    properties.
                (kcell-view:collapse):
  kotl/kotl-mode.el (kotl-mode:collapse-tree): Fixed to leave first line of cell visible.

* kotl/kprop-em.el (kproperty:map):
  kotl/kprop-xe.el (kproperty:map): Changed so function called receives no arguments.
                   (kproperty:map): Removed version for old XEmacs releases.

* kotl/kprop-em.el (kproperty:map):
  kotl/kview.el (kcell-view:to-label-end): Rewrote.

* kotl/klabel.el (klabel-type:to-label-end): Deleted.
  kotl/kview.el (kcell-view:to-label-end): Defined `kcell-view:to-visible-label-end' and called;
    also simplified this function.
                (kview:set-functions): Deleted to-label-end attribute; no longer needed.

* HY-NEWS: Updated release numbers to Hyperbole major version 5.

* kotl/kcell.el (kcell:create, kcell:set-creator):
  hbdata.el (hbdata:build):
  hypb.el (hypb:user-name): Added and used.
  hinit.el (hyperb:user-email): Added this variable and used to set the
    creator and modifier fields in Koutline cells.
           (hyperb:init): Initialized hyperb:user-email.  Deleted `hyperb:host-domain' variable.
    Use hyperb:user-email instead.
  hypb.el (hypb:domain-name): Used message-user-fqdn variable when set and
    added potential call of 'hostname -f' to get fully-qualified domain name.

* kotl/kotl-mode.el (kotl-mode): Added call to kotl-mode:show-all prior to
    any change of major mode in a koutline buffer.  Also, made more
    variables buffer-local.

* kotl/klabel.el (klabel-type:to-label-end): Changed all returned
    functions to first move to the beginning of the line to ignore any labels
    hidden within a collapsed tree.
                 (klabel:set): Replaced delete-backward-char call with delete-char.

2016-05-11  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:cell-attributes, kotl-mode:cell-help): Changed to call with-help-window.

* hui-em19-b.el: Renamed to hui-em-but.el.
  hyperbole.el:
  hversion.el (hyperb:window-sys-term):
  hui-window.el:
  hpath.el (hpath:find-alist):
  hmouse-sh.el: Changed references from emacs19 to emacs.
  hversion.el (hyperb:emacs19-p): Renamed to hyperb:emacs-p.

* hmouse-sh.el (hmouse-get-bindings, hmouse-setup, hmouse-get-unshifted-bindings):
    Added left- and right-fringe window drag support.

* hui-mouse.el (hkey-alist): Tightened predicate at end for outline-minor-mode.

* kotl/kotl-mode.el (kotl-mode:finish-of-line): Updated to go to the end
    of the visible line and renamed to kot-mode:to-end-of-line.
    (kotl-mode:set-temp-goal-column):
    (kotl-mode:eocp): Changed to call kotl-mode:eolp and rewrote that
    function to handle invisible newlines.
    (kotl-mode): Set track-eol to t for better end-of-line vertical movement.

* hui.el (hui:link-possible-types): Moved link to outline match to 2nd
    lowest priority, so that a link to file or directory is the default.
    Deleted link to elisp possibility as it can embed long elisp functions in
    the button data file and possibly not parse them correctly.

* kotl/kotl-mode.el (kotl-mode:line-move): Accounted for
   temporary-goal-column potentially being a cons.
   (kotl-mode:previous-line, kotl-mode:next-line): Unified begin and end
   messages with emacs.

2016-05-10  Bob Weiner  <rsw@gnu.org>

* kotl/kview.el (kview:move):
  kotl/kfill.el: (kfill:forward-line): Defined and used so can better
    control line movement.

* hypb.el (hypb:insert-region): Rewrote to handle all invisible text.
  hyperbole.el (outline-invisible-in-p): Added.
  hui-mouse.el (smart-outline-subtree-hidden-p):
  hypb.el (hypb:insert-region):
  kotl/kvspec.el (kvspec:show-lines-per-cell):
  kotl/kview.el (kcell-view:collapse, kcell-view:expand, kview:move, kcell-view:collapsed-p):
  kotl/kotl-mode.el (kotl-mode:fill-tree, kotl-mode:collapse-tree, kotl-mode:expand-tree,
                     kotl-mode:hide-subtree, kotl-mode:show-all, kotl-mode:hide-tree,
                     kotl-mode:fill-cell): Rewrote to use only outline-*
    functions, e.g. changed subst-char-in-region call to outline-flag-region.
                    (kotl-mode): Added line-move-ignore-invisible true
    setting and call to add-to-invisibility-spec.
                    (kotl-mode:line-move): Changed to boolean test of
    selective-display rather than integet test.
                    (kotl-mode): Set selective-display to nil, as does outline-minor-mode.
    Helps with movement.

* hui-window.el (hmouse-context-ibuffer-menu): Added for IBuffer support
    for those who use it.  Can be set as action-key-modeline-function.

* man/version.texi: Added.

* hui-em19-b.el (after-init-time):
  hui-xe-but.el (hproperty:set-face-after-init): Added this to initialize face after emacs initialization.

2016-05-06  Bob Weiner  <rsw@gnu.org>

* kotl/kmenu.el (kotl-menu-remove):
  wrolo-menu.el (wrolo-menu-remove):
  hui-menu.el (hui-menu-remove): Replace these functions with a single
    macro, defined in hyperbole.el

* kotl/kfile.el: Changed to always require kmenu since menubars exist on dumb terminals now.

* hui-mouse.el (hkey-alist): Added support for xref item lists.  Action
    Key displays an xref file line or just a file containing an xref.
    Assist Key displays the same but leaves point in the listing buffer.

* hpath.el (hpath:find): Fixed to expand relative file names in Hyperbole
    buttons to absolute paths based on the source directory of the button,
    e.g. when referencing a global button from a buffer in a directory
    different than the source directory.

* wrolo-menu.el (wrolo): Added (require 'wrolo).
  wrolo.el (wrolo-mode): Removed (require 'wrolo-menu).  Reversed who
    requires whom for these two files.

* hui-menu.el (infodock-hyperbole-menu):
  kotl/kmenu.el (kotl-menubar-menu):
  wrolo-menu.el (id-popup-wrolo-menu): Switched from lmenu support to easymenu menus.
                (wrolo-menu-remove): Added and called.

* wrolo-menu.el (id-popup-wrolo-menu): Fixed Quit menu item when not under InfoDock.

*  hyperbole.el (rolo-fgrep-logical): Moved autoload from wrolo.el.

2016-05-05  Bob Weiner  <rsw@gnu.org>

* wrolo.el: Simplified.

* Makefile (HYPERBOLE_FILES): Added COPYING file with the GPL V3 in it.

* hui-mini.el (hui:menu): Removed this old name.  Use `hyperbole' instead.

* hui-window.el (hmouse-context-menu): Made interactive.

* hmouse-sh.el (hmouse-get-unshifted-bindings, hmouse-get-bindings,
    hmouse-setup, hmouse-unshifted-setup): Added header-line Smart Key
    bindings, though not doing with it right now.

* hui-mouse.el (smart-ibuffer-menu, smart-ibuffer-menu-assist): Added.
               (hkey-alist): Added ibuffer-mode after Buffer-menu-mode.
  man/hyperbole.texi (Smart Keyboard Keys): Document ibuffer support.

* hui-window.el (abs):
* hversion.el (locate-file): Removed conditional definition since this is
    included in all modern Emacs releases.
  hpath.el (hpath:find-executable): Changed to call file-executable-p.
  hibtypes.el (pathname): Removed fboundp test for locate-file.

* hversion.el (hyperb:path-being-loaded): Added this back; lost at some point.
  hyperbole.el (hyperb:dir): Set with hyperb:path-being-loaded when possible.

* *.el: Replace string-to-int with newer string-to-number calls.

* hpath.el (hpath:at-p): Eliminated any trailing colons.
  man/hyperbole.texi (Smart Keyboard Keys):
  hui-mouse.el (hkey-alist): Moved dired-mode priority above Hyperbole
    button priority so that files and pathnames don't trigger as implicit
    buttons.
               (smart-dired): Changed last line quit handler to skip
    marked deletions and just quit dired.  To execute marked deletions,
    press the Action Key on the first line of the buffer (the dired
    directory name).

* kotl/kotl-mode.el (kotl-mode:overview): Respect the blank-line viewspec,
    so the user can control it.

* man/hyperbole.texi (Smart Keyboard Keys):
  hui-mouse.el (smart-gnus-group, smart-gnus-group-assist): If
    `gnus-topic-mode' is active, and on a topic line, the topic is
     expanded or collapsed as needed.

* man/hyperbole.texi (Smart Keyboard Keys):
  hui-mouse.el (action-key-default-function): Added comment about setting
    it to #'hyperbole to bring up the Hyperbole minibuffer menu.

* hui-mini.el (hui:menus):
  hui-menu.el (infodock-hyperbole-menu):
  hypb.el (hypb:remove-lines, hypb:save-lines): Added and used in menus,
    so interactive prompts match menu names and mnemonics.

2016-05-04  Bob Weiner  <rsw@gnu.org>

* hsite-ex.el (hmouse-middle-flag): Added this setting.
  man/hyperbole.texi:
  hyperbole.el (hkey-initialize): Used here.

* kotl/kotl-mode.el (hyperb:xemacs-p): Conditionalized defalias calls for XEmacs.
    (kotl-mode:backward-or-forward-delete-char): Rewrote.
    (kotl-mode:insert-buffer): Changed call to insert-buffer-substring.

* kotl/kimport.el (kimport:file): Added missing argument to error call.
                  (kimport:copy-and-set-buffer): Changed call to insert-buffer-substring.

* hyperbole.el (show-all): Removed autoload.
  hui-mouse.el:
  wrolo-menu.el (wrolo-menu-common-body):
  hyperbole.el (outline-*): Added aliases to new outline-* functions for older
    emacs versions.
  wrolo.el: Called new outline-* functions.

* wrolo-menu.el:
  kotl/kmenu.el:
  hinit.el (hyperb:init-menubar): Eliminated hyperb:window-system test
    since menubars now work on dumb terminals.
           (hui-menu): Added missing require of this library.

* hyperbole.el (hkey-global-set-key): Added to save global key bindings
    which Hyperbole overrides.  Used in hkey-initialize.
  hmouse-sh.el (hmouse-set-key-list): Use hkey-global-set-key.

* Makefile (ps): Rewrote this target.

* hmouse-tag.el (tags): Removed (provide 'tags); this is never tested for
    anyway.
                (xref-*): Added xref helper function definitions.
                (smart-tags-find-p):
		(smart-tags-display): Added xref.el support for newer
    Emacs versions.
                (smart-tags-noselect-function): Added this support function.


* hmouse-key.el (action-key-depress, assist-key-depress,
    assist-key-depress-emacs19, action-mouse-key-emacs19): Removed
    (require 'hsite) since autoloads handle this.
    (action-mouse-key-emacs19, assist-mouse-key-emacs19): Added apply call
       to remove extra list layer here, rather than later.

* man/hyperbole.texi (Smart Key Bindings): Updated.
  hmouse-key.el (hmouse-shift-buttons): Renamed to hmouse-install since
   bindings are always on shift buttons now and rewrote.
  hyperbole.el (hkey-initialize):
* hmouse-reg.el (hmouse-get-bindings): Removed NEXTSTEP unshifted mouse
    key bindings, just use shifted ones on a 2-button mouse.  Also renamed
    to hmouse-get-unshifted-bindings.
                (hmouse-setup): Renamed to hmouse-unshifted-setup.
                (hmouse-unshifted-setup): Changed mouse key bindings so
    mouse-3 is never bound to the Assist Key; now it can be used for popup
    menus.  This binds only mouse-2 to the Action Key.
  hmouse-reg.el: Removed this file and merged into hmouse-sh.el.

2016-05-03  Bob Weiner  <rsw@gnu.org>

* wconfig.el (ring): Used ring.el to provide frame-specific, named window
     configurations and frame-specific window configuration rings.
  man/hyperbole.texi (Window Configurations): Updated documentation.

* hversion.el (hyperb:window-sys-term):
  hui-em19-b.el (hproperty:color-list, hproperty:good-colors): Added check
    for a window-system of gtk.

* hinit.el (hyperb:init): Fixed installation of
    hkey-override-local-bindings when hyperbole.el has already been loaded.

* hibtypes.el (hyp-address): Fixed string-match regexp.

* hbut.el (ebut:key-src): Fixed bug by moving to (point-max) before
    searching for hubt:source-prefix in a buffer with no attached file.
          (ebut:delimit): Rewrote to use markers.
          (hbut:comment): Don't add comments in messaging-related buffers
    even though they have comment syntax.

* hmail.el (hmail:composer): Changed default from mail-mode to
    message-mode, the newer setting for Emacs.

* h-skip-bytec.lsp (hmouse-set-point): Deleted this file and moved this
    function to hmouse-key.el since the issue that kept us from
    byte-compiling this function under X must be fixed by now.

* hui-mini.el (hui:menu-help): Prevented error message when window cannot
    be shrunk.
              (hyperbole): Updated documentation.

2016-05-02  Bob Weiner  <rsw@gnu.org>

* hui.el (hui:link-directly): Account for prior active region in
    determining default button label

* hui-window.el (hmouse-drag-horizontally): Moved down in priority to just
    before vertical drags.
                (hmouse-goto-depress-prev-point): Added.
                (hmouse-kill-region):
                (hmouse-kill-and-yank-region):
                (hmouse-yank-region):  Moved point to one end of the region
    that hkey-value stores.
                (hmouse-drag-region-active, hmouse-drag-not-allowed,
                 hmouse-goto-region-point): Added to handle the case
    where a region is active prior to a Smart Key drag; trigger an error.
  man/hkey-help.txt:
  man/hyperbole.texi (Smart Mouse Keys): Updated doc with these changes.

2016-05-01  Bob Weiner  <rsw@gnu.org>

* kotl/kmenu.el (kotl-menubar-menu): Add the menu before the OO-Browser
    menu, if on the menubar.

* hmouse-sh.el (hmouse-setup): Disabled kmacro-call-mouse-event which can
   create a global mouse key binding to [S-mouse-3] that conflicts with the
   Assist Mouse Key.

* hui-menu.el (infodock-hyperbole-menu):
  man/hyperbole.texi (Creating Outlines):
  hui-mini.el (hui:menus):
  DEMO: Renamed the Hyperbole Koutliner menus so they all start with K for
    consistency.  So now with the mini-buffer menu, type 'k' rather than
    'o' to utilize the Koutliner.

* hui-mini.el (hui:menus): Find>GrepFiles
  hui-menu.el (infodock-hyperbole-menu): Find/Grep-Files
  hypb.el (hypb:rgrep, hypb:rgrep-command): Added this command as an
    autoload and used in Hyperbole menus, replacing standard grep command
    for a much more effective grep.

* hmouse-tag.el (smart-tags-find-p, smart-tags-display): Fixed bug that
    overrode value of non-nil tags-table-list, sometimes preventing the
    Smart Key from showing a tag definition.

* hypb.el (hypb:configuration): Now adds the (HyDebug) entries from the
     Messages* buffer when composing a message to bug-hyperbole.

* hargs.el (hargs:completion): Generalized buffer-name match to include
    package-specific completions like *Ido Completions*" or any buffer
    in completion-mode.

* hypb.el (hypb:window-list): Simplified to use window-list which should
    be consistent across emacs variants now.

* hmouse-drv.el (hkey-help-show): Removed set-buffer call because the
    displayed buffer has already been selected. Don't use help-mode in
    buffers already set up with a quit-key to bury the buffer,
    e.g. minibuffer completions, as this will sometimes disable default
    left mouse key item selection.
  hpath.el (hpath:display-buffer, hpath:display-buffer)
           (hpath:display-buffer-other-frame): Changed to return selected
    window and updated doc.; this fixed a completions failure in hkey-help-show
    used in temp-buffer-show-hook.

* man/hkey-help.txt: Unified horizontal and vertical drag actions,
    regardless of drag direction (left or right; up or down).  Action Key
    splits the current window and Assist Key deletes it.
  man/hyperbole.texi (Smart Mouse Keys): Updated doc here too.
  hui-window.el (hmouse-split-window-horizontally): Renamed to hmouse-vertical-action-drag;
    removed window-min-width setting.
                (hmouse-split-window-vertically): Renamed to hmouse-horizontal-action-drag
    and used in horizontal drag action; removed window-min-height setting.
                (hmouse-vertical-assist-drag):
                (hmouse-horizontal-assist): Renamed to hmouse-horizontal-assist-drag.
		(hmouse-horizontal): Deleted.

==============================================================================
V5.09 changes ^^^^:
==============================================================================

2016-04-30  Bob Weiner  <rsw@gnu.org>

* hmouse-drv.el (hkey-help-show): Added call to hpath:display-buffer so
    buffer is shown according to user custom settings.

* hpath.el (hpath:display-buffer): Removed call to hpath:push-tag-mark.
    It may be interferring with region selection/manipulation via Smart
    Key drags.

2016-04-29  Bob Weiner  <rsw@gnu.org>

* hinit.el (hyperb:init): Prefer newer write-file-functions variable.
    Moved Hyperbole key bindings and local key override initialization
    here and made them run after the editor is fully initialized.

* hversion.el (hyperb:window-sys-term):
  hui-window.el (hmouse-split-window-horizontally, hmouse-split-window-vertically):
    Changed function prefix from 'sm-'.
                (hyperb:window-system): Changed to a defvar.

* hmouse-drv.el (hkey-toggle-debug): Added.
  hui-menu.el (hui-menu-options): Added Customize/Toggle-Smart-Key-Debug.
  hui-mini.el (hui:menus): Added Cust/Debug-Toggle.
  hmouse-drv.el (hkey-execute): Added flag hkey-debug and hkey-debug
    function to show the context and values from each Smart Key activation.

* hui-mouse.el (require 'hbut): Added so don't have to conditionalize (hbut:at-p) call.
               (hkey-alist): Simplified hbut:at-p predicate and stored it result
   for debugging purposes.  Removed separate call to hbut:label-p since hbut:at-p
   calls it.
* hyperbole.el (hkey-initialize): Added this function and moved all
    Hyperbole key bindings here.  Added it to after-init-hook so
    Hyperbole key bindings are added only after Emacs is initialized,
    allowing them to override defaults where necessary, notably with mouse
    keys.

* hmouse-drv.el (action-mouse-key, assist-mouse-key): Added clear of hkey-value.

* Makefile (dist): Removed copying of hkey-help.txt from $(data_dir_dist)
    into distribution since this might be an old copy.  Remove
    data_dir_dist variable since no longer used.

* hypb.el (hypb:configuration): Small text improvements.

* man/hyperbole.texi (Smart Keyboard Keys): Improved doc for unrecognized contexts.

* man/hkey-help.txt: Corrected that by default, an invalid context
   produces an error message rather than bringing up the Hyperbole
   minibuffer menu.

* MANIFEST:
  Makefile (TEXI2HTML): Changed to use standard makeinfo --html.
           (HTML_MANUALS): Removed.  Added html format of the manual to
the distribution.
           (ps): Updated dir variable names.

* hmouse-drv.el (hkey-help): Added check of newer Emacs variable
    help-window-select.

* hypb.el (hypb:push-mark): Deleted this old definition as all current
    Emacs versions have push-mark now.

* hmouse-tag.el (smart-lisp-at-tag-p): Tighted match to ignore all
    punctuation matches such as, ***.

* hui-select.el (hui-select-goto-matching-delimiter):
  hyperbole.el ({C-c .}): Added this global binding to jump between the
    opening and closing delimiters of a delimited thing, e.g. a string.
    Also, works on matching markup tag pairs in HTML and SGML modes.

* hyperbole.el (hkey-global-set-key, *hkey-list*): Added to capture global
    Hyperbole key sequences for possible unsetting in local modes.
               (hkey-override-local-bindings): Unset local keys here.

* hmouse-sh.el (hmouse-get-bindings, hmouse-setup):
  hmouse-reg.el (hmouse-get-bindings, hmouse-setup): Trigger NEXTSTEP setup
    only when window-system is 'dps, not 'ns which Mac OS X uses too.
    Fixes issue with binding the Action Key to mouse-1 instead of mouse-2
    under Emacs on Mac OS X.

2016-04-28  Bob Weiner  <rsw@gnu.org>

* hypb.el (hypb:mouse-help-file): Renamed to hypb:hkey-help-file.

* hyperbole.el (hkey-init): Changed doc to lookup keybindings.

* hmouse-drv.el (help-window-point-marker): Added conditional definition
    of this help variable not provided in earlier Emacs versions but
    referenced in an Emacs 25 compiled version of `with-help-buffer' used
    in `hkey-help-show'.  Fixes error with display of completions.
                (hkey-help-show): Nullified `temp-buffer-show-hook'
    and `temp-buffer-show-function' in here to prevent recursive call of
    help-mode when it calls with-temp-buffer.  This fixed error in display
    of apropos and other help information.
                (action-key, assist-key): Updated documentation.

* hyperbole.el (after-load-alist): Fixed quoting for this hook.

2016-04-27  Bob Weiner  <rsw@gnu.org>

* h-skip-bytec.lsp (hmouse-set-point): Fixed to handle when called with no
    args from hkey-operate (keyboard drag emulation).

* hmouse-drv.el (hkey-operate): Made prefix arg flag optional.

* HY-ABOUT: Added Hyperbole version number.

* man/hyperbole.texi (Smart Key Bindings): Renamed from Smart Key Assignments
    and changed some descriptions of the bindings.

* hactypes.el (link-to-elisp-doc): Added support for variables.
  hui-mouse.el (hkey-alist): Added support for Emacs push buttons.  Action
    key activates a button at point and Assist Key shows help for it.

* hmouse-tag.el (smart-lisp-at-known-identifier-p, smart-tags-find-p): Added
    for testing whether a potential Lisp identifier is found in any tags file.

* hibtypes.el (texinfo-ref): Added support to display Texinfo nodes
    references within Texinfo node names and menu items.  Also to show
    documentation for Emacs Lisp identifiers within @code{} and @var()
    references.
  hmouse-tag.el (smart-emacs-lisp-mode-p): Since code references are
    handled within texinfo-ref now, removed texinfo-mode from matching here.
  man/hyperbole.texi (Implicit Buttons):
  man/hkey-help.txt: Updated doc with these changes.

* hui-mouse.el (hkey-alist):
  hmouse-tag.el (smart-emacs-lisp-mode-p): Moved test for help-mode to here from hkey-alist.

2016-04-26  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:is-p): Tightened match for in-file HTML references to
    avoid matching to Lisp #'function constructs.

* hui-mouse.el:
  hmouse-drv.el (hkey-region): Moved definition from hui-mouse.el where it wasn't referenced.

2016-04-25  Bob Weiner  <rsw@gnu.org>

* hpath.el (hpath:at-p): Improved to ignore non-delimited matches of only punctuation.
           (hpath:push-tag-mark): Added xref-find-definitions last-command check.

* hui-window.el (hmouse-alist): Changed so if an active region exists
    before an Assist Key depress and this is not a drag, then kill the
    region and yank it wherever the Assist Key was released.
                (hmouse-paste-region): Deleted and replaced with hmouse-yank-region.

* hui-window.el (hmouse-yank-region):
  hui.el (hui:buf-writable-err):
  hui-window.el (hmouse-read-only-toggle-key): Added this function and
    used it.
  wrolo-menu.el (id-menubar-wrolo): Changed from 'toggle-read-only' to
    newer 'read-only-mode' command.

* hui-window.el (hmouse-horizontal): Changed to use goto-char.
                (hmouse-key-alist): Added hmouse-drag-thing test.
                (hmouse-drag-thing):
                (hmouse-kill-region):
                (hmouse-kill-and-yank-region):
	        (smart-point-of-coords):
                (hmouse-yank-region): Added to kill and yank delimited things via Smart Key drags.
                (hmouse-insert-region): Added to handle regional yanks.
		(hmouse-edge-sensitivity): Set this to 10 for GNU Emacs;
    Mats Lidell says it needs to be this high.
  hmouse-sh.el:
  hmouse-reg.el: (hmouse-setup): Added drag event bindings for Emacs to
    support Hyperbole drag actions.
                 (hmouse-set-key-list): Added and used to simplify key bindings.

2016-04-24  Bob Weiner  <rsw@gnu.org>

* hhist.el (hhist:remove): Fixed to handle prefix args as a list.

* hyperbole.el ({C-c RET}): Added this key binding to hui-select-thing;
    made double and triple clicks of the left mouse button do the same thing.
  kotl/klink.el (klink:at-p): Use hui-select-markup-modes
  Makefile (EL_KOTL):
  GNUmakefile.id (HYPB_ELCS):
  MANIFEST: Removed TAGS.  Added hui-select.el.
  hui-select.el: Added this file for thing support.
  hmouse-tag.el (hui-select): Required.
  hyperbole.el (hui-select): Required.

* man/hypb-mouse.txt: Renamed to hkey-help.txt everywhere.

* man/hkey-help.txt: Added mark thing.  Updated documentation of
    mouse-only actions and keypress thing handling.
  man/hyperbole.texi (Smart Keyboard Keys): Improved accuracy of Smart Key
  context-specific actions and added thing marking as a context.
  hui-mouse.el (hkey-alist): Added hui-select-delimited-sexp-at-p test and
    hui-select-mark-delimited-sexp action.
  HY-NEWS: Added delimited thing handling.

==============================================================================
V5.08 changes ^^^^:
==============================================================================

* hui.el (hui:hbut-act, hui:hbut-current-act):
  hinit.el (hyperb:act-set): Removed this and hyperb:act and hcoord: references, since
    coordinated/group browsing was never implemented.

* hbut.el (gbut:act): Added error handling for a null or empty string label input.

* hpath.el (hpath:find-program, hpath:find-file-mailcap): Improved doc and
    added fallback use of mailcap external program viewer settings
    (mailcap code from Mats Lidell <matsl@contactor.se>).
  HY-NEWS:
  man/hyperbole.texi (External Viewers): Documented this change.

* hui-mouse.el (smart-dired-assist): Call dired-unmark-all-files.

2016-04-22  Bob Weiner  <rsw@gnu.org>

* hmail.el (hmail:invoke): Simplified by using compose-mail.

* hmouse-tag.el (smart-tags-display): Prefer call to find-tag-noselect
    (newer etags.el) than find-tag-internal.

* man/hyperbole.texi:
  hui-menu.el (infodock-hyperbole-menu): Renamed Customization menu to Customize.

* hyperbole.el (hmouse-shift-buttons): Bind Hyperbole mouse buttons only
      when hkey-init is true (the default).
     Removed compatibility functions for many years old emacs versions:
       frame function aliases,
       find-file-noselect overload and hyperb:find-file-noselect.
       (substitute-in-file-name): Made string-match tighter.
       (hkey-read-only-bindings): Removed local assist-key bindings which
     just shadow the same existing global binding, now that we can
     automatically eliminate local bindings that shadow the global
     Hyperbole Smart Keys.  Also simplified function.
     Removed PIEmail pm-hook; this package no longer exists.
       (assist-key-read-only): Removed, no longer used.
       (hkey-init): Made this an autoload.  Changed so no keys are bound herein
     unless this is true (previously, this affected only the Smart
     Keys). Reordered key bindings to emphasize Smart Keys.

* hyperbole (hkey-override-local-bindings, hkey-install-override-local-bindings,
     hkey-toggle-override-local-bindings):
     (hkey-init-override-local-keys): Added this new feature which allows for
     automatic removal of local key bindings that hide the Action Key.
     Set `hkey-init-override-local-keys' to nil to disable this feature.
  hui-menu.el (hui-menu-options): Added Toggle-Override-Local-Keys.
  hui-mini.el (hui:menus): Simplified Toggle-Rolo-Dates and added Override-Local-Key.

* hui.el (hui:hbut-help): Fixed bug where :help was bound as a symbol but
    not a function to be called.  Now ensures any type-specific help
    symbol is a function to call.
         (ebut:list): Called apply on set:create to fix list nesting bug.
         (hbut:report): Called with-help-window and nullified
   temp-buffer-show-{hook,function} to prevent a nested call to
   with-output-to-temp-buf that would erase the help buffer after data.

2016-04-21  Bob Weiner  <rsw@gnu.org>

* hmouse-tag.el (smart-lisp): Simplified documentation.

* hui-mouse.el (smart-man-c-routine-ref): Improved and fixed documentation.

* hmouse-tag.el (smart-tags-display): Small improvements.
    (smart-tags-file-path):
    (smart-c, smart-ancestor-tag-files): Changed 'tags-file-list' to newer
      'tags-table-list'.
    (smart-tags-display): Modified since emacs now uses 'tags-table-list'.
    (smart-tags-file-list): Improved tests.

* hibtypes.el (text-toc): Fixed to match documentation.

* hyperbole.el (vm-mode-hook): Renamed to this newer name.

* man/hyperbole.texi (Menus):
  hui.el (hui:bind-key): Added.
  hui-menu.el (hui-menu-options): Added Change-Key-Bindings menu and made
    Customization option settings into submenus as the single-level menu was
    getting too long.
  hui-mini.el (hui:menus): Added new Cust/KeyBindings menu that allows
    interactive rebinding of each global Hyperbole key.

* hgnus.el: (require 'gnus-msg): Added and removed old gnuspost.el loading.

* hargs.el (hargs:set-string-to-complete): Fixed bug that included
    minibuffer prompt in string; changed 'buffer-string' call to
    'minibuffer-contents'.

* hui-menu.el (infodock-hyperbole-menu): Added Hyperbole Demonstration to
    the top-level menubar so it is easy for new users to find.

* hhist.el (all): Greatly improved to use frame configurations rather than just
    storing a point in a buffer.
 (hhist:wind-line): Deleted, unused.

* DEMO (By Dragging): Info node was improperly referenced with earlier name, 'Drags'.
    Made a number of small updates in this file.

* hypb.el (hypb:hyperbole-banner-keymap):
          (hypb:display-file-with-logo): Reworked to allow graphic in hyperb:dir.
    Refactored to support GNU Emacs.  Use 'help-mode' as major mode for
    easier navigaton and window restore.

* hpath.el (hpath:url-regexp2): Made : optional again so www.gnu.org works
    as a URL.

* Makefile (distclean): Remove any TODO* working files from the dist.
    Other small changes.

2016-04-20  Bob Weiner  <rsw@gnu.org>

* kotl/klink.el (klink:create): Added save-excursion to prevent movement
    of point while reading arguments.

* hargs.el (hargs:select-p): Fixed code for newer Emacs versions.

* hui-mouse.el (hkey-alist): Added kotl-mode-specific end-of-line predicate.

* wrolo-menu.el (wrolo-menubar-menu, id-popup-wrolo-menu, id-menubar-wrolo):
    Renamed these menus from Wrolo to Rolo.

* kotl/kmenu.el (id-menubar-kotl): Added 'Remove-this-Menu' item.
                (kotl-popup-menu):
  wrolo-menu.el (wrolo-popup-menu): Removed call to popup-menu-internal since GNU
       Emacs has popup-menu now.

* kotl/kmenu.el (kotl-menu-remove): Added.
  hui-menu.el (hui-menu-options):
  kotl/kmenu.el (kotl-menubar-menu):
  hui-menu.el (hui-menu-remove, hyperbole-menubar-menu): Fixed to work
    properly with Emacs menubars.
              (hui-menu-remove): Remove Koutline menu as well.

* Makefile: Added the following files as distribution dependency checks:
      auto-autoloads.el, DEMO, MANIFEST, _hypb, .hypb, _pkg.el,
      ChangeLog (only the latest one), hyperbole-banner.png, hypb-mouse.txt,
      file-newer, smart-clib-sym
    Changed distribution so only recent year ChangeLog is included, as the
    rest is very old and irrelevant now.

* hmouse-drv.el (hkey-help-show): Use help-mode major mode for Hyperbole Help buffers.
   This generally allows typing q to quit and restore the prior window configuration.

* man/hyperbole.texi (Menus): Added new Find menu documentation.
  hui-mini.el (hui:menus): Added new Find menu to find matches and
    non-matches of regexps across buffers and files.
    Removed HypbCopy item which duplicated Info item.
       Removed MsgForums since this manual section is gone and spread elsewhere.
  hui-menu.el (infodock-hyperbole-menu): Added new Find menu to find matches and
    non-matches of regexps across buffers and files.
    Removed Copyright which duplicated Manual entry.  Removed Msg-Forums
    since this manual section is gone and spread elsewhere.

2016-04-19  Bob Weiner  <rsw@gnu.org>

* hvm.el (vm-edit-message-end): Updated to latest "vm-edit.el" version.
  hvm.el (vm-assimilate-new-messages): Updated to latest "vm-folder.el"
    version, adding new 'first-time' parameter.

* kotl/kexport.el (kexport:html, kexport:html): Added missing parameter to
    'error' calls.

==============================================================================
V5.07 changes ^^^^:
==============================================================================

2016-04-19  Bob Weiner  <rsw@gnu.org>

* MANIFEST:
  Makefile (EL_KOTL, ELC_KOTL): Added "kexport" file which had been
    mistakenly left out of distribution build dependencies.

2016-04-18  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode-map):
  kotl/kotl-mode.el (kotl-mode:scroll-down, kotl-mode:scroll-up): Modified
    to work as global key bindings for use with mouse wheel scroll variables.

* hmail.el (hmail:invoke): Modernized to use mail-user-agent settings.

* hui-menu.el (infodock-hyperbole-menu):
  hui-mini.el (hui:menus):
  hibtypes.el (hyp-address):
  hactypes.el (hyp-request): Updated mail list information and extended menus.

* kotl/kotl-mode.el (kotl-mode:maintain-region-highlight): Removed
    window-system conditional for transient-mark-mode since it now works on
    dumb terminals.

* kotl/kfile.el (kfile:view): Added missing file-name parameter to second
    'error' call.

* kotl/kfile.el (kfile:find-file-hook):
  kotl/kotl-mode.el (kotl-mode:find-file-hook): Renamed to
    kfile:find-file-hook and moved to "kfile.el" to ensure that kfile is
    loaded (which loads kotl-mode) if this is invoked at startup, e.g. when
    desktop restores a file.  Left an alias to kotl-mode-find-file-hook
    for backward compatibility.

* Removed support for old, no longer used Apollo window system.

* hpath.el (hpath:display-buffer-alist, hpath:display-where-alist): Hash
    quoted functions for byte-compilation.

* kotl/kotl-mode.el (kotl-mode:add-indent-to-region): Rewrote with 'replace-match' call.

* MANIFEST: Corrected to reference kotl/EXAMPLE.kotl

* kotl/kfile.el:
  kotl/kotl.el: Improved naming: renamed this file to kcell.el to better represent it and
   renamed the 'kotl-data' structure to 'kcell-data'.

* hargs.el (hargs:iform-read): Added support for Emacs interactive '^'
   prefix character for activating/deactivating the transient region via
   shift selection.

* hpath.el (hpath:rfc): Updated to use ietf.org.

* hpath.el (hpath:url-hostnames-regexp):
  hsite-ex.el:
  hsys-wais.el:
  hyperbole.el (substitute-in-file-name):
  Makefile: Removed support for old, no longer used WAIS and Gopher Internet protocols.

* hact.el (action:commandp): Rewrote to call 'interactive-form' when available.
          (hact): Simplified.

2016-04-17  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode-map): Overloaded left-char and right-char for
  Emacs arrow keys.

* kotl/kexport.el (kexport:html): Replaced 'insert-string' with 'princ' since it works
    differently in GNU Emacs and would fail to export cell contents.
    (kexport:html): Updated doc string and added optional prefix arg,
    SOFT-NEWLINES-P to prevent hard newline breaks within cells.

* kotl/kotl-mode.el (kotl-mode:example): Rewrote so always uses the
    distribution EXAMPLE.kotl file rather than the personally saved and
    edited one, if the distribution file is newer.  In that case,
    save a copy of the personal one, as SAVED-EXAMPLE.kotl before replacing it.
    (kotl-mode:backward-or-forward-delete-char): Added GNU Emacs support.
    (kotl-mode-map): Added delete-forward-char.
    (kotl-mode:delete-char): Improved beginning and end of cell testing,
    fixing issues when prefix arguments are given.

* hvm.el: VM is not available as a regular Emacs package, so it is somewhat
    difficult to install properly.  Requiring it below will therefore
    often trigger an error and prevent Hyperbole from properly
    building, so prevent this error with a condition-case around this
    whole file.

* man/hyperbole.texi: Updated version, copyrights, URL handling documentation.

* hsys-w3.el (www-url): Changed to use browse-url.el support of textual
    browsers when not running under a window system.  Removed w3 library
    dependencies.

* hui-ep-but.el, hui-epV4-b.el: Deleted, Epoch is long obsolete.

* HY-README: Updated How to Obtain.

2016-04-16  Bob Weiner  <rsw@gnu.org>

* HY-COPY: Updated to GPL V3.

* DEMO: Updated with gnu.org examples.

* HY-ABOUT: Updated the intro.

* hui-mini.el (hui:menus):
  hui-menu.el (hui-menu-url-options): Modernized these menus for current
    web browsers and changed 'browse-url-new-window-p' to 'browse-url-new-window-flag'.
    Added toggle of 'browse-url-in-window-flag' menu item.

* Makefile (data_dir): Updated to reference hyperbole-banner.png image.

* hypb.el (hypb:browse-home-page): Renamed and changed to point to GNU Hyperbole web page.
	  (hypb:display-file-with-logo): Rewrote to do nothing if banner file is not found.

2016-04-14  Bob Weiner  <rsw@gnu.org>
* hpath.el (hpath:find-line): Replaced goto-line call since it is meant for interactive use.

* hbut.el (htype:create, ibtype:create):
  hargs.el (hargs:make-iform-vector):
  hui-em19-b.el (hproperty:list-cycle):
  hui-xe-but.el (hproperty:list-cycle):
  hpath.el (hpath:display-alist): Changed from defmacro to defsubst or updated macro syntax.

* hui-menu.el (hui-menu-options): Removed old-style backquoting.

* set.el (set:remove): Fixed bug by removing extra set of parentheses around args in call to 'set:member'.

* hui-menu.el (infodock-hyperbole-menu): Conditionalized "%_" XEmacs menu
    accelerator key prefix, so it does not appear as a literal in the Hyperbole menu name under GNU Emacs.

2016-04-05  Bob Weiner  <rsw@gnu.org>

* set.el (set:create): Improved to allow collection types as set elements.

* set.el (set:difference): Fixed boundary case error by adding (setq rtn-set ...)
    Also, updated defmacro syntax, used self-quoting lambdas and changed many mapcar calls to mapc.

2016-03-29  Bob Weiner  <rsw@gnu.org>

* hyperbole.el ("info"): Simplified with eval-after-load

* man/hyperbole.texi: Uncommented Hyperbole Info directory listing.

2014-08-29  Bob Weiner  <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode-map): Added newer XEmacs
	`backward-char-command' and `forward-char-command' for overloading.

2014-08-16  Bob Weiner  <rsw@gnu.org>

* hui-mouse.el (hkey-alist):
  hmouse-tag.el: Added support for JavaScript identifier definition location.

2014-08-28  Bob Weiner  <rsw@gnu.org>

* hibtypes.el (mail-address-at-p): Handled the case when point is on the
    `mailto:' part of a URI e-mail address.

2014-08-15  Bob Weiner  <rsw@gnu.org>

* hui-menu.el: Updated to handle "%_Hyperbole" menu item name with menu
    accelerator key embedded.

2014-07-20  Bob Weiner  <rsw@gnu.org>

* wrolo.el (wrolo-mode): Fixed error that had lowercased `mode-name'.

* kotl/kmenu.el (kotl-menu-common-body): Added InfoDock Go and Options menus.

==============================================================================
V5.06 changes ^^^^:
==============================================================================

     For earlier ChangeLog entries, see earlier releases of Hyperbole.


     Copyright 1991-2021 Free Software Foundation, Inc.
     Copying and distribution of this file, with or without modification, are
     permitted provided the copyright notice and this notice are preserved.
