commit 6ec01db5e571f53ebeaf6b514fc6fe122e03578b
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 23:21:08 2026 +0100

    carnet: bump to version 1.7.2.

commit e1a4acbc9dd8fd5a135fd87cc76aa09a6cca4dd7
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 23:16:53 2026 +0100

    carnet: fix search for todo items.
    
    Integrated search patterns needed to be decompensated for the fix
    brought to '\n'.  The duplication of '\' also caused some breakages
    that could not be decompensated and prevented the task management
    system to not capture open tasks correctly.  Therefore, the correction
    is removed and the old behavior for '\' is restored.

commit a985b168e52d55c21ffc8663280c9a658bb3bd48
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 20:10:53 2026 +0100

    makefile: provide a release target with CHANGES.
    
    The "release" makefile target allows build an archive that will
    contain a CHANGES file autogenerated out of the git log.  Because it
    is obtained from the git log, committing this file is going to be
    inconvenient and won't be part of the git tree.  Therefore, the two
    levels of cleanup targets: "clean" and "purge" are redifined in order
    to separate them between cleanup of a tarball release and cleanup of
    the git tree.  As a rule of thumb, running `make clean` from the
    tarball is intended to restore it in its original state, while running
    `make purge` may destroy files from the tarball than can't be
    reconstructed anymore, but is intended for restoring the git tree in
    its original state.
    
    This is a good opportunity to begin the introduction of some sanity
    checks when proceeding to a release, like making sure that the last
    commit is about the version bump, and making sure that the version
    bump is aligned to the actual carnet version stored in the script.

commit 033c24c46b7143d025f5a9503d0d8f8400f36c93
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 19:36:06 2026 +0100

    carnet: bump to version 1.7.1.

commit da5b958155c1706bf0e6f42fd05af10973864e49
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 19:34:16 2026 +0100

    BUGS: remind where to locate newer versions.

commit 9a6815c26267bbf502b31a88dcc87dd0866fda02
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 19:18:22 2026 +0100

    BUGS: advertise the existence of rednotebook.
    
    This is an alternative to carnet that supports graphics.  It might
    include cross referencing entries or not, I have not tried, but it
    could have been a software I would have used with my initial needs,
    if I hadn't been strict about honoring EDITOR and the like.

commit 00866130c1067e15efc8f23efb3cfb39a6029e29
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 19:11:53 2026 +0100

    BUGS: remove mention of git log.
    
    The git log is public[1] and can be accessed along distribution
    tarballs.
    
    [1]: https://emlwks999.eu/~emollier/src/carnet/changelog.txt

commit 53e2e8432ce14010df8c0c579a3f1e824377ef82
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 19:09:40 2026 +0100

    carnet: drop hardly actionable FIXME items.

commit 1fbcd304e1b8d265463f61b4d3747c0bd8e127da
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 18:54:26 2026 +0100

    carnet: make a pass of typos corrections.

commit cbdfb0723273574625afb287813f095291941fcb
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 18:47:29 2026 +0100

    scripts/test.sh: fix a typo in the error message.

commit 47966cb9af45a23b19be13d39685d7037e7ffd68
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 18:42:49 2026 +0100

    carnet: improve the search pattern sanitization.
    
    Until then, searches involving backslashes or carriage returns did not
    work very well, unless end users doubled the quantity of backslashes
    by hand.  This adjustment better handles handling backslashes in
    general, and the sanitization of the carriage return, which needs
    special handling since the initial backslash of the \n gets translated
    into a real carriage return before the sanitization has a chance to
    kick in.

commit be4486c0ba9d132dbac4322e4be9b1ce417a931e
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 17:42:11 2026 +0100

    carnet: use tab aligned help.
    
    While this is not particularly good practice, in this particular case,
    this helps with default line rewrap behavior, that introduces tabs
    when eight consecutive spaces are used for alignment.  I'm hopeful to
    find a better alignment method that accomodates better with help2man.

commit a945dcdb82c43f9b1dbeb43467107418f02e65c5
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 17:38:02 2026 +0100

    carnet: separate -v and --version in the help.
    
    Similarly to -h and --help, the two outputs are different, with the
    short option aimed at providing a terse output.

commit 1dce5800992c7a5552aeb0dc66f504a3a6c4fa92
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Mar 1 14:18:33 2026 +0100

    carnet: bump the copyright year.

commit 283c77804f099ace8091f83c36e407cfeed3b789
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Feb 14 14:06:06 2026 +0100

    carnet: add -lm in the synopsis

commit ae82ba363c345c79e7173ec10412878398aeffed
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Feb 14 13:49:48 2026 +0100

    carnet: bump to version 1.7.0.

commit 13381b0dd05888f5b62a431b2755793b812fc7f3
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Feb 14 13:48:51 2026 +0100

    s/test.sh: cover modules handling in the test suite.

commit 1b0e21e910cf133d9e318e59e703e7b71ff61320
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Feb 14 13:48:19 2026 +0100

    carnet: add support for listing modules.

commit 32a9399fbbc435e71ce17bae1f39361b88215324
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jan 20 22:39:22 2026 +0100

    carnet: bump to version 1.6.8.

commit 7dc0e78049db231acca4d2a897c85e546557a0fe
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jan 20 22:37:09 2026 +0100

    carnet: page --help when run from the terminal.

commit 0345a256800fcee3501f3f6f56d21fba67ac9497
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Oct 22 21:24:35 2025 +0200

    carnet: bump to version 1.6.7.

commit ad8f9c278b2828727eb103529e2a6cc4ffa5ce9d
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Sep 25 20:39:13 2025 +0200

    carnet_activity.pl: Mean → Average.

commit 71030293064e943c1d0a226efe3b6bb66ca75ce3
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Sep 8 19:48:56 2025 +0200

    carnet: bump to version 1.6.6.

commit 9193cc52c9770f32b3166d97f22d628d0a66f09d
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Sep 8 19:45:43 2025 +0200

    Revert "carnet: allow arguments without dashes."
    
    This reverts commit a190718399956c6b92d768eb3fa18fcc51d59614.
    
    After some testing done without dash arguments, I am not convinced
    that specifying options without dashes is of much added value.  I also
    notice that this makes online help heavier and the automated manual
    page more ugly.  Undoing this change also allows me to keep increasing
    the patchlevel of carnet instead of introducing a new minor version,
    not that matters much but I prefer adding real functionalities to bump
    the minor version.

commit 782efa5f757c5faa0859dc1bfcdd1854b466753d
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Sep 8 19:38:58 2025 +0200

    carnet: fix overtime offset.
    
    When introducing the ability to capture risks of overtime, it happened
    that the legacy configuration recording only hours improperly also
    recognised the number as a number of minute, i.e. a CARNET_OVERTIME=9
    was computed as an overtime of 09:09 duration instead of 09:00.
    
    This change restores the proper behavior while still preserving the
    ability to set HH:MM overtime detection durations.

commit a1274b1a06036a8344a4a47b1366c8994e9d2b4c
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Aug 25 22:55:46 2025 +0200

    makefile: fix vulgar typo for system prefix.
    
    The change also includes a fixup for the signing step to improve its
    portability to bmake.

commit 3b4d1d32b8f6c4c94163df7d53094c1ae826f32f
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Aug 25 22:22:56 2025 +0200

    carnet: simplify " - " trimming.
    
    This change is related to a cruft when listening to radio stations
    instead of music on local storage.  Since this is not too obvious
    where this stems from, the change also includes a comment to describe
    what this is about.

commit b71e70fe65ff7e77772a43e40d5c7082246534c1
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Aug 25 22:02:50 2025 +0200

    makefile: improve portability with bmake.

commit a190718399956c6b92d768eb3fa18fcc51d59614
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Aug 24 00:36:17 2025 +0200

    carnet: allow arguments without dashes.
    
    This change adds the functionality of running carnet specific options
    without the initial "--", for instance to search a pattern, one can
    now run:
    
            $ carnet search pattern
    
    or to list todo items:
    
            $ carnet todo
    
    Such changes closes the door to an eventual way to pass an arbitrary
    character string to do something else; for instance it could have been
    purposed for giving an arbitrary trailing context.  If this proved to
    be an error, the change may be undone in carnet v2.

commit a772acaee8fc019fd4dc16781fa60e8f91116a4c
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Aug 18 09:36:13 2025 +0200

    carnet: explain why it's a killer app.  :)

commit 91511875df3612709bcd35343e1110c796e1bc52
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Aug 18 09:34:24 2025 +0200

    carnet: split -v and --version.
    
    `carnet -v` now returns a short form while `carnet --version` returns
    a full form including copyright information, vaguely useful for the
    production of the manual page.

commit 2aaac32716806c83bb3e92794d59487208d37c38
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Aug 13 20:48:57 2025 +0200

    carnet: bump to version 1.6.5.
    
    Only change is purely cosmetic: the programming style of the perl
    code to make use of push where relevant.

commit b929d30cb823384c97eabd8a0eff2fe0b96fada8
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Aug 7 20:02:31 2025 +0200

    carnet_activity.pl: use push to populate arrays.
    
    This is a clearer, more perlish approach.

commit cf36ade55e0731d1646c93d5748c67c18f9ee144
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Aug 6 23:32:13 2025 +0200

    carnet: bump to version 1.6.4.

commit 90c6678e0f8665420d3170cb4f80838a79ba60d9
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Aug 6 23:19:05 2025 +0200

    carnet: simplify the compare and swap.
    
    The compare and swap cannot be atomic in shell context, so there is no
    great loss in simplifying the operation using commands easier to
    parse for human beings.

commit 5196982413908d940df5e3345d2eef97b3aec20b
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Aug 6 23:03:26 2025 +0200

    carnet: reinforced lock implementation.
    
    This is not perfect (and perfection does not look achievable in
    portable shell code), but this is greatly reinforced thanks to compare
    and swap of the PID in the file.

commit 49a5af57f0fa301e9415783d948e5c2ea63980e0
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Aug 6 21:02:53 2025 +0200

    carnet: provide sudo user in trailing context.
    
    This is useful on a shared carnet for system administration by
    multiple people to know who wrote what, often to be able to ask
    questions, coordinate operations, etc.  This has limitations as
    SUDO_USER does not work when people login as root straight away, but
    this is better than nothing.

commit 4ee5f33524d3a6db2f20ec52584b905afe8cdca0
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Aug 6 20:53:10 2025 +0200

    carnet: handle carnet-specific lock files.
    
    This big change introduces the function setup_locks, which makes sure
    that there is no lock file open on a file under edition by carnet,
    also checking for common swap files from a couple of known text
    editors to avoid certain kind of incidents.  The implementation is not
    perfect but feels surprisingly good.  A part of the code is a bit
    messy, when hunting for information to display about the conflict when
    there is one occurring.
    
    WARNING: this function sets the LOCKFILE global variable and a trap on
    EXIT, so it can be invoked at most once during a carnet invocation.
    The trap also requires that the carnet script keeps running during all
    the time of the edition, so that the trap can trigger after the editor
    gives back the hand, for cleaning things up.  It's also been necessary
    to ensure the CARNET_DIR already exists prior invocation of
    setup_locks in the specific case of new carnets.

commit 6078a54ea5f5e505dfa23a5293b8ff6c84667b22
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Aug 5 21:40:46 2025 +0200

    carnet: bump to version 1.6.3.

commit a41a8ce9d22738a1e47b345468416a370173c882
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Aug 5 21:17:46 2025 +0200

    carnet: pass multiple arguments to --search.
    
    When multiple search patterns are passed to --search, they are
    concatenated to facilitate search over multiple keywords.

commit 2c66fb43f02d78af721f1f91d8afb9ee18c09b4c
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Aug 5 20:39:11 2025 +0200

    carnet: emphasize it is logbook over a notebook.
    
    The home page, outside git context, is also adjusted.

commit 0d37f65f84dee53ffad975860ffbff88232f9659
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Aug 4 22:48:49 2025 +0200

    carnet: document the CARNET_LESS environment.

commit b5a38eebe020185f6d1d21f81a88a8d85b92a817
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Aug 4 22:45:25 2025 +0200

    carnet: apply sane default less behavior.
    
    Of course, this is about default behavior.  If the LESS environment
    variable exists, we don't touch that.  Also, this introduces the
    ability to pass less options specific to carnet via the CARNET_LESS
    environment variable.

commit e1c84075d8cbd8a40142ce1e6f03024aa0cd5d35
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Aug 4 22:43:10 2025 +0200

    carnet: account for detachable terminal behavior.
    
    Screen and tmux have the same unhandled terminfo escape sequence as
    the linux type of terminal.  Special case these two terminals as well.

commit f1ec8ae35075d385d33a0153ddbd2ed06a9c6112
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Aug 4 07:54:31 2025 +0200

    carnet: bump to version 1.6.2.

commit 4870f0180e0af5fbcb5192592a3c45019f9f835f
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Aug 3 22:29:53 2025 +0200

    carnet: expand has_lock_file description.

commit f447c0a985a793d5593e520a18271da8ac6bf501
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Aug 3 22:19:14 2025 +0200

    carnet: separate -h and --help.
    
    The shorthand `carnet -h` invocation will output a short usage message
    with an invitation to run `carnet --help` or read the manual for full
    details.
    
    The idea of this change is to preserve the readability of the usage
    notice even if the full help message has no chance to fit within a
    small terminal screen.

commit 5d9ea84d0bda1fdb7d2e68f9f3e097713a267492
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Aug 3 22:15:12 2025 +0200

    carnet: describe CARNET_OVERTIME change in help.
    
    The help message needed slight adjustment after modifying the behavior
    of the CARNET_OVERTIME environment variable.

commit a142a789fdf5e89f14de99248c950238497f2edb
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Aug 3 21:29:58 2025 +0200

    carnet: support hh:mm format in CARNET_OVERTIME.
    
    This change introduces the ability to specify CARNET_OVERTIME
    durations with partial hours, specified using hh:mm convention.
    Original behavior of using a single integer as an amount of hours
    is retained.

commit 0211c9709381eab5d315e9bc8da8526cd0bdaf26
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Aug 3 17:43:00 2025 +0200

    carnet: bump version to 1.6.1.

commit 0c3d312a622925c2aa1ad95c29616b78d36cba81
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Aug 1 15:59:28 2025 +0200

    s/test.sh: separate test contexts.
    
    test.sh now is capable of operating from within the carnet source code
    directory, in order to test the in-development carnet, and to operate
    also outside its context, usually for making sure that carnet is still
    behaving properly after having been deployed on a machine.

commit ded6c6ce25cb1f14ac5688f4d42628fc9e912eaf
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Aug 1 14:58:46 2025 +0200

    carnet: cleanup leftover frenchisms.

commit e06247327bebe32cdc8abd1b294cad15e72ef021
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Aug 1 11:43:16 2025 +0200

    carnet: limit trailing newlines within awk script.
    
    The hack with `sed '$d'` to trim the trailing newlines was not
    particularly clever.  It simplifies things to implement it within the
    awk script of the search_log function by clearing the output record
    separator (ORS) back to its default value.

commit 660361b0109325250182c4a3c8102cc11bac8a48
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Aug 1 11:22:11 2025 +0200

    carnet: lightweight full search output.
    
    Prior to being handled specifically, a zero argument call to the
    search function would output the entire content of the carnet at all
    time.  However, the output would be invisibly cluttered with escape
    characters opening and closing highlight colors, making the resulting
    output ten to twenty times heavier than it should.  Matching /^/ would
    clean up the output substancially of its terminal escape sequences
    without blinding the end user with highlight color.

commit 67dd92c0e1f46b31ae0476d47e8d395bcbd6fe2d
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Aug 1 10:41:06 2025 +0200

    carnet: entries are feuillets.  :)

commit 961886772d6590c1e3b7fa2f02cc73ce11f528f1
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Aug 1 00:05:25 2025 +0200

    carnet: bump to version 1.6.0.
    
    The minor version bump is justified by the addition of carnet modules
    support.

commit 5a922864c1f00715c56310e007f82a3cf97f52d2
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Aug 1 00:03:14 2025 +0200

    carnet: remove apparently useless FS setting.

commit 1274f8db09221c37ed77cfea3552db71faa8276a
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jul 31 23:56:27 2025 +0200

    carnet: remove is_less_friendly.
    
    The function is mostly useless at the moment, as it is preferrable to
    fix fuzzy terminfo values instead of preventing a pager to run.  This
    makes read_with_pager a true primitive again; this won't help with
    decoupling the terminfo_normal though.

commit fb55208416fa1695af3a74f02d7253ca0d44744d
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jul 31 23:48:18 2025 +0200

    carnet: complement the module error message.

commit 781739671c83941060728fb4c8d107620287db78
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jul 31 23:43:51 2025 +0200

    carnet: separate primitives from application logic.
    
    This is an attempt at thinning the glue layer between the top and
    bottom layers of the script.  Dependencies between functions have been
    removed where possible, and assembling of multiple functions is
    concentrated in the handles of the different commands of the carnet.
    Remaining identified interdependencies outside handles are:
    
            read_with_pager  -> is_less_friendly
            paint_timestamps -> terminfo_normal
            search_log       -> terminfo_normal
    
    Of course, the fact that the construction of base carnet entries
    themselves are outside the context of a shell function makes them hard
    to understand anyways.

commit 89c2ebd78be41798f2e9b3f4d9c082876e0f1683
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jul 31 22:52:11 2025 +0200

    carnet: remove unneeded highlight variables.

commit 0b9207fe1f51d7a6c7ae5716c67a6a8c34ee8640
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jul 31 22:41:07 2025 +0200

    carnet: report the number of found searches.
    
    It's a gadget, but an appreciable gadget sometimes.

commit de3ef795c888aeccf7cb5ebea26cbbaa0f926e70
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jul 31 22:24:14 2025 +0200

    s/gen_test_carnet.pl: clear namespace.
    
    However hidden this is, it was polluted by the POSIX module functions.

commit c0ca4c5fd605277827f3a60261ac66f11eca8a2a
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jul 31 22:04:12 2025 +0200

    Be honest about depending on gawk.
    
    The current implementation is mostly operating properly only using
    gawk.  While some part of the --search function work somewhat with
    some alternate awk implementations, this is not tested near enough and
    it is more honest to make carnet depend on the full fledged GNU awk
    for now.  I'm not seeing myself fixing this any time soon, apart
    perhaps if one day I move the code to compiled language and lex/yacc.

commit b2b46466573350f705a42749eae254fdddb2f1fc
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jul 31 21:44:33 2025 +0200

    carnet_activity.pl: adjust $carnet_dir definition.
    
    This refactor tries to make the flow of constructing the $carnet_dir
    more in line with a code structured in such a way, that the
    conditionals handle exceptions to the normal flow.

commit fe3475ab2dc285ecd73e49bf80931cf0e6009366
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 30 22:40:14 2025 +0200

    carnet: implement ability to run modules.
    
    This change implements the -m|--module command option, which allows
    associating custom commands to a given carnet.  The option is
    primarily targeted at power users after custom search engines and
    activity metrics, or for prototyping functionalities before
    integration to the carnet engine.

commit 6407bfe067eeba93cbfc331818c6e82cb2de0416
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 30 22:34:34 2025 +0200

    carnet: cleanup useless uses of echo.

commit 473e391a2e535c46028a59d54fca04e6ac535178
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 30 22:03:36 2025 +0200

    carnet: bump to version 1.5.4.

commit 04570125cff772e849d0fcf0d61de238f03d254a
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 30 21:17:50 2025 +0200

    s/test.sh: add FIXME item.
    
    It would be nice to reuse the script for verifying system integration,
    e.g. Debian's autopkgtest.

commit aa8ac2c6792e0bb8e48a8efee57f798528ac7196
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 30 21:13:29 2025 +0200

    s/test.sh: move command inducing delay to the end.

commit 728695b39e7871c9e82adb4c4fc36b907d9c6c7b
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 30 20:16:29 2025 +0200

    Change root's default carnet_dir.
    
    When using the root account, while not particularly recommended,
    handling a carnet specific to a system along its logs sounds like a
    legitimate use case, in which case /var/log/carnet looks to be a most
    appropriate default location, along system logs.
    
    This change modifies the carnet script and carnet_activity.pl in order
    to adjust to the new default value.

commit 84f8de4e54b498d0f266da4469111c1063204784
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 30 20:05:54 2025 +0200

    carnet: implement has_lock_file.
    
    The function is used where entries are going to be edited, to make
    sure that we are not going to interfere with ongoing work done by text
    editors opened somewhere else.  The control is also implemented when
    invoking bare carnet, or when running --edit-feuillet.
    
    Note that this is by no means a perfect mitigation against lock files,
    since only vi-style files are handled for now, and given that it won't
    capture carnet's own editions, for the moment.

commit 05b49c7cb725c730a11f11465ccac35fca253499
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 30 19:57:18 2025 +0200

    carnet: compact read_with_pager.

commit fadb547b4234be5cc4215d0aea4c612428bf700e
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 30 07:15:29 2025 +0200

    carnet_activity.pl: workaround some broken terms.
    
    In very specific context a terminal may be detected but is not in
    working conditions to assess a correct size, e.g. while running a
    pre-commit git hook.  This tries to mitigate negative side effects of
    such configuration.

commit c2e7d49b2488583a0178a16f483b91b0691c6d74
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 30 07:09:40 2025 +0200

    s/test.sh: make sure failing activity fails.

commit fe3814a4b75111d6b59f20217805c1a5ac3ac53f
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 30 00:13:18 2025 +0200

    carnet: bump to version 1.5.3.

commit 45e4cddc7cf085836e89800563fe0856e187f940
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 30 00:01:05 2025 +0200

    carnet: simplify locate_feuillet.
    
    By leaving the responsibility of painting timestamps to the caller in
    a pipeline, it becomes possible to greatly simplify the logic of the
    extra option of the function that only returns the file name and line
    number of the feuillet.

commit 392717d82f372e9326793fb25a515bb5de46e36e
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 29 23:52:30 2025 +0200

    s/test.sh: stress task management and readonly.

commit 21e52bddede14abc7c412d66e616c97e1e0e836f
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 29 23:41:13 2025 +0200

    makefile: introduce test target and recipe.

commit 00061c5b88229be85f7560283de139d8f8e86713
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 29 23:39:33 2025 +0200

    s/test.sh: new: test script.
    
    The script facilitates checking that changes have not introduced any
    obvious issues.  This is mostly integration test, but it lacks unit
    testing.

commit 9a365312e1c48d5bcadece474b3cd575bfd53c03
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 29 23:37:43 2025 +0200

    s/gen_test_carnet.pl: allow much larger weeks.
    
    The limit is bumped to 256kiB and the probability to write one more
    kiB is now one out of fifty.

commit bb8e4625799336dd144902d8c20afffd1d656ce6
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 29 23:36:12 2025 +0200

    carnet: fix register file trigger warning.
    
    It was unjustified to show the warning when without a register file
    but still trying to open a feuillet.

commit a579cecb3ad97552f403366a6446d862fe0d1692
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 29 21:39:52 2025 +0200

    carnet: bump to version 1.5.2.

commit dd8be0ad04c34aabec8b8e1857528b2d3bb49d23
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 29 21:35:55 2025 +0200

    carnet: remove cleanup step in search_log.
    
    The step is now unneeded since it cleansed the trailing Date of the
    next day, but this is now already isolate in a side field that is
    already not printed out.

commit 2db2ac6cd42e3a287491df68de7aa3ca481b4028
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 29 21:31:29 2025 +0200

    carnet: repair timestamp in last day's entry.
    
    From Monday to Saturday, the last entry of the day was erroneously
    printed as part of the next day, because the date was part of the
    field, although hidden by part of the cleanup code.  The code is
    adjusted to isolate the date stamp in a dedicated field.

commit ba6200c6bcec0a6f07b165620dce44a456465e52
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 29 21:04:49 2025 +0200

    carnet: print feuillet fetch failure in stderr.

commit 032d5589acb1175ff3c3f5001f52e72628b936b0
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jul 28 21:38:27 2025 +0200

    carnet: make date calls more portable.

commit e688f5f835f42e38d8c8da9df3be2c29065b755b
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jul 28 21:22:19 2025 +0200

    carnet_activity.pl: truncate large histograms.
    
    This facilitates readability of large histograms when they do not fit
    the width of the terminal window.  Note that this can be worked around
    by piping the output to another program if deemed inconvenient, e.g.:
    
            $ carnet --activity | less -S

commit d60205bd6447a59caa83d40d21d420463ef26eba
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 27 22:47:38 2025 +0200

    carnet: replace head by sed invocations.
    
    This change fixes an issue of portability with the older version of
    head made available on systems such as NetBSD, at the cost of slightly
    more cryptic code and heavier weight command.

commit fef66941dfddbd7cc09e797351fca7180cd9437f
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 27 22:44:31 2025 +0200

    carnet_activity.pl: cleanup the namespace.
    
    According to POSIX(3perl), invoking the POSIX functions with the
    following statement will clutter the namespace with all the functions:
    
            use POSIX;
    
    and that this can be fixed with prefixing all the function with
    POSIX:: and import the functions using:
    
            use POSIX ();
    
    Since functions using POSIX were already namespaced in the script, the
    change was, thankfully, rather straightforward.

commit 1b1381691736b218d3b97889ef34326351bf5486
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 27 19:04:24 2025 +0200

    carnet: NetBSD's wsvt25 is less-friendly.
    
    Besides, when less is installed, more becomes unfriendly to escape
    sequences, so we really don't want to fallback on more in this case.

commit 7d531c08c04b8fca3b16f8323f99422f66e4c4bf
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 27 18:32:34 2025 +0200

    carnet: bump to version 1.5.1.

commit 44336c55053d062647e48a185f106d4caee15657
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 27 18:29:57 2025 +0200

    carnet_activity.pl: fix a rounding error in the rule.

commit 5db04fb53eed532d15621adc154392f3d2339d34
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 27 16:54:05 2025 +0200

    carnet: highlight distinct arguments combinations.
    
    This change adjusts the --help message to highlight that the use of
    the different arguments are generally exclusive.  I have not decided
    yet whether to signify those should not be arguments, and thus should
    be called without "--" argument flags in the future.  If I decide,
    that would be a breaking change worth a milestone item for an eventual
    carnet version 2, along changes to the file format to make the
    timestamping format more prominent.

commit 2c30ccb42f393e8b45f366412fb3bedca6f9c2e3
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 27 10:33:06 2025 +0200

    carnet: add fancy done todo marker.

commit 31189ca37e6771922fd0acf3c3708a32b9d13e05
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 26 10:36:57 2025 +0200

    carnet: bump to version 1.5.0.
    
    The minor version bump is justified by the integration of the new
    functionality of editing in place given feuillets thanks to argument
    -ef, --edit-feuillet.

commit a7a6e74647ac1afdf87caed7b382fe57eef5b379
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 26 10:13:24 2025 +0200

    carnet: wire the --edit-feuillet option.
    
    The change actually allows the edition of an entry in place by passing
    the -ef, or --edit-feuillet, argument.  It also appends the
    documentation of the argument into the --help message.

commit dc906341bf2724d07c74d4cdb487fb48e9c38018
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 26 10:10:46 2025 +0200

    carnet: implement handle_edit_feuillet.
    
    The function allows editing in place a given existing entry by
    specifying it's time stamp.  If no time stamp is specified, then it
    edits the register.txt, which is thought of as a bookmark of time
    stamps, or registry.

commit 33b29c19e8fb128105a115a2e71b5c11990a3d11
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 26 10:07:59 2025 +0200

    carnet: locate_feuillet to adjust only references.
    
    In preparation of providing the ability to edit existing entries in
    place, the function locate_feuillet is slightly adjusted to allow it
    to return only the filename and line number if requested so, instead
    of the full entry.  This is going to be useful for opening an editor
    right at the location of the entry.

commit 7f8a35c541eba13794ab95ddfe6855897017831b
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 26 09:30:03 2025 +0200

    carnet: implement lineno_argument.
    
    This function abstracts out the way to determine how to pass the line
    number of a file where to start editing the text.  Long term plan is
    to have ways to easily edit existing entries on the spot, e.g. to mark
    todo items as done.

commit 901671981ab070d294cc964cedd973f3586ce31d
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Jul 25 16:05:56 2025 +0200

    carnet: bump to version 1.4.4.

commit 506032013044100b472958e32aabc09f983489c6
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Jul 25 15:59:42 2025 +0200

    carnet: update the help message.
    
    The synopsis was missing latest argument additions, some arguments
    needed to be marked as optional, and the optional argument of --done
    was missing.  But first and foremost, make carnet called without
    arguments a first class citizen.

commit 040ccd8e8cf8ee87b56aba7d225b911074bbd6f7
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jul 24 15:38:25 2025 +0200

    carnet: bump to version 1.4.3.

commit 7f9f437aff4b89830c35a74176036cac8aec7c38
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jul 24 15:28:14 2025 +0200

    carnet: workaround tput sgr0 ^O on linux.
    
    When running carnet on the linux terminal, the one without any kind of
    graphical environment started, the output of tput sgr0 shows a stray
    ^O sequence after the normal escape which interferes with less
    execution on linux.  This change works around the problem by
    specifying the escape sequence manually when running on a linux
    terminal.  This is achieved by implementing the function
    terminfo_normal, which branches to tput sgr0 or manual sequencing for
    faulty terminals.

commit 4aa8786e38bd0a8f890ec287fc2af88752f7c0b0
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 23 22:59:42 2025 +0200

    carnet: print file name in dedicated line.
    
    While it is less clear that the file name is a file name (although the
    full path should sell it), this change actually greatly facilitates
    selection of the carnet week by a triple click of the line in the
    terminal.  This then streamlines passing the file name as argument of
    whichever editor is favored by the user; an even better option could
    be to jump straight at the right line in a pager or an editor, but
    this must be thought of carefully to not get in the way of navigating
    between entries to gather ideas.

commit 78c1a6f653332711a9191799937e96273cbd66cf
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 23 13:25:57 2025 +0200

    carnet: trim trailing slashes.
    
    This cleans up instances of duplicate slashes in file names.

commit c910651bc59acbd32840fc0b0932f4bd9e735955
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 23 12:07:47 2025 +0200

    carnet: bump to version 1.4.2

commit c182da465aff621edd5b44728e3987e962ac17ff
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 22 22:52:30 2025 +0200

    carnet: fix typo in error message.

commit acc98ac7dadd130bec379309216c82f39fa657e9
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 22 22:30:24 2025 +0200

    carnet: fix consistency issues in the indentation.

commit a5f62a5a5673d0151a5c20c2a06221c177d934de
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 22 22:24:11 2025 +0200

    s/gen_test_carnet.pl: tune the random distribution.
    
    With this change, the distribution of the size of entries more closely
    ressembles a Poisson distribution.  The cap at 64k per entry is still
    there, in order to preserve an upper bound to the size of generated
    carnets.

commit 4aec5278f413f39b34c6f35ac2e7ecaf145943ea
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 22 22:10:23 2025 +0200

    carnet: allow readonly mode to fail if need be.

commit 6fc3723f030ba0e4d102320d0dd45f2e84642a1a
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 22 22:06:56 2025 +0200

    carnet: use the SEPARATOR.
    
    Using the regexp _{72} is shorter, but also more clunky.

commit 987d9c4a31e3c0cda8ea437efba2e68dd1f51bfe
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 22 22:05:41 2025 +0200

    carnet: readability of read_with_pager.
    
    This is an attempt at a more consistent formatting, but it is actually
    questionable whether readability improved much or the other way
    around.

commit 6fda704f70df96e8eb8d98730b5d6607330e760b
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 22 21:41:14 2025 +0200

    carnet: implement function is_less_friendly.
    
    This is used for working around little issues affecting less and
    terminal escape sequences in the linux terminal.  Ideally, less should
    not output extra characters on sgr0 terminfo entry, but I don't know
    what I'm doing wrong on that front.  Downgrading to more looks to work
    fairly enough so far.  The script also downgrades for unknown
    terminals, so I may give a spin to other ones.

commit 47adfbb702f72a57485b659b9afe4f9413923f61
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 22 21:10:09 2025 +0200

    carnet: shifting arguments breaks error message.

commit 0180020a9e0353f7aac870839820ccdb28b2399a
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 22 20:50:20 2025 +0200

    carnet: reinstate CARNET_PAGER.
    
    While the setting of a custom PAGER is now unenforced, the
    CARNET_PAGER remains relevant to override the behavior of the function
    that pipes copious function outputs through whicher pager is found on
    the system.  Removal of the custom pager was initially motivated by
    the fact that the handling of escape terminal sequences is more or
    less subject to luck when stepping outside the usual pagers available
    everywhere.  And even then, I noticed a tremendous version delta in
    less version from NetBSD 10 versus less version in Debian 13.

commit 874a35d0fb645c3fdaadbdcb7b20766a006856f7
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 22 20:49:57 2025 +0200

    carnet: homogeneize tab vs spaces indentation.

commit 31b3dda1b4c6d7a76f0d7b68c7edbbc390f5461b
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 22 20:39:28 2025 +0200

    carnet: print useage without pager.
    
    I probably should favor reducing the --help output to allow it to fit
    in a screenful of 80 by 24 characters, and write a real manual page
    instead.

commit d21a2a95e78661bf960ba304eb8e2192af0607f3
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 22 18:45:10 2025 +0200

    carnet remove unused ts_highlight variable.

commit e00ff271a6cb693e2f4f5fc65ca0a2e2a08319a8
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jul 21 22:58:14 2025 +0200

    carnet: bump to version 1.4.1.

commit b836c2897da60f25fd5b66484b9e9b17ade9ff45
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jul 21 22:55:26 2025 +0200

    carnet: more robust todo items location.
    
    The engine adds the ability to search accounting for any type of space
    separator behind a colon.  This is to accomodate french typography.

commit adac6473300dbcc11db9e43db805efd6c8999488
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jul 21 22:42:31 2025 +0200

    carnet: normalize argument shifting.

commit be565e2ba337efe2edf00961364506d7bac2139b
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jul 21 22:33:45 2025 +0200

    carnet: implement handle_activity.
    
    The function is defined on the model of handle_feuillet, but for the
    --activity option.

commit 9213c441b291ea6e277ca54e39d168a44da275de
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jul 21 22:28:07 2025 +0200

    carnet: implement handle_feuillet.
    
    This function allows separating out the behavior of the --feuillet
    command option in a dedicated function.  This makes the loop of
    arguments parsing more manageable.

commit 58c0ab0cdbe21574a794c50211c2e91a56f9050d
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jul 21 16:16:17 2025 +0200

    carnet: remove useless global constant.

commit a63a0ee557fb67aee5ae13e66b3c3e41a1464657
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jul 21 16:07:26 2025 +0200

    carnet: ditch CARNET_PAGER handling.
    
    Handling custom pager has become a complicated topic due to the
    painting of carnet commands output when consulting entries in read
    only mode for various purposes: the whole past week, search results
    highlights and feuillet reference highlights.  This change drops the
    ability to customize the pager, trading the customizability for more
    robust handling.  The use of less is not mandatory per se, as more and
    cat are still used as fallbacks, but it is now highly encouraged.
    Hopefully, better knowledge of alternate pagers behavior may allow
    customizability of the pager for the carnet again in the future.

commit e8e22e0d08aeda134207994b2078b9d7e91d148b
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jul 21 11:40:00 2025 +0200

    carnet: separate search of done items.
    
    This allows implementing the detection of "TODO: ", "FIXME: " and
    other "DONE: " items in a somewhat saner way.

commit 4faa97a1c19f13c207ae26eecb75771e5d62b35b
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jul 21 11:38:54 2025 +0200

    carnet: fix occurrence of type -f.
    
    Starting with Debian 13 trixie, this prevents catching the calendar.
    Thankfully, there does not seem to be other occurrences of that.

commit 74b473f10a82d6dc33ec3373880a47e1ec476fcc
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 12 23:23:51 2025 +0200

    carnet: bump version to 1.4.0.
    
    The new minor version is justified by the adjunction of the
    functionality of quick task tracking.  I probably should add a
    disclaimer that the software is not suitable for proper issue tracking
    and project management tools should be used for such purpose.

commit 43bb019ff2f416cd658919fe0a8c9c2de2ed9be2
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 12 23:17:16 2025 +0200

    carnet: document the --done argument.

commit c9c0e6585d3d24f9f0b7e84da70c1b0a018997b8
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 12 23:15:42 2025 +0200

    carnet: implement the --done argument.
    
    --done is a shortcut to facilitate matching against common markers to
    identify issues closed but still document in entries.  It is notably
    useful to match difficult patterns like "[*]".

commit 11541b6316626e937b7e45e55384231f4cdf72ad
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 12 23:14:26 2025 +0200

    carnet: document the -t, --todo argument.

commit 572b8801ceac6f0c75146a2627faf36da1e2cdd3
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 12 23:11:43 2025 +0200

    Implement the -t, --todo command argument.
    
    This allows end users to make use of the locate_todo_items function
    directly from the carnet command line.

commit 826ad64919e335aaa9444d9f8c0fc6638b550a79
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 12 23:09:07 2025 +0200

    carnet: introduce locate_todo_items.
    
    This function is aimed at listing entries looking to have todo items
    in their content.  Todo items may be materialized like:
    
    [ ] item to do
    
    For the sake of convenience and avoinding to match random patterns
    issued by e.g. system logs recorded in the carnet, it is expected to
    have a todo item to start in its own line.

commit dcaf323ff4f795c4e5b2a28eafa8b2002535a6b6
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 12 23:04:39 2025 +0200

    carnet: facilitate week file identification.
    
    It can be useful to facilitate restoration of the full context of a
    feuillet in its week.

commit 56698f2659b049aed57d22e93c12631a9cfa01c0
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jul 7 14:13:47 2025 +0200

    carnet: bump to version 1.3.0.

commit d055f4331dd910498da6452069d7c87de94997fe
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jul 7 14:12:50 2025 +0200

    carnet: document opening of register.txt.

commit 7edfa0506a126646a6526a6b8c5847580ab4346e
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 6 19:29:18 2025 +0200

    carnet: fix minor typo in a comment.

commit eabf88b5b974baff96ef309b05461f53f25e55a3
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 6 19:17:00 2025 +0200

    carnet: provide a way to fetch the register.
    
    The register.txt file is a way to bookmark entries of interest.  In a
    Zettelkasten context, they serve as entry points to the rest of the
    slips.  The register.txt file is a freeform file with the same
    purpose: giving entry points, this time under the form of timestamps.

commit 3561134da38b7da54474c5f2ae5a0d0ee80edd00
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 6 19:04:35 2025 +0200

    carnet: document synergy between search and feuillet.

commit 4fcd69cb2fd7645e7ace69f6da49b241ba67f5b4
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 6 18:56:21 2025 +0200

    carnet: factor out timestamps painting.
    
    paint_timestamps is introduced to offload the painting of timestamps
    to an independent function that can act independently in parallel.
    This may even actually speed things up on multi-core machines.

commit 1e495d022287383039fa52c25b923744da27af6d
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 6 18:08:37 2025 +0200

    carnet: output YYYY-MM-DDThh:mm with --search.
    
    In order to facilitate synergies with --feuillet, the --search command
    output is slightly adjusted in order to output timestamps of entries
    retrieved using the format YYYY-MM-DDThh:mm; the format is also
    highlighted whenever located within a feuillet, in order to facilitate
    the identification of such character string in the feuillet by quickly
    scanning through the entry.  This is not the ISO normalized format,
    because the second at which an entry has been written was not recorded
    historically.
    
    If it were necessary to redo this, I would probably record the full
    timestamp in an easy to copy and paste format straight into the
    carnet.  I had and still have slight concern that such a change could
    have mild detrimental effect on the readability of a journal read
    through during a week though.

commit a387e29e3f8e68009c1c29b3e2fda3b80f324045
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 6 18:08:08 2025 +0200

    carnet: document the feuillet argument.

commit 5293039f697884d4e37ed483ed5e4ac7db81604f
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 6 18:06:30 2025 +0200

    carnet: new option --feuillet.
    
    This option allows invoking feuillet retrieval from a command line
    argument, by passing the timestamp either by hand, or copied and
    pasted from the output of previous feuillet retrieval or a carnet
    --search command.

commit 565b5f8d9d86bbc091502039b1bb3c45073a0107
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 6 18:03:03 2025 +0200

    carnet: introduce the notion of feuillet.
    
    The carnet is made up of feuillets, each feuillet corresponds to one
    entry entered after an invocation of `carnet`.  This change introduces
    the function locate_feuillet which takes the timestamp of a feuillet
    in format YYYY-MM-DDThh:mm, and retrieves the corresponding feuillet
    in output.  This step is part of the not-so-innocent great plan to
    actually convert carnet to a Zettelkasten engine even though it was
    not intended to be such tool in the first place.

commit c4a6df882772ca6d9f27afa11fd12c71bc00375a
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jul 6 18:01:26 2025 +0200

    carnet: un-localize the "on air" marker.

commit 750d4708411203eeef2171a10eef7882dc1d103e
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 5 22:22:47 2025 +0200

    carnet: bump to version 1.2.3.

commit 6dd4337c46bc1bc4cf922cb0a8d23019da601d38
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 5 12:12:51 2025 +0200

    carnet: calculate_overtime: don't trip on empty days.
    
    This change avoid carnet's calculate_overtime to croak when the week
    file is non-existent at the beginning of the week.  It also avoids
    tripping the overtime warning when there is no first entry of the day,
    but said first entry starts late enough to trip if compared to zero,
    amounting for a comparison between midnight and the first entry.

commit 65221f34634184a73ddebc938d0c1a087fe17ae4
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jul 5 09:35:45 2025 +0200

    carnet_activity.pl: remove signatures feature.
    
    This changes the code for some more standard Perl, albeit less
    readable perhaps.

commit eda400518fe9f80fcb8253ad6297b976528c21bd
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jul 3 19:30:56 2025 +0200

    carnet: bump to version 1.2.2.

commit d2c14bfe628d7cdf8f1908b3495329519b4990c2
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jul 3 19:29:43 2025 +0200

    carnet: fix error of logic in calculate_overtime.

commit a059100a2ab2d69e6ade9caf2e47f2925b94baf0
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 2 22:39:04 2025 +0200

    carnet: bump to version 1.2.1.

commit 53b33635e79f3c4f5f3a8a990106d4194354b0dc
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 2 22:36:19 2025 +0200

    carnet: reorganize to hopefully help readability.

commit 738f69481dd8790062992ebf6d7114522183bc7a
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 2 22:13:44 2025 +0200

    carnet: calculate_overtime: minor adjustment.
    
    Check for numerical equality of the CARNET_OVERTIME to 0, by contrast
    to a string equality.

commit ddb141234b0489b542f272c17c14f8a7ad1ef82b
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 2 22:11:18 2025 +0200

    carnet_activity.pl: standalone copyright terms.

commit 2bb23d3a4a359794952301eb3818023defcaa29a
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 2 22:04:58 2025 +0200

    TODO: overtieme detection: done.

commit 6803a43335b1f59647c32944658cd091a89d7162
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 2 19:34:36 2025 +0200

    carnet: more precise overtime calculation.
    
    The logic of the calculate_overtime function is strongly adjusted in
    order to provide a +/- 30 minutes in which the day is close to ending
    and then the overtime is not already frank yet.  The adjustment makes
    the window of uncertainty last one hour.

commit f6dc423de758a6ff64dfac9224f0f65cc1a62557
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jul 2 19:18:47 2025 +0200

    carnet: calculate_overtime: fix missing duration.

commit 3f96c12ef7932c3169770190c4aadf14d086ddca
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 1 22:11:04 2025 +0200

    carnet: bump to 1.2.0.
    
    New minor version reflects introduced overtime calculation function.

commit a834f6dc8f77bc326c798086586f160e95cdf4ec
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 1 22:10:14 2025 +0200

    carnet: fixup minor typo in comment.

commit 2c8609430c8e3f90114925a30ec3a5a885b002a3
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 1 22:09:23 2025 +0200

    carnet: document CARNET_OVERTIME.
    
    This new environment variable allows configuring whether overtime
    calculations should be active, and if so, with which duration, in
    hours.

commit 34cf716c1ddef8a18c99d9ce66aefa4540eba8f6
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 1 22:08:53 2025 +0200

    carnet: wire overtime calculation to trailing context.

commit 85a2be25f558ec7cfe4b22b9f366e04d2763e24d
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 1 22:07:58 2025 +0200

    carnet: introduce the calculate_overtime function.

commit ea47acec4e2abacaee6c834d083b25d74ee002cc
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 1 20:35:50 2025 +0200

    carnet: more generic variable name for context.
    
    The trailing context historically stuck to showing what was playing on
    the radio.  Since it might be of interest to put other things here,
    like labels or various alerts, a more generic name is needed.

commit 85b30cdac8f39db879ed6241e409870c60280fa9
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 1 20:33:20 2025 +0200

    carnet: new function show_music_on_air.
    
    No functional change, this is to reduce the bulk of code at the tail
    end of the carnet script and facilitate further modularisation in the
    future.

commit db2a7a4557aee30468d9e39631b2bbb172207654
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jul 1 20:14:32 2025 +0200

    carnet_activity.pl: ceil all sizes.
    
    This trades relative accuracy of statistics by unbalancing plots in
    favor of heavier files, in favor of substancial simplification of the
    plot functions code.

commit 4b9ffef8b78d63896cd1957d1d28f3f5d009ad75
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jun 30 22:48:10 2025 +0200

    carnet: bump version to 1.1.2.

commit a63ab0d5a508a3e8528b987313e919b6000d3b9e
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jun 30 22:47:24 2025 +0200

    s/gen_test_carnet.pl: usage at 72 char width.

commit bba49a7c5e3fdabdff7069672591d7bb3140fb31
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jun 30 00:13:46 2025 +0200

    makefile: also compress the manual via make man.

commit 1654e15ef27d4abe62d86a7952309c647774e79e
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jun 29 23:37:58 2025 +0200

    carnet: reserve raw control characters to colors.

commit 4ef88d1290595f8b9d953439a7a0a9a634226c1b
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jun 29 20:26:47 2025 +0200

    carnet: bump to version 1.1.1.

commit 965888d6c36c30def654ebafe0d0a4a4440f9254
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jun 29 20:22:16 2025 +0200

    carnet: highlight matching search results.
    
    This facilitates researchs, to quickly find out in which context the
    match appeared.

commit 0893c7185747beeb7006d852a3d79440906d9427
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jun 29 19:45:44 2025 +0200

    carnet_activity.pl: introduce percentileplot.
    
    The percentileplot function does the same as the decileplot, but for
    each percentile.  The ascii art is an attempt to emphasize hotspots
    for which a huge number of weeks shared the same pattern of activity.

commit 004b478c5008e613c07820942dd77ad1574bf358
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jun 29 19:44:22 2025 +0200

    carnet_activity.pl: invoker ruler only once.
    
    This is a microoptimisation consisting in computing the length of the
    ruler only once and storing it in a variable for multiple later
    reuses.

commit 28b8cee8338455b75cf1f973c9d09fbb4c14024c
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jun 29 19:41:49 2025 +0200

    carnet_activity.pl: introduce decileplot.
    
    The subroutine decileplot ressembles the boxplot, but simply marks the
    position of each decile.  This is useful to determine possible week
    patterns by providing some kind of heatmap, especially if combined
    with percentiles.

commit 66416bf5d13288f77fa335fa8e2bdf2ddea35e1d
Author: Étienne Mollier <emollier@debian.org>
Date:   Sun Jun 29 19:38:19 2025 +0200

    scripts/gen_test_carnet.pl: new: carnet generator.
    
    This script is used for the purpose of generating dummy carnets for
    development purpose only.  It may be part to some extent to a
    beginning of test suite.  For now it has been mainly useful to try
    things with the activity script.

commit 5556d3b926e437dbcc209c85c037af550e74faea
Author: Étienne Mollier <emollier@debian.org>
Date:   Sat Jun 28 09:22:37 2025 +0200

    carnet_activity.pl: show kiB instead of "Kelvins".

commit ae1e4eadffc002332f88438ee074228f180da06e
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Jun 27 17:59:30 2025 +0200

    carnet_activity.pl: minor changes for readability.

commit 8e61f68157282e8fe05d70caf479725521b1e51b
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Jun 27 15:13:15 2025 +0200

    carnet_activity.pl: don't second guess widths.
    
    This changes makes numbers rendering more flexible towards alignment
    and adds another extra digit of precision to the density figure.

commit d08d3d48990d2ea1ad1a746c3226417964115d80
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Jun 27 15:12:39 2025 +0200

    carnet_activity.pl: microoptimize grep for substr.

commit f0b0ae508f1a9e5e41d58e64a249833f371eae90
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Jun 27 09:09:49 2025 +0200

    makefile: hotfix buggy test on directory existence.

commit c4f7f3c8f70d453bcaa383c35c5edf78cf3e4d3b
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Jun 27 09:06:33 2025 +0200

    carnet: bump version to 1.1.0.
    
    New minor version is justified by the introduction of unrecommended
    interface carnet_activity.pl, so should not be an actual regression if
    reverting to older carnet versions, but anyways, that looks better
    this way.

commit 3df9c23f3a5489a1ef5d40f6bde696346113747a
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Jun 27 09:01:45 2025 +0200

    carnet: remove show_activity function.
    
    Now that the show_activity shell function has been replaced by the
    perl script, it can be removed from the shell script.  This
    tremendously drops the line count of the shell script to something
    more manageable.

commit 36ae153ec9911705e9d6b408cd82a096481301af
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Jun 27 09:00:52 2025 +0200

    carnet: make use of carnet_activity.pl.
    
    Now that the perl script is available, the carnet may change
    implementation for its --activity option, and use the perl script
    instead of the shell function.

commit ab717d5613ff784aba662b630d81bfc2f0174480
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Jun 27 08:58:44 2025 +0200

    makefile: integrate carnet_activity.pl.

commit f6b822792d41d92ff906907e0720c7ccff1233c3
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Jun 27 08:55:26 2025 +0200

    carnet_activity.pl: new: reimplement --activity.
    
    The --activity option shows rapidly visible performance decrease when
    implemented in shell.  Also, the initial implementation didn't work on
    Berkeley systems.  At the cost of introducing a dependency to the perl
    interpreter and the complexity that comes with it and the language,
    this allows earning some missing performance and portability in the
    equation.
    
    Next step if further performances are needed is to redo a write, but
    in C language this time.  It will take even more time and may take a
    toll on portability though, so this is not in the plans yet.

commit 33282ce6afb1a9a9e52b4536f32b3b6ba1277f95
Author: Étienne Mollier <emollier@debian.org>
Date:   Fri Jun 27 08:52:39 2025 +0200

    makefile: separate permissions setting on install.
    
    This improves portability on Berkeley System Distributions, although
    we're not there yet.

commit e6e60a6c21fcfc38ae0f801ac48f472b31d044d9
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jun 26 23:38:35 2025 +0200

    makefile: make archive independent of git.
    
    Implementation of the archive makefile target is adjusted in order to
    allow one to rebuild an archive even without the git tree.  This is
    useful at least as long as the git tree is not distributed.  This
    facilitates sharing modified versions of the carnet.

commit 9ea8d33fc177a339426aa6f52cb7b9fd7cdf0635
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jun 26 09:49:00 2025 +0200

    makefile: purge instead of cleaning.
    
    This avoids embedding an eventual DESTDIR within the archive when
    present.

commit d73f4ce7a5abebb9e702d567e543ba0eca0bac71
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jun 26 09:46:56 2025 +0200

    TODO: timesheet management helpers.

commit d494843c774cad56cd98a3345fd9dc76dca1546a
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Jun 26 09:39:37 2025 +0200

    Review carnet description.
    
    The change simplifies the short description to make it more readable,
    and describes a couple of use cases for the carnet engine.

commit dd688c901ec05b93c9cc503d1e56835265dcb958
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Jun 25 10:46:55 2025 +0200

    makefile: clean before archive but drop dependency
    
    This change allows avoiding reconstruction of the archive at the sign
    step when running sequencially:
    
            $ make archive
            $ make sign
    
    Initially, the rerun of the archival step was caused by having the
    tar.xz file recipe to depend on the phony clean target.

commit 7b86493b38aaa2bcc5e5183de614901606858c82
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jun 24 09:52:09 2025 +0200

    Bump version to 1.0.4.

commit d1709311b14ce4ceee9d5e270e192bbc312b8fbd
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jun 24 09:50:37 2025 +0200

    Allow running carnet without calendar(1).

commit 9c2bc42792e13c7e9a64cd8e7f8a91e2d237f3ed
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Jun 24 09:44:08 2025 +0200

    Trim trailing blanks.

commit dee49d63d3755a205dedb87894d495a62a3c7ff4
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jun 16 22:10:12 2025 +0200

    carnet: bump to version 1.0.3.

commit 69c5691a245ea86ce1fe78bcd74fa821b8ee3039
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jun 16 22:09:24 2025 +0200

    BUGS: add git tree publication in the "to do" list.

commit 83914f3f924fad4e5abb3aeefd6cbe8c78b123f6
Author: Étienne Mollier <emollier@debian.org>
Date:   Mon Jun 16 22:05:33 2025 +0200

    makefile: facilitate archival and publication.
    
    This change introduces two new makefile targets: `make archive` will
    issue a tarball facilitating the transfer of the project tree of
    carnet around, and `make sign` will automate the production of a
    cryptographically signed archive of carnet using gpg.  This is useful
    for releasing the project publically.

commit 93a39626060a3eaec4efa623149e34014d58f845
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu May 8 10:17:51 2025 +0200

    carnet: bump to version 1.0.2.

commit ee6fbf0e9cc2ee2e670290494201b09dbc0d0099
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu May 8 10:17:01 2025 +0200

    carnet: embed copyright notice in --version.

commit 6086fb56b0e5417ccc464c9c5c1794c0822bc36d
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Apr 30 22:37:34 2025 +0200

    carnet: bump to version 1.0.1.

commit a10041072038bf7d94b43aa7c272fa0d73d06636
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Apr 30 22:36:38 2025 +0200

    BUGS: reorder to make more sense in the manual.
    
    The change also fixes up a minor typo.

commit 307cf1195d1f19c65a63971e6ad95cf24c6e1dc0
Author: Étienne Mollier <emollier@debian.org>
Date:   Wed Apr 30 22:33:19 2025 +0200

    carnet: minor fixups to comments.

commit aa337bd3ff9fa470fe5b57fdddb3ca37804fefc3
Author: Étienne Mollier <emollier@debian.org>
Date:   Thu Apr 24 19:38:40 2025 +0200

    BUGS: document --search relies mostly on gawk.

commit 0df262fdd8c279130761e89a06fa4db49b808c09
Author: Étienne Mollier <emollier@debian.org>
Date:   Tue Apr 22 23:21:26 2025 +0200

    Initial commit.
    
    The initial commit also figures the initial release.  Sure, release
    early, release often, but also: better late than never.
