This follow-up to id:20200703134338.3311659-1-david@tethera.net is a first draft of a rewrite of the notmuch configuration system. It aims to remove several annoyances including: - not being able to have certain configuration items in a plain text config file - bindings support for configuration being somewhat half-baked - not supporting XDG_foo Not all of that promise is realized (or at least tested) in this initial draft. On the other hand, hopefully a bunch of new tests in T590-libconfig.sh make the intended API more clear. This patch implements the logic for finding config files: [PATCH 12/19] WIP: adding fallbacks for NULL config_path Something similar needs to be done for finding database files. In the last two commands you can see roughly how much work is needed to convert to the style of config handling [PATCH 18/19] WIP converting notmuch search to new style config [PATCH 19/19] WIP: switch notmuch-show to new config framework The is some awkardness due to converting one subcommand at a time: the subcommand table uses a fixed function signature and we can't change that until all the subcommands are updated. So we end up re-opening the config file in the modified subcommands. Some design questions people might like to give feedback on - the switch in notmuch-search.c to using the string "search.exclude_tags" directly to fetch tags. I'm hoping that a reduction in boilerplate compensates for a decrease in "type safety" here, compared to the existing notmuch_config_get_search_exclude_tags. I'm hoping substantial portions of notmuch-config.c can disappear during this rewrite. - the use of simple keys for the new merged notmuch_config_{get,set}_* in lib/config.cc, rather than the section, pair file suggested by the glib key_file format. My rough plan is to do a release 0.31 with all the cleanup we have accumulated since 0.30, and target these changes for 0.32 _______________________________________________ notmuch mailing list -- notmuch@notmuchmail.org To unsubscribe send an email to notmuch-leave@notmuchmail.org