2026-05-14 cage


	Merge pull request #177 from cage2/master

2026-05-07 cage

	* annotate.el:

	- changed appearance of annotated text in thread window.

2026-04-14 cage

	* annotate.el:

	- removed newline from reply's text in summary window.

2026-03-30 cage

	* annotate.el:

	- shown the replies in summary window.
	- replaced delete button's icon.

2026-03-29 cage

	* annotate.el:

	- removed unused variable.

2026-03-26 cage

	* README.org,
	* annotate.el:

	- fixed README: removed escaping from lisp code and typo.
	- removed useless call to function to delete a thread (the function to
	delete a thread also remove the root of the thread); - removed 'show
	thread' button, in summary window, when the root annotation is removed
	pushing the 'delete' button'; - removed replies with no parents before
	saving the annotations to file system.

2026-03-25 cage

	* Eask,
	* README.org,
	* annotate.el:

	- updated or added docstrings.
	- changed function's name with a more appropriate one.
	- updated README;
	- changed thread printing.
	- removed hardcoded regular expressions in font lock matcher for
	thread window.
	- increased version number.
	- removed warnings about docstrings too long.

2026-03-18 cage

	* annotate.el:

	- removed warnings.

2026-03-17 cage

	* annotate.el:

	- added button to show threads from a summary window;
	- changed appearance of thread.
	- changed appearance of threads.
	- fixed arguments for 'overlay-put';
	- ensured the database is saved if 'save-annotation' keyword
	paramenter is not null in 'annotate--show-annotation-thread'.

2026-03-16 cage

	* annotate.el:

	- moved, in the thread window, the action buttons in their own lines.

2026-03-12 cage

	* annotate.el:

	- improved visuals of the threads;
	- removed hardcoded colors for threads faces
	- fixed macro `with-matching-annotation-fns'
	was testing annotated text limits using '=', but reply
	annotation has limits values equals to 'nil'.
	- fixed 'annotate-annotated-text-empty-p' (as annotations limits for
	replies are nulls);
	- fixed 'annotate-db-replace-annotation'
	was using an obsolete function to build the new annotation.
	- ensured 'annotate--db-annotations-overlaps-p' returns nil,
	if just a single annotation is a reply;
	- ensured 'annotate--db-merge-annotations' build an annotation
	that contains new fields (color, ID etc.).
	- modified 'annotate--db-merge-databases' to deal with replies
	annotations.
	- fixed calls to 'overlay-put'.
	- removed unused variable.

2026-03-11 cage

	* annotate.el:

	- added coloring to the thread buffer.
	- replaced 'font-lock-fontify-buffer' with 'font-lock-ensure' as
	suggested by the compiler.
	- added more coloring to the thread buffer;
	- removed debug code.

2026-03-10 cage

	* annotate.el:

	- implemented deleting thread node.
	- implemented procedures to add nodes to a thread.
	- added thread removing when deleting a root annotation from the
	summary window.
	- fixed function name in 'annotate-reply-to';
	- removed outline-mode in thread window (interferes with text face
	properities);
	- fixed indentation chars in tree printing.

2026-03-04 cage

	* annotate.el:

	- added procedures to delete and display a message's thread.

2026-02-25 cage

	* annotate.el:

	- added reply annotations;
	- added procedures to print a tree.

2026-02-18 cage

	* annotate.el:

	- added 'annotate-generate-message-id';
	- fixed documentation for 'annotate-color-index-from-dump';
	- added missing slot for documentation about annotation serialization
	format.
	- changed parameters names for some database related function, to a
	more meaningful ones.
	- added unique ID field to each annotation;
	- changed variables and parameters names to something more meaningful.
	- removed tabulation characters.
	- removed stray code that prevented the compilation of this package.
	- removed warning about docstring with text line that was more than 80
	characters long.
	- added comments and fixed docstring in UUID generation function.

2025-11-11 cage

	* Changelog,
	* Eask,
	* NEWS.org,
	* annotate.el:

	- removed expansion of file paths when deserializing annotations
	records;
	- moved to local function code for record's deserialization.
	- increased version number;
	- updated Changelog and NEWS files.
	Merge pull request #176 from cage2/master

2025-11-02 cage

	* Changelog,
	* Eask,
	* NEWS.org,
	* annotate.el:

	- changed (in function 'annotate-file-exists-p') 'ignore-errors' with:
	'with-demoted-errors', to convert errors to message.
	- increased version number;
	- updated NEWS and Changelog files.
	Merge pull request #175 from cage2/master

2025-11-01 cage

	* Changelog,
	* Eask,
	* NEWS.org,
	* annotate.el:

	- wrapped 'file-exists-p' with 'ignore-errors' to catch TRAMP
	connection errors.
	- fixed docstring for 'annotate-file-exists-p'.
	- increased version number;
	- updated Changelog and NEWS files.

2025-10-31 cage

	* annotate.el:

	- abbreviated buffer's file name to allow annotating remote file using
	TRAMP mode;
	- fixed indentation and moved function definition.

2025-05-15 cage

	* annotate.el:

	- added missing docstring for 'annotate--expand-annotation-text';
	- fixed other two docstrings.

2025-05-14 cage

	* Changelog,
	* Eask,
	* NEWS.org,
	* annotate.el:

	- fixed docstrings.
	- increased version number;
	- updated NEWS file;
	- updated Changelog.
	- increased version number in eask file.

2025-05-12 cage2

	* annotate.el:

	Merge pull request #172 from jcs-PR/ci/basic
	- fixed type definition of customiziable variables related to font
	faces of annotations, we can not know in advance the length of the
	plists bound to these variables;
	- fixed docstrings, only symbols names are wrapped in `…'.
	- fixed docstrings.

2025-05-10 cage2, JenChieh

	* .github/workflows/test.yml,
	* .gitignore,
	* Eask,
	* annotate.el:

	Merge pull request #171 from cage2/master
	ci: Add basic CI
	fix: Set minimum version to 30.1
	fix: snapshot warnings
	fix: wrap info-setup
	fix: indent issue and mix used of tab/spaces
	fix: wrap entire info setup
	fix: diff-buffers added after 27.1

2025-05-09 cage

	* Changelog,
	* NEWS.org,
	* annotate.el:

	- fixed type definition of customiziable variables related to font
	faces of annotations;
	- changed deprecated function related to info mode;
	- reformatted some docstrings to fit 80 columns limit.
	- increased version number;
	- updated NEWS file;
	- updated Changelog.

2025-05-07 cage


        Merge pull request #169 from cage2/master

2025-04-30 cage

        * README.org,
        * annotate.el:

        - improved expansion map to include a swith to enable trimming of
        commands' output.

2025-04-25 cage

        * annotate.el:

        - bound 'annotate-annotation-expansion-map' to the empty string, to
        remove code used during development.
        - bound 'annotate-autosave' to non nil, enabling the autosave feature
        as default.

2025-04-23 cage

        * Changelog,
        * NEWS.org,
        * README.org,
        * annotate.el:

        - increased version number;
        - added code to implement annotation's text expansion;
        - updated README, changelog and NEWS files.

2025-03-20 cage

	Merge pull request #168 from cage2/optimize-searching-for-annotations

2025-03-19 cage

	* Changelog,
	* NEWS.org,
	* annotate.el:

	- optimized 'annotate-annotations-overlay-in-range' by jumping from an
	annotation to another, instead of scanning every single character of
	the buffer.
	- increased version number;
	- updated NEWS file and changelog;
	- fixed docstring.

2025-03-06 cage


	Merge pull request #166 from
	cage2/updating-documentation-after-autosave-patch

2025-03-05 cage

	* Changelog,
	* NEWS.org,
	* README.org,
	* annotate.el:

	Merge pull request #165 from krvkir/master
	- fixed typo in README.
	- updated README.
	- updated Changelog.
	- increased version number;
	- updated NEWS file.

2025-03-02 krvkir

        * annotate.el:

        [fix] a typo in the doc, if -> when, improved formatting

2025-02-21 krvkir

        * annotate.el:

        [fix] make autosave disabled by default

2025-02-17 krvkir

        * annotate.el:

        [add] autosave option

2024-10-17 cage2


        Merge pull request #163 from cage2/master

2024-10-16 cage

        * Changelog,
        * NEWS.org,
        * annotate.el:

        - added the chance to append a newline character at the end of a
        buffer when it does not terminate with a proper line.
        - updated news file.
        - updated changelog.

2024-10-16 cage

        * NEWS.org,
        * annotate.el:

        - added the chance to append a newline character at the end of a
        buffer when it does not terminate with a proper line;
        - updated news file.

2024-10-10 cage

        * Changelog,
        * NEWS.org,
        * annotate.el:

        - prevented an annotation to appears on the last line of a buffer if
        the buffer does not ends with a newline character;
        - increased version number;
        - changed '(C) with the copyright character;
        - updated News file and Changelog.

2024-05-09 cage2


	Merge pull request #162 from cage2/master

2024-05-08 cage

	* Changelog,
	* NEWS.org,
	* annotate.el:

	- increased version number.
	- updated news and changelog files.

2024-04-17 cage

	* annotate.el:

	- fixed color's annotation when the new annotated text end border lays
	just next to an already annotated text
	for example:
	foo-bar
	⏶  ^^^ ← annotated text
	|
	`cursor position
	annotating  "foo-"  ("C-c  C-a")  would  set a  color  for  the  new
	annotation  equals to  the one  on the  left, the  correct behaviour
	would be to set a different color.

2024-03-23 cage

	* NEWS.org,
	* annotate.el:

	- increased version number;
	- added missing information from docstring;
	- updated NEWS.org.

2024-03-20 cage2


	Merge pull request #160 from cage2/master

2024-03-13 cage

	* Changelog,
	* NEWS.org,
	* README.org,
	* annotate.el:

	- added new command 'annotate-change-annotation-color';
	- printed message with current policy for annotation when changing
	positioning. using 'annotate-change-annotation-text-position';
	- update keymap to accomodate new commands.
	- fixed variable name.
	- updated docstrings.
	- updated README.
	- changed keybinding for 'annotate-change-annotation-text-position';
	- added missing docstring.
	- increased version number.
	- updated changelog.
	- updated NEWS.

2024-03-07 cage

	* annotate.el:

	- allowed different positioning of annotated text on the same buffer.
	- added command 'annotate-change-annotation-text-position'.
	- fixed position policy layout in builder.
	- fixed wrapping of annotation in a 'box'.

2024-03-05 cage

	* annotate.el:

	- preferred wrapping functions instead of call to 'overlay-put' and
	'overlay-get'.

2023-11-02 cage


	Merge pull request #159 from cage2/master

2023-10-10 cage

	* Changelog,
	* NEWS.org,
	* README.org,
	* annotate.el:

	- fixed procedure for coloring annotations (adjacent annotations with
	the same colors was still possible).
	- removed warning about unused parameter in function
	'on-window-size-change';
	- removed warnings about escaping in docstrings;
	- used accented character instead of apostrophe.
	- added saving of annotation face on the database.
	- increased version number.
	- updated NEWS file.
	- updated Changelog.
	- rephrased NEWS file entry.
	- fixed README.

2023-09-30 cage2


        Merge pull request #158 from cage2/master

2023-09-28 cage

        * annotate.el:

        - fixed points to start searching for adjacent annotations.

2023-09-27 cage

        * Changelog,
        * NEWS.org,
        * annotate.el:

        - increased version number;
        - updated NEWS file and changelog.

2023-09-25 cage

        * annotate.el:

        - fixed docstring.
        - prevented using the same color on adjacent annotations;
        To     reproduce     the     issue    (assuming     the     variable
        'annotate-highlight-faces' is bound to a list of two elements):
        1. annotate the first line of a buffer (C-a)
        2. annotate the second line of the same buffer (C-a)
        3. delete the annotation on the second line (C-d)
        4. annotate again the second line (C-a)
        the annotations in both lines got the same colors.
        - fixed indentation of local functions definitions.

2023-08-09 cage

	* Changelog,
	* NEWS.org,
	* annotate.el:

	- used line-end-position;
	- updated NEWS and Changelog files.

2023-07-09 cage

	* README.org:

	- fixed README's layout.
	Merge pull request #155 from cage2/save-db-before-query

2023-07-06 cage

	* Changelog,
	* NEWS.org,
	* README.org,
	* annotate.el:

	- ensured the database is in sync with the annotated buffers, before
	executing the search query;
	- increased version number.
	- made cosmetic fix to README, also corrected a wrong phrase.
	- updated Changelog and NEWS files.

2023-04-01 cage2


        Merge pull request #151 from cage2/multiple-colors

2023-03-29 cage

        * Changelog,
        * NEWS.org,
        * README.org,
        * annotate.el:

        - updated version number.
        - updated documentation.
        - updated changelog.

2023-03-15 cage

        * annotate.el:

        - added support for a virually unlimited number of colors for
        annotations.

2023-03-10 cage


        Merge pull request #150 from cage2/hide-annotation-text

2023-02-22 cage

        * Changelog,
        * NEWS.org,
        * README.org,
        * annotate.el:

        - added command 'annotate-toggle-all-annotations-text';
        - removed customizable variable 'annotate-hide-annotations-text'.
        - wrapped raw chain manipulation with 'annotate-chain-last-ring' to
        get the last segment of a chain.
        - added missing docstrings.
        - removed repeated code.
        - increased version number;
        - updated documentations, news and changelog.

2023-02-22 cage

        * annotate.el:

        - added command 'annotate-toggle-annotation-text';
        - removed customizable variable 'annotate-hide-annotations-text'.
        - wrapped raw chain manipulation with 'annotate-chain-last-ring' to
        get the last segment of a chain.
        - added missing docstrings.
        - removed repeated code.

2023-02-15 cage

        * annotate.el:

        - added a new command 'annotate-toggle-annotation-text' (and related
        functions/variables).

2023-02-03 cage

        Merge pull request #146 from cage2/fix-annotate-shutdown

2023-02-02 cage

        * annotate.el:

        - fixed limit for deleting text-property (the annotation's text).
        - prevented capure of a variable in macro
        'annotate-with-disable-read-only'.
        - fixed procedures to have a clean exit from this mode.
        Toggling annotate-mode (M-x annotate-mode  in a buffer with annotate
        mode active), was not removing the annotation's text.

2022-12-19 cage2


        Merge pull request #144 from cage2/no-warning-if-no-annotations-save


2022-12-15 cage

        * annotate.el:

        - prevented printing of warning when saving a buffer that has no file
          under the hood and no annotation.
          `annotate-save-annotations' printed  a warning if the  buffer was not
          based on a file's contents. But  the warning was printed even if the
          buffer contained no annotations at all.
          this patch prints the warning about  missing file only if the buffer
          is annotated (i.e. contains at least an annotation).

2022-11-30 cage

        * Changelog,
        * NEWS.org,
        * annotate.el:

        - increased version number;
        - update NEWS.org and Changelog.

2022-11-23 cage

        * annotate.el:

        - restored annotation of info files.
        - renamed variable to respect a stylistic convention.
        - do not skip 'annotate--remove-annotation-property' for narrowed
        buffer.
        Previously  the   function  above  just  skipped   narrowed  buffer,
        effectively preventing delete of  annotation's text. This patch just
        prevent the  function to try  to move  the cursor beyond  the buffer
        limit that would leads to a crash.
        The  test  for  narrowed  buffer was  added  because  command  like:
        'comment-dwim' narrows the buffer beyond  the curtains, but my patch
        was too  radical, this  changes supposed to  fix annotation  of info
        files and does not interferes with 'comment-dwim'.

2022-11-22 cage


	Merge pull request #140 from cage2/fix-tramp-crash

2022-11-19 cage

	* annotate.el:

	- fixed logic of conditional test.

2022-10-29 cage

	* NEWS.org,
	* annotate.el:

	- prevented running  the function
	'annotate--remove-annotation-property'
	(tied to a string property) in a buffer where annotate-mode is null.
	- increased version number and updated NEWS.org.
	- mention user for their help.
	- removed a redudant test for checking if a file is in info format.

2022-10-24 cage2


	Merge pull request #138 from cage2/fix-integrate-inplace

2022-10-20 cage

	* Changelog,
	* NEWS.org,
	* annotate.el:

	- fixed  integration of  annotation when  the buffer  was modified  to
	accommodate the annotations text;
	- fixed typo.
	- increased version number;
	- updated NEWS.org and Changelog.

2022-09-30 cage2


	Merge pull request #137 from cage2/print-message-annotate-under-point

2022-09-28 cage

	* README.org,
	* annotate.el:

	- made delay before printing annotations on minibuffer customizable;
	- updated README.org.

2022-09-30 cage2


        Merge pull request #137 from cage2/print-message-annotate-under-point

2022-09-28 cage

        * README.org,
        * annotate.el:

        - made delay before printing annotations on minibuffer customizable;
        - updated README.org.

2022-09-21 cage

        * Changelog,
        * NEWS.org,
        * README.org,
        * annotate.el:

        - added a customizable  variable to switch on and off  the printing of
        annotations in the minibuffer;
        - updated version number;
        - updated NEWS.org;
        - updated README.org.
        - updated Changelog.

2022-09-16 cage


        Merge pull request #135 from cage2/fix-closing-indirect-buffer
        Merge branch 'master' into print-message-annotate-under-point

2022-09-08 cage

        * annotate.el:

        - added idle timer to print annotation under point.

2022-08-31 cage

        * Changelog,
        * NEWS.org,
        * annotate.el:

        - updated, and added if missing, docstrings.
        - updated NEWS.org.
        - removed a duplicated label using a constant.
        - updated changelog.

2022-08-25 cage

        * annotate.el:

        - shown a warning when killing an indirect buffer;
        - reverted code in initialization procedure.

2022-08-23 cage

        * annotate.el:

        - create a proper buffer from an indirect one that has been annotated.

2022-08-22 cage

        * annotate.el:

        - signalled  a warning,  not an  error, when  annotated buffer  is not
        visiting a file supported by annotate mode.
        - returned nil as the actual filename of an indirect buffer.

2022-08-10 cage

        * NEWS.org,
        * annotate.el:

        - fixed an error that was signalled when the annotated buffer was an
        indirect one.
        - increased version number;
        - updated NEWS.org.

2022-08-02 cage

        * NEWS.org,
        * annotate.el:

        - modified the function called when kill-emacs-hook runs
          The  new function  ensures  all the  buffers,  where annotate-mode  is
          active, save the annotationos in  the database; also this function is
          registered in the global hooks list.
        - increased version number.
        - updated NEWS.org.

2022-06-23 cage

        * annotate.el:

        - removed the  use of  'after-save-hook', used  'kill-buffer-hook' and
        'kill-emacs-hook', instead.
        Using these  two hooks prevents  the buffer  to be marked  as modified
        when,   in  fact,   only   the  annotation   has   been  changed   (or
        added/deleted).

2022-05-26 cage

        * annotate.el:

        - added procedures to generate and use a single database for each
        annotated file.

2022-04-23 cage

        * annotate.el:

        - fixed  function that  is  called on  'window-size-change-functions',
        this function is  called with a single frame as  an argument, whilst
        we was using 'font-lock-flush' that takes two integer arguments.
        The results was that the annotation was not properly resized.
        - increased version number.

2022-04-08 btd, cage

        * .gitignore,
        * NEWS.org,
        * annotate.el:

        - fixes maintainers list as proposed by Stefan Monnier
          also adds other proposed changes, such as ignoring ELPA-generated
          files
        - Merge pull request #127 from bastibe/bastibe/fix-maintainers
        - increased version number;
        - reverted a form;
        - updated ad fixed NEWS.org.

2022-04-07 cage

        Merge pull request #125 from cage2/fixed-deleting-annotation

2022-03-09 cage

        * Changelog,
        * NEWS.org,
        * annotate.el:

        - increased version number.
        - updated NEWS.org.
        - updated Changelog.

2022-03-03 cage

        * annotate.el:

        - added an email address to contact the developers;
        - removed ':after-hook' in define-minor-mode, and moved
        'annotation-initialize-maybe' in the macro's body;
        - changed 'window-configuration-change-hook' with
        'window-size-change-functions'.
        - updated docstrings.

2022-02-26 cage

        * annotate.el:

        - fixed deletion of annotations;
        The   function  'annotate-delete-annotation'   does   not  set   the
        modification bit after deleting, so the annotation was not deleted at
        all if the buffer was saved just after calling this command.
        Also the coloring of the rest of the annotation was not updated.

2022-02-16 cage

        * annotate.el:

        - removed commented code;

2022-02-12 cage

        * annotate.el:

        - removed nested 'if' inside a call to 'list'.

2022-02-11 cage

        * NEWS.org,
        * README.org,
        * annotate.el:

        - improved comment;

        - explained why we need too hook into 'window-configuration-change-hook'
          and 'annotate-blacklist-major-mode';
        - commenting  call to  'font-lock-flush' when  removing annotation
          because there is no more annotated text lef after a deletion;
        - explained why we need to use 'after-hook';
        - removed reference in a comment for a non existent argument function;
        - fixed comment;
        - flipped order of entries in the news file, now is from more recent
          to older;
        - added NonGNU ELPA badge.

2022-02-10 cage

        * annotate.el:

        - fixed typo in docstring;
        - substituted custom prompt with a call to 'y-or-no-p';
        - removed   macros    'annotate-with-inhibit-modification-hooks'   and
         'annotate-with-restore-modified-bit', both  can    be   replaced
          with 'with-silent-modification'.

2022-02-06 cage

        * annotate.el:

        - patched code as suggested from emacs maintainer.

2022-01-26 cage

	* Changelog,
	* NEWS.org,
        * annotate.el:

	- This version added the following procedures:

	- annotate--merge-interval
	- annotate--db-annotations-overlaps-p
	- annotate--db-merge-annotations
	- annotate--db-remove-overlap-annotations
	- annotate--db-merge-databases

	to merge two annotation database (in memory)

	and a command:

	- annotate-import-annotations

	that allow users  to import an annotation file  (sexp format) into
	their database.

2021-09-30 cage

        * NEWS.org,
        * annotate.el:

        - increased version number.
        - marked as modified the buffer when an annotation is deleted.
        - prevented asking to delete a  database that does not actually exists
        on the file system;
        - updated NEWS.org;

2021-09-19  cage

	* annotate.el:

        - removed customizable function 'annotate-y-or-n-prompt-function'.

2021-09-11  cage

	* annotate.el:

        - used variable 'annotate-annotation-confirm-deletion' when asking
	for deleting an annotation.

2021-09-08  cage

	* annotate.el,
	* README.org:

        -    updated    README.org     added    missing    reference    to
	'annotate-y-or-n-prompt-function'.
        - updated README.org mentioning 'annotate-y-or-n-prompt-function'.
        -  changed   default  for   asking  confirm  before   deleting  an
	annotation:  the   value  is   now  'nil'   (do  not   prompt  for
	confirmation).
        -  used 'yes-or-no-p'  (customizable via  a variable)  to ask  for
	deletion confirm.

2021-08-26  cage

	* annotate.el:

        - fixed function's name.

2021-08-24  cage

	* annotate.el,
	* README.org:

        - increased version number.

        - added prompt to confirm deletion also when deleting annotation's
	text;
        - updated README.org.
        - added confirmation prompt before delete an annotation.
        - added command to delete an annotation under point;
        - refactored some code in a function.
        - improved docstrings;
        - removed useless variable.

2021-08-19  cage

	* annotate.el:

        Merge pull request #112 from cage/clean-style
        Clean style

2021-08-17  cage

	* annotate.el:

        - increased version number.

        - removed garbage at the end of an error message.

2021-08-16  cage

	* annotate.el:

        - cleaned up style using checkdoc;
        - added missing docstrings.

2021-06-20  cage

	* annotate.el:

        Merge pull request #109 from cage2/fix-replace-button
        Fixed callback for "[replace]" button in summary window

2021-06-07  cage

	* annotate.el:

        - removed uses of regular expressions from 'annotate-unwrap-text'.

2021-05-31  cage

	* annotate.el:

        - allowed paths with spaces in a search query.

2021-05-27  cage

        * annotate.el:

	- fixed annotated text shown in the summary window

	When an annotated buffer (that is  visiting a file) is modified in
	a way that  changes the position of an annotation  in that buffer,
	showing the  summary window -without  saving the file  first- will
	read the  annotation using the  updated position but will  get the
	contents from the  outdated file; this gives wrong  results in the
	text  annotation  parts of  the  summary  windows, with  the  text
	shifted from  the correct  position.  This patch  try to  fix this
	bug.

2021-05-26  cage

        * annotate.el:

	- fixed  callback for  "[replace]" button  in summary  window; the
	callback  function  was  neither properly  saving  the  annotation
	database nor refreshing the buffer's annotations.

2021-05-07  cage

        * annotate.el:

	- prevented saving a file with an empty database;

2021-04-30  cage

        * annotate.el:

	- prevented calling 'annotate--remove-annotation-property' on a
	narrowed buffer.

	For some reason (perhaps related to font-locking?) comment-region
	command was calling this function, the fact is that the command
	narrows the buffer before actually adding comments, so the call to
	`point' inside the annotate--remove-annotation-property's body may
	fall outside of the buffer raising an error. This patch prevents
	calling this function on narrowed buffer.

2021-04-23  cage

        * annotate.el:
	- added checks for 'annotate-use-messages' value when trying to
        print a message;
        - replaced 'if' with 'when' when no 'else' branch exists;
        - ensured all annotations are saved before showing summary window.
        - fixed indentation;
        - improved documentation and fixed indentation for a couple of local
        functions.


2021-04-21  cage

        * annotate.el:
	- added comments to local functions of 'annotate-annotate';
        - changed behaviour  when user is annotation  a newline character;
	update an existing annotation on  the line that terminate with the
	newline the  user is  annotation only  if the  existing annotation
	spans the whole line.

2021-04-20  cage

        * annotate.el:
	- skipped saving to database a file with no annotations;
        - allowed removing (or cutting) annotations when buffer is in
        read-only mode;
        - when annotating  a newline, replace annotation if  a single one
	exists on the line that is going to be annotated.

2021-04-19  cage

        * annotate.el:

	- added feature; when the customizable variable
	`annotate-endline-annotate-whole-line' is not nil (default t), and
	the user try to annotate a newline the whole line is annotated
	instead (or the next if the line is empty).
	If `annotate-endline-annotate-whole-line' is nil annotating a newline
	will signal an error.

2021-04-16  cage

        * annotate.el:

	- prevented asking for annotation when trying to annotate a newline
        character.

2021-03-14  cage

        * annotate.el:

	- allowed deleting of annotations for info files;
	- removed useless argument for 'font-lock-flush'.

2021-03-12  cage

        * annotate.el:

	- changed function from 'font-lock-fontify-buffer' to
	'font-lock-flush';
	- changed function calls from 'cl' package to the 'cl-lib'
	equivalents;
	- added missing argument to 'annotate-create-annotation';
	- removed unused functions.

2021-03-11  cage

        * annotate.el:

	- removed warning related to misplaced '(interactive)';
	- removed warning because of expanding a macro that was defined
	later in the code.

2021-02-05  cage

        * annotate.el:

	- fixed 'annotate-previous-annotation-ends'

	'annotate-previous-annotation-ends'  scans   the  buffer  contents
	backward looking for an annotation before a buffer position
        (let's' call this position 'POS').

	If an annotation exists on 'POS' the backward search starts from a
	position less than the starts of said annotation.

	But unfortunately in the local function
	'annotate-previous-annotation-ends' the test to stop the searching
	is wrong.

	This is the code for the local function:

	----

	(cl-labels ((previous-annotation-ends (start)
	  (let ((annotation (annotate-annotation-at start)))
	    (while (and (/= start (point-min))
                        (null annotation))
              (setf start (previous-overlay-change start))
	      (setf annotation (annotate-annotation-at start)))
            annotation))))

	----

	Let's   assume  that   the  annotation   under  'POS'   starts  at
	(point-min), of course this is  the first annotation of the buffer
	and the function should returns nil.

	Then the initial value of  'start' (argument of the local function
	above) is one less the starting  of the annotation under 'POS' and
	-in  this  case-  values  0   (when  '(point-min)'  values  1)  no
	annotations can exist  at 0 and, moreover,  (/= start (point-min))
	is  non nil;  therefore the  test passes  and the  results of  the
	function  is  the  annotation  under the  position  'start'  where
	'start' get the value of (previous-overlay-change start)).

	The latter expression '(previous-overlay-change start)' return the
	position in  the buffer where there  is a change in  an overlay or
	(point-min)  if no  change in  overlay exists;  in the  case under
	examination the  expression returns (point-min) as  the annotation
	under 'POS' is the first in the buffer.

	In conclusion, the function returns  the annotation under 'POS' as
	the annotation that supposed to starts before the annotation under
	'POS', instead of nil!

	To reproduce the bug:

	buffer contents
	****
	****
	^^^
	annotate this portion of the buffer

	****
	*aaa

	then annotate all the non-annotated text.

	AAAA
	Aaaa

	The coloring  of the highlight of  the two annotation will  be the
	same (wrong) while the background  color of the annotation text is
	not (which is correct).

2021-01-15  cage

        * annotate.el:

	- added checking encrypted (GPG) file format.

	In many parts  of the code we  use 'annotate-guess-file-format', a
	function that  try to guess the  format of the file  that produced
	the  contents of  a buffer.

	Sometimes (for example  buffers that shows info  nodes) this check
	is  very   expensive  because   involves  reading   (and  possibly
	decompress  or even  decrypt) the  file contents  and check  for a
	regular expression.

	If  we  could know  in  advance  that  the file  is  symmetrically
	encrypted with GPG we could  skip other, more expensive checks for
	guessing file format (like info files).

2021-01-14 cage

        * annotate.el:

	- added padding also for notes placed on the margin of the window.

2021-01-06  cage

        * annotate.el:

	- prevented side effects of 'split-string'.


2020-12-23  cage

        * annotate.el:

	- changed customizable  variable related to exporting.   As we are
	using  diff-mode   could  instruct   the  executable   to  operate
	accordingly to a command line.

2020-12-23  cage

        * annotate.el:

	- rewritten export and integrate of annotations export use now the
	Emacs diff functions to generate a buffer containing the patch.

2020-12-23  cage

        * annotate.el:

	- fixed export for annotated text made from a single line.

2020-12-22  cage

        * annotate.el:

	- removed code, in integration procedures, that should never runs.

2020-12-22  cage

        * annotate.el:

	- fixed integration of multiline annotated text.

2020-12-20  cage

        * Changelog, NEWS.org, annotate.el:

	- updated version;
	- updated NEWS and Changelog (also fixed grammar for the former).

2020-12-19  cage

        * annotate.el:

	-   moved  'save-match-data'   from   the   function  that   calls
	'annotate--split-lines' inside  the body of the  latter; to remove
	any side-effect.

2020-12-19  cage

        * annotate.el:

	- fixed the width of the last row of the box

2020-12-19  cage

        * annotate.el:

	- wrapped 'annotate-wrap-annotation-in-box' with 'save-match-data.

2020-12-19  cage

        * annotate.el:

	- added procedures to pad multiline annotation text.

2020-12-18  cage

        * annotate.el:

	- extracted  local function  and taken  into account  info node
        names (that should not be expanded).

2020-12-18  cage

        * annotate.el:

	-  stored abbreviated  filenames for  the path  component of  each
	record of the annotations database; - improved a docstring.

2020-12-16 cage

	* Changelog, NEWS.org, annotate.el:

	Updated version and documentations.

2020-12-07  cage

        * README.org, annotate.el:

	- fixed more typos.

2020-12-01  cage

        * README.org, annotate.el:

	- allow overwriting (even partial)  of annotations.  That is, user
	can place an annotation on top of an already existing one. The new
	will  delete  overlapped  portion  of the  old  annotation.   This
	feature    should   not    allow   to    break   an    annotation,
	though. Annotations can not overlaps.

	- added a new customizable variable:

        'annotate-warn-if-hash-mismatch'  when  nil  prevent  printing  of
	warning  when annotation  database's'  hash and  file  has do  not
	match;

	- fixed bug  in alternating coloring of  annotation and underlined
	text;

	- updated README;

	- fixed some typos.

2020-11-22  cage

        * annotate.el:

	- added more docstrings.

2020-11-12  cage

        * annotate.el:

	- prevented getting shared value for 'annotate-file' in
        '%load-annotation-data'.

	This  way  we can  ensure  that  'annotate-file' can  be  declared
	buffer-local and  different annotation  databases can be  used from
	different buffers.

2020-11-11  cage

        * annotate.el:
	- fitted 'annotate-position-inside-chain-p' into   'annotate--position-inside-annotated-text-p';
	- fixed some typos.

2020-11-06  cage

        * annotate.el:

	- Fixed a regression  and some bugs related to
        incorrect calculation of of multiline annotations.

	To reproduce the bugs:

	legend:

	a = annotated text
	* = non annotated text

	- First bug

	Create a multiline annotation using region.

	aaaa
	aaaa
	aaaa    ####

	Place the cursor as below.

	aaaa
	^ cursor
	aaaa
	aaaa    ####

	type a character

	a****
	aaaa
	aaaa    ####

	The annotated text has a "gap"

	Fix proposed: revert to the old (correct behaviour)

	Second bug

	aaaa
	aaaa
	aaaa    ####

	Place the cursor as below.

	aaaa
	^ cursor on the first column
	aaaa
	aaaa    ####

	type some text

	***
	aaa
	aaa    ####

	Save (C-x C-s)

	you  get an  error  on  the echo  area:  "let*:  Wrong type  argument:
	overlayp, nil" and the annotations are not correctly saved.

	Fix proposed: remove the offending code.

	Third bug

	a multiline bug as before

	aaaa
	aaaa
	aaaa    ####

	place the cursor here:

	aaaa
	aaaa
	^ cursor
	aaaa    ####

	type some text

	aaaa
	*****
	aaaa    ####

	Then annotate the same line (C-c C-a):

	aaaa
	aaaa    ####
	aaaa    ####

	we  introduced  a  annotation  in  the gap  of  the  already  existing
	multiline annotation.

	Fix proposed: prevents annotating text inside an annotation.

2020-09-29
        * README.org, annotate.el
	- updated README;
	- increased version;
	- updated NEWS and Changelog.

2020-09-22
        * annotate.el
	- added   command   'annotate-summary-of-file-from-current-pos';
	this command shows a summary window that contains the annotation
	in the  active buffer  that appears after  the cursor  position;
	- added docstrings.

2020-09-20
        * annotate.el
	- fixed indentation.

2020-09-20
        * annotate.el
	- Using "help-echo" to print annotations instead of render it on the
        buffer.
	This feature is optional and can be activated using the
        customizable variable 'annotate-use-echo-area'

2020-09-20
        * README.org
	- Removed internal link because of issue #79.

2020-08-11
	* annotate.el (annotate-annotate, annotate-load-annotation-data
	               annotate-create-annotation, annotate-summary-query-parse-note,
                       annotate-switch-db)

	- Added errors conditions signalling to some functions.

2020-07-01
	* annotate.el (annotate-change-annotation)

	- ensured that the modified status of as buffer is not modified by the local
	function 'delete' in 'annotate-change-annotation';
	- added dependency on 'info'.

2020-06-26
	* annotate.el (annotate-switch-db)
	- Added file argument 'database-file-path',
	  this could help people calling this function in a non interactive
	  way from their code;
	- fixed some typos in documentation and comments.

2020-06-09 Bastian Bechtold, cage
	* annotate.el (annotate-buffers-annotate-mode, annotate-switch-db)
	- added functions to switch the database of annotations used for the emacs session;
	- increased version to 0.8.0

2020-05-18 Bastian Bechtold, cage
	* annotate.el
	- Increased version to 0.7.0 for stable release

2020-01-25 Bastian Bechtold, cage

        * annotate.el (annotate-annotation-force-newline-policy,
                       annotate-annotation-newline-policy-forced-p,
                       annotate-create-annotation,
                       annotate-lineate,
                       annotate-summary-delete-annotation-button-pressed):
        - mitigated bug that prevented rendering of annotation in
          org-mode forcing 'newline' policy for annotation
          positioning.
          See the local function
          'maybe-force-newline-policy' in 'annotate-create-annotation'.
        - chosen the window that contains the current buffer when resizing the annotations
          see variable 'current-window' in 'annotate-lineate';
        - redraw buffer if one of its annotations is deleted
          operating from the summary window.
          see: 'annotate-summary-delete-annotation-button-pressed'.

2020-01-22 Bastian Bechtold, cage

        * annotate.el (annotate--font-lock-matcher):
        - fixed error for regexp search
        Sometimes some modes/package puts overlay on the last character of a
        buffer (notably SLIME when the parenthesis of a form are not
        balanced). This will make 're-search-forward' in the aforementioned
        function fails and font lock becomes a mess (e.g. text color
        disappears).

2020-02-10 Bastian Bechtold, cage
        * annotate.el (annotate--font-lock-matcher annotate-bounds annotate-symbol-strictly-at-point annotate-next-annotation-change annotate-previous-annotation-change annotate-clear-annotations annotate-annotate)
        - prevented fails of fontification of annotated regions
        As we walk across the overlays we can get past the limit;
        - mark buffer as modified even if the only action the user performed
        was clearing annotation (and at least an annotation was present in
        the file)
        - prevented annotation of text marked with a region that overlap with
        an existing annotation.

2020-03-06 Bastian Bechtold, cage
        * annotate.el (annotate-annotation-force-newline-policy annotate-annotation-newline-policy-forced-p annotate-summary-delete-annotation-button-pressed annotate--annotation-builder)

        - used  an heuristic  to force newline  policy when  the annotated
        text  does  not  uses a  standard  fonts  (using  font  height  as
        comparison);

        -  when, in  summary  window,  the delete  button  is pressed  the
        software take care of reload  annotate mode for the visited buffer
        the annotation button is referring to;

        - when re-flowing annotation the window width was calculated always
        for the current buffer (the one with the focus).

2020-03-06 Bastian Bechtold, cage
        * annotate.el

        - each annotation (the overlay, actually) now has a property 'position
          and its  value indicates which  positions the annotations holds  in a
          "chain"  of  annotations.

          Even  if  rendered separately  each  chain  represents a  single
          annotation.

          The last annotation in the chain has position's value equal to -1.

          If  the set  of a  group/chain  is formed  by only  one element  the
          position's value is -1 as well.

          Please note that this changes impacted more or less the whole
          package's code.

2020-03-16 Bastian Bechtold, cage
        * annotate.el (annotate-annotate)

	- fixed annotation picking in 'annotate-annotate'
          at  the  beginning  of  the  function we  was  picking  the  first
	  available  overlay.   So  the annotated  text  contained  multiple
	  overlays and an  annotation was not the first we  missed the last,
	  This means, for example, that the annotation was not modifiable.

2020-03-16 Bastian Bechtold, cage
        * annotate.el (annotate-create-annotation)

	- fixed managing return value of
	"(get-text-property changed-face-pos 'face)"

	When finding  the face of a portion  of buffer, to try to  get the right
	positioning   of   the    annotation,   using:

	"(get-text-property changed-face-pos 'face)"

	the code  assumed this function returned  a symbol (the face  of the
	text) or nil: this is  incorrect according to the documentation; the
	code above can returns a symbol, a plist or even list of symbols.
