]> granicus.if.org Git - neomutt/log
neomutt
5 years agoremove 'mutt_' from static functions
Richard Russon [Sat, 18 May 2019 11:55:08 +0000 (12:55 +0100)]
remove 'mutt_' from static functions

5 years agotest: update basic address tests
Richard Russon [Fri, 17 May 2019 21:37:08 +0000 (22:37 +0100)]
test: update basic address tests

5 years agodoxy: fix comments
Richard Russon [Fri, 17 May 2019 22:24:14 +0000 (23:24 +0100)]
doxy: fix comments

5 years agoProvide mutt_addrlist_append and mutt_addrlist_prepend
Pietro Cerutti [Fri, 17 May 2019 13:42:58 +0000 (13:42 +0000)]
Provide mutt_addrlist_append and mutt_addrlist_prepend

These are one-liners that call TAILQ_INSERT_TAIL and TAILQ_INSERT_HEAD,
but the macros have the ugly side-effect of evaluating their arguments
multiple times, so TAILQ_INSERT_TAIL(list, new_element()); doesn't do
what you would expect.

5 years agoRename mutt_addresslist_* to mutt_addrlist_*
Pietro Cerutti [Fri, 17 May 2019 13:12:54 +0000 (13:12 +0000)]
Rename mutt_addresslist_* to mutt_addrlist_*

5 years agoMerge AddressNode into Address
Pietro Cerutti [Fri, 17 May 2019 11:55:55 +0000 (11:55 +0000)]
Merge AddressNode into Address

5 years agoRemove "next" pointer from struct Address: conversion to TAILQ is complete
Pietro Cerutti [Thu, 16 May 2019 16:42:05 +0000 (16:42 +0000)]
Remove "next" pointer from struct Address: conversion to TAILQ is complete

5 years agoCleanup Address API: mutt_addrlist_to_(intl|local) -> mutt_addresslist_to_(intl|local)
Pietro Cerutti [Thu, 16 May 2019 16:34:59 +0000 (16:34 +0000)]
Cleanup Address API: mutt_addrlist_to_(intl|local) -> mutt_addresslist_to_(intl|local)

5 years agoCleanup Address API: mutt_addrlist_dedupe -> mutt_addresslist_dedupe
Pietro Cerutti [Thu, 16 May 2019 15:44:11 +0000 (15:44 +0000)]
Cleanup Address API: mutt_addrlist_dedupe -> mutt_addresslist_dedupe

5 years agoCleanup Address API: unexpose mutt_addr_set_(intl|local)
Pietro Cerutti [Thu, 16 May 2019 15:23:45 +0000 (15:23 +0000)]
Cleanup Address API: unexpose mutt_addr_set_(intl|local)

5 years agoCleanup Address API: mutt_addr_remove_xrefs -> mutt_addresslist_remove_xrefs
Pietro Cerutti [Thu, 16 May 2019 15:14:56 +0000 (15:14 +0000)]
Cleanup Address API: mutt_addr_remove_xrefs -> mutt_addresslist_remove_xrefs

5 years agoCleanup Address API: mutt_addr_remove_from_list -> mutt_addresslist_remove
Pietro Cerutti [Thu, 16 May 2019 14:52:33 +0000 (14:52 +0000)]
Cleanup Address API: mutt_addr_remove_from_list -> mutt_addresslist_remove

5 years agoCleanup Address API: unexpose mutt_addr_mbox_to_udomain
Pietro Cerutti [Thu, 16 May 2019 14:35:04 +0000 (14:35 +0000)]
Cleanup Address API: unexpose mutt_addr_mbox_to_udomain

5 years agoCleanup Address API: unexpose mutt_addr_is_(intl|local)
Pietro Cerutti [Thu, 16 May 2019 14:28:21 +0000 (14:28 +0000)]
Cleanup Address API: unexpose mutt_addr_is_(intl|local)

5 years agoFix match_user
Pietro Cerutti [Thu, 16 May 2019 14:06:18 +0000 (14:06 +0000)]
Fix match_user

5 years agoFix and refactor mutt_is_list_recipient and mutt_is_subscribed_list_recipient
Pietro Cerutti [Thu, 16 May 2019 13:29:38 +0000 (13:29 +0000)]
Fix and refactor mutt_is_list_recipient and mutt_is_subscribed_list_recipient

5 years agoCleanup Address API: mutt_addr_write
Pietro Cerutti [Thu, 16 May 2019 13:17:31 +0000 (13:17 +0000)]
Cleanup Address API: mutt_addr_write

5 years agoCleanup Address API: mutt_addresslist_qualify
Pietro Cerutti [Thu, 16 May 2019 12:07:25 +0000 (12:07 +0000)]
Cleanup Address API: mutt_addresslist_qualify

5 years agoCleanup Address API: parse and free
Pietro Cerutti [Thu, 16 May 2019 11:57:25 +0000 (11:57 +0000)]
Cleanup Address API: parse and free

5 years agoCleanup Address API: mutt_addr_cmp_strict -> mutt_addresslist_equal
Pietro Cerutti [Thu, 16 May 2019 11:30:10 +0000 (11:30 +0000)]
Cleanup Address API: mutt_addr_cmp_strict -> mutt_addresslist_equal

5 years agoFix recursive alias lookup
Pietro Cerutti [Thu, 16 May 2019 11:08:39 +0000 (11:08 +0000)]
Fix recursive alias lookup

5 years agoFix variadic function
Pietro Cerutti [Thu, 16 May 2019 09:23:46 +0000 (09:23 +0000)]
Fix variadic function

5 years agoConvert Envelope addresses to AddressList
Pietro Cerutti [Wed, 15 May 2019 16:17:07 +0000 (16:17 +0000)]
Convert Envelope addresses to AddressList

5 years agoConvert Alias to use AddressList
Pietro Cerutti [Tue, 14 May 2019 11:53:21 +0000 (11:53 +0000)]
Convert Alias to use AddressList

5 years agoConvert mutt_addr_remove_from_list and mutt_addr_remove_xrefs API to AddressList
Pietro Cerutti [Mon, 13 May 2019 13:14:57 +0000 (13:14 +0000)]
Convert mutt_addr_remove_from_list and mutt_addr_remove_xrefs API to AddressList

5 years agoUse AddressList in mutt_addrlist_to_intl and mutt_addrlist_to_local
Pietro Cerutti [Mon, 13 May 2019 12:14:20 +0000 (12:14 +0000)]
Use AddressList in mutt_addrlist_to_intl and mutt_addrlist_to_local

5 years agoUse AddressList in mutt_addr_write
Pietro Cerutti [Mon, 13 May 2019 12:13:56 +0000 (12:13 +0000)]
Use AddressList in mutt_addr_write

5 years agoTidy Address free'ing functions
Pietro Cerutti [Mon, 13 May 2019 12:13:22 +0000 (12:13 +0000)]
Tidy Address free'ing functions

5 years agoUse AddressList in mutt_addr_remove_xrefs
Pietro Cerutti [Mon, 13 May 2019 12:12:07 +0000 (12:12 +0000)]
Use AddressList in mutt_addr_remove_xrefs

5 years agoUse AddressList in mutt_addr_search
Pietro Cerutti [Mon, 13 May 2019 12:26:06 +0000 (12:26 +0000)]
Use AddressList in mutt_addr_search

5 years agoUse AddressList in mutt_addr_has_recips
Pietro Cerutti [Mon, 13 May 2019 12:25:48 +0000 (12:25 +0000)]
Use AddressList in mutt_addr_has_recips

5 years agoUse AddressList in mutt_addr_cmp_strict
Pietro Cerutti [Mon, 13 May 2019 12:25:29 +0000 (12:25 +0000)]
Use AddressList in mutt_addr_cmp_strict

5 years agoUse AddressList in mutt_addr_append
Pietro Cerutti [Mon, 13 May 2019 12:25:00 +0000 (12:25 +0000)]
Use AddressList in mutt_addr_append

5 years agoUse AddressList in mutt_addr_qualify
Pietro Cerutti [Mon, 13 May 2019 12:24:39 +0000 (12:24 +0000)]
Use AddressList in mutt_addr_qualify

5 years agoUse AddressList in mutt_addr_remove_from_list
Pietro Cerutti [Mon, 13 May 2019 12:24:15 +0000 (12:24 +0000)]
Use AddressList in mutt_addr_remove_from_list

5 years agoUse AddressList in mutt_addr_free, implement mutt_addresslist_free_one
Pietro Cerutti [Mon, 13 May 2019 12:22:34 +0000 (12:22 +0000)]
Use AddressList in mutt_addr_free, implement mutt_addresslist_free_one

5 years agoUse AddressList in mutt_addr_copy_list
Pietro Cerutti [Mon, 13 May 2019 12:21:09 +0000 (12:21 +0000)]
Use AddressList in mutt_addr_copy_list

5 years agoImplement mutt_addresslist_new
Pietro Cerutti [Mon, 13 May 2019 12:23:52 +0000 (12:23 +0000)]
Implement mutt_addresslist_new

5 years agoConst'ify parameter to mutt_addr_copy
Pietro Cerutti [Mon, 13 May 2019 12:18:11 +0000 (12:18 +0000)]
Const'ify parameter to mutt_addr_copy

5 years agoUse AddressList in mutt_addr_parse_list
Pietro Cerutti [Fri, 10 May 2019 16:21:57 +0000 (16:21 +0000)]
Use AddressList in mutt_addr_parse_list

5 years agoUse AddressList in mutt_addrlist_dedupe
Pietro Cerutti [Mon, 13 May 2019 08:44:11 +0000 (08:44 +0000)]
Use AddressList in mutt_addrlist_dedupe

5 years agoAdd functions to convert to/from Address/AddressList
Pietro Cerutti [Fri, 10 May 2019 15:52:53 +0000 (15:52 +0000)]
Add functions to convert to/from Address/AddressList

5 years agoDefine an AddressList structure using TAILQ
Pietro Cerutti [Fri, 10 May 2019 15:51:13 +0000 (15:51 +0000)]
Define an AddressList structure using TAILQ

5 years agoAvoid redundant sort in entire-thread.
Andres Freund [Tue, 21 May 2019 23:50:54 +0000 (16:50 -0700)]
Avoid redundant sort in entire-thread.

918885f added, indirectly, a mutt_sort_headers() call to
nm_read_entire_thread() (via mutt_mailbox_changed() ->
ctx_mailbox_changed() -> ctx_update()), but didn't remove the sort
after nm_read_entire_thread() in mutt_index_menu().

Remove the now superfluous sort.

5 years agoentire-thread: determine current position before resorting.
Andres Freund [Tue, 21 May 2019 23:13:10 +0000 (16:13 -0700)]
entire-thread: determine current position before resorting.

Previously oldcur was determined after nm_read_entire_thread(),
leading to entire-thread unintentionally jumping to the first message
in the thread.

Before 918885f32db41 that used to work, because mutt_sort_headers()
wasn't called from within nm_read_entire_thread().

Fix by moving determination of pre nm_read_entire_thread() count a few
lines up. Also reuse existing oldcount variable, rather than
'oc' (which could also be oldcur).

Fixes: #1714
5 years agofix: reverse_name / alternates
Andres Freund [Tue, 21 May 2019 13:29:07 +0000 (14:29 +0100)]
fix: reverse_name / alternates

Fixes: #1581
5 years agomerge: minor tidying
Richard Russon [Thu, 16 May 2019 14:43:07 +0000 (15:43 +0100)]
merge: minor tidying

 * clang-format
 * readme: split out contributors
 * rename fd parameters
 * increase buffer sizes to avoid truncation
 * test: add missing #include guards
 * unify char buffer inititialisation
 * boolify: locals, params, args
 * rename mailbox functions
 * light tidying
 * don't check for empty config strings
 * rename struct Event and Mailbox.notify
 * move el_free() to email
 * tidy maildir_mbox_check()
 * config: rename listener to observer
 * tidy ternary operators
 * tidy char pointers
 * initialise pointers
 * tidy pointer definitions

5 years agotidy pointer definitions
Richard Russon [Thu, 16 May 2019 14:18:28 +0000 (15:18 +0100)]
tidy pointer definitions

Separate multiple variable definitions which differ in type, e.g.

  char buf[16], *p = NULL, **pp = NULL;

becomes

  char buf[16];
  char *p = NULL;
  char **pp = NULL;

5 years agoinitialise pointers
Richard Russon [Thu, 16 May 2019 13:53:31 +0000 (14:53 +0100)]
initialise pointers

5 years agotidy char pointers
Richard Russon [Wed, 15 May 2019 19:01:38 +0000 (20:01 +0100)]
tidy char pointers

Make char-pointer dereferencing more consistent.
Any functions that used both `*ptr` and `ptr[0]` notation have been tidied.

5 years agotidy ternary operators
Richard Russon [Wed, 15 May 2019 22:53:37 +0000 (23:53 +0100)]
tidy ternary operators

- insert ()s
- expand checks against 0 or '\0'

5 years agoconfig: rename listener to observer
Richard Russon [Wed, 15 May 2019 11:25:37 +0000 (12:25 +0100)]
config: rename listener to observer

This fits in with the GoF's subject/observer pattern.

5 years agotidy maildir_mbox_check()
Richard Russon [Wed, 15 May 2019 10:52:12 +0000 (11:52 +0100)]
tidy maildir_mbox_check()

Factor out a common pointer.

5 years agomove el_free() to email
Richard Russon [Wed, 15 May 2019 10:50:02 +0000 (11:50 +0100)]
move el_free() to email

This function will be used elsewhere, soon.

5 years agorename struct Event and Mailbox.notify
Richard Russon [Tue, 12 Mar 2019 16:01:15 +0000 (16:01 +0000)]
rename struct Event and Mailbox.notify

Rename things out of the way of future work.
These names will be used by a general notifications system.

5 years agodon't check for empty config strings
Richard Russon [Thu, 16 May 2019 11:55:40 +0000 (12:55 +0100)]
don't check for empty config strings

The config system stores empty strings as NULL.
Config variables must not be set directly, but using the config system
(this gives us validation and notifications).

5 years agolight tidying
Richard Russon [Tue, 30 Apr 2019 12:41:04 +0000 (13:41 +0100)]
light tidying

Lots of minor fixes, many inspired by cppcheck.

- reduce scope of variables
- return early
- NULL pointers after free
- fix typos
- correct retval type

5 years agorename mailbox functions
Richard Russon [Wed, 15 May 2019 23:31:46 +0000 (00:31 +0100)]
rename mailbox functions

Fix mailbox function naming for consistency

5 years agoboolify: locals, params, args
Richard Russon [Sun, 12 May 2019 22:40:08 +0000 (23:40 +0100)]
boolify: locals, params, args

5 years agounify char buffer inititialisation
Richard Russon [Wed, 15 May 2019 21:52:26 +0000 (22:52 +0100)]
unify char buffer inititialisation

For consistency, use the format:

  `char buf[16] = { 0 };`

5 years agotest: add missing #include guards
Richard Russon [Sun, 12 May 2019 22:44:19 +0000 (23:44 +0100)]
test: add missing #include guards

5 years agoincrease buffer sizes to avoid truncation
Richard Russon [Wed, 15 May 2019 20:24:41 +0000 (21:24 +0100)]
increase buffer sizes to avoid truncation

This is just to hide a compiler warning.

5 years agorename fd parameters
Richard Russon [Wed, 15 May 2019 19:26:29 +0000 (20:26 +0100)]
rename fd parameters

Rename parameters to match other functions.

5 years agoreadme: split out contributors
Richard Russon [Thu, 11 Apr 2019 10:38:08 +0000 (11:38 +0100)]
readme: split out contributors

5 years agoclang-format
Richard Russon [Thu, 16 May 2019 12:54:13 +0000 (13:54 +0100)]
clang-format

5 years agomerge: split up Buffer and the Pool
Richard Russon [Thu, 16 May 2019 11:14:49 +0000 (12:14 +0100)]
merge: split up Buffer and the Pool

 * split out pool
 * don't use pool in libraries
 * test: tidy config tests

5 years agotest: tidy config tests
Richard Russon [Thu, 16 May 2019 00:10:46 +0000 (01:10 +0100)]
test: tidy config tests

The config tests don't use the buffer pool any more.

5 years agodon't use pool in libraries
Richard Russon [Tue, 14 May 2019 18:09:51 +0000 (19:09 +0100)]
don't use pool in libraries

5 years agosplit out pool
Richard Russon [Tue, 14 May 2019 18:07:58 +0000 (19:07 +0100)]
split out pool

5 years agofix leaks in mutt_pattern_comp()
Richard Russon [Tue, 14 May 2019 13:49:24 +0000 (14:49 +0100)]
fix leaks in mutt_pattern_comp()

5 years agotest: fix leaks
Richard Russon [Mon, 13 May 2019 21:54:23 +0000 (22:54 +0100)]
test: fix leaks

5 years agomerge: upstream fixes
Richard Russon [Thu, 16 May 2019 10:29:49 +0000 (11:29 +0100)]
merge: upstream fixes

 * Fix sample neomuttrc to use better quoting practices.
 * Add a "backticks in double quotes" example to the manual.
 * Avoid undefined behaviour on huge integer in a RFC2231 header
 * sync pgp_gpgme_invoke_import()

5 years agosync pgp_gpgme_invoke_import()
Richard Russon [Thu, 16 May 2019 10:28:20 +0000 (11:28 +0100)]
sync pgp_gpgme_invoke_import()

5 years agoAvoid undefined behaviour on huge integer in a RFC2231 header
Vincent Lefevre [Wed, 15 May 2019 11:05:09 +0000 (13:05 +0200)]
Avoid undefined behaviour on huge integer in a RFC2231 header

The atoi() function was called on the index, which can potentially
be huge in an invalid message and can yield undefined behavior. The
mutt_atoi() function is now used for error detection.

Co-authored-by: Richard Russon <rich@flatcap.org>
5 years agoAdd a "backticks in double quotes" example to the manual.
Kevin McCarthy [Tue, 14 May 2019 16:26:38 +0000 (09:26 -0700)]
Add a "backticks in double quotes" example to the manual.

Co-authored-by: Richard Russon <rich@flatcap.org>
5 years agoFix sample neomuttrc to use better quoting practices.
Kevin McCarthy [Tue, 14 May 2019 16:00:46 +0000 (09:00 -0700)]
Fix sample neomuttrc to use better quoting practices.

Use single quotes in the password encryption example.

For password decryption, put the backquotes inside double quotes to
avoid special characters being re-interpreted.

Co-authored-by: Richard Russon <rich@flatcap.org>
5 years agoDo not cache a compiled regex to avoid leaks
Pietro Cerutti [Mon, 13 May 2019 11:42:37 +0000 (11:42 +0000)]
Do not cache a compiled regex to avoid leaks

glibc's implementation of the regex engine is a DFA which creates nodes
on the fly under the regex_t object. This will cause leakes if we keep
the compiled regular expression around, as it was the case before.

See also https://sourceware.org/bugzilla/show_bug.cgi?id=12567

5 years agofix: counting of content-lines header
Richard Russon [Mon, 13 May 2019 09:44:32 +0000 (10:44 +0100)]
fix: counting of content-lines header

5 years agomerge: fix most leaks in test code
Richard Russon [Sun, 12 May 2019 22:37:21 +0000 (23:37 +0100)]
merge: fix most leaks in test code

 * check library parameters more carefully
 * test: fix leaks in config tests
 * test: fix leaks in library tests
 * clang-format test code

5 years agoclang-format test code
Richard Russon [Sun, 12 May 2019 22:29:13 +0000 (23:29 +0100)]
clang-format test code

5 years agotest: fix leaks in library tests
Richard Russon [Sun, 12 May 2019 22:25:28 +0000 (23:25 +0100)]
test: fix leaks in library tests

5 years agotest: fix leaks in config tests
Richard Russon [Sun, 12 May 2019 22:21:30 +0000 (23:21 +0100)]
test: fix leaks in config tests

5 years agocheck library parameters more carefully
Richard Russon [Sun, 12 May 2019 22:18:41 +0000 (23:18 +0100)]
check library parameters more carefully

Some test cases were causing library code to be run with invalid
parameters.  Reject these cases.

5 years agoFix next-unread-mailbox
Mehdi Abaakouk [Sun, 12 May 2019 19:34:42 +0000 (21:34 +0200)]
Fix next-unread-mailbox

e4133e5cd2 have introduced a small regression.

next-unread-mailbox does not automatically open the mailbox.

This change fixes it.

5 years agomerge: update translations
Richard Russon [Sat, 11 May 2019 10:05:18 +0000 (11:05 +0100)]
merge: update translations

 * Update lt_LT translation
 * update German translation
 * fix command string
 * fix 'too few/many' translations
 * tidy OAUTHBEARER error message
 * Update Ukrainian translation
 * Update Russian translation
 * Update Danish translation
 * sync translations

5 years agosync translations
Richard Russon [Sat, 11 May 2019 10:05:11 +0000 (11:05 +0100)]
sync translations

5 years agoUpdate Danish translation
Morten Bo Johansen [Fri, 10 May 2019 20:18:46 +0000 (13:18 -0700)]
Update Danish translation

Co-authored-by: Richard Russon <rich@flatcap.org>
5 years agoUpdate Russian translation
Vsevolod Volkov [Fri, 10 May 2019 18:09:45 +0000 (11:09 -0700)]
Update Russian translation

Co-authored-by: Richard Russon <rich@flatcap.org>
5 years agoUpdate Ukrainian translation
Vsevolod Volkov [Fri, 10 May 2019 18:07:41 +0000 (11:07 -0700)]
Update Ukrainian translation

Co-authored-by: Richard Russon <rich@flatcap.org>
5 years agotidy OAUTHBEARER error message
Richard Russon [Sat, 11 May 2019 09:12:30 +0000 (10:12 +0100)]
tidy OAUTHBEARER error message

5 years agofix 'too few/many' translations
Richard Russon [Sat, 11 May 2019 09:07:13 +0000 (10:07 +0100)]
fix 'too few/many' translations

5 years agofix command string
Richard Russon [Fri, 10 May 2019 22:31:31 +0000 (23:31 +0100)]
fix command string

5 years agoupdate German translation
Richard Russon [Fri, 10 May 2019 22:16:28 +0000 (23:16 +0100)]
update German translation

5 years agoUpdate lt_LT translation
Marius Gedminas [Thu, 9 May 2019 11:31:56 +0000 (14:31 +0300)]
Update lt_LT translation

Fixes 6 fuzzy strings.

5 years agofeat: use mailbox description for spoolfile 1708/head
Austin Ray [Fri, 10 May 2019 00:05:22 +0000 (20:05 -0400)]
feat: use mailbox description for spoolfile

'spoolfile' is limited to mailboxes paths so if one wants to use a
'named-mailboxes' or 'virtual-mailboxes' as the spoolfile, its path must
be duplicated in the 'spoolfile' assignment. 'virtual-mailboxes' has a
helper variable, 'virtual_spoolfile', for selecting the first
'virtual-mailboxes' entry as the spoolfile.

This commit allows one to use a mailbox description for the 'spoolfile,
which removes the need to duplicate a 'named-mailboxes' or
'virtual-mailboxes' path and makes 'virtual_spoolfile' defunct. The
configuration syntax is now more consistent.

It is important to note that mailbox descriptions are preferred to
paths.

To reflect the change, documentation was updated:
 - Add note to 'spoolfile' about using a string to specify a
   'named-mailboxes' or 'virtual-mailboxes' description.
 - Add a note to the 'virtual_spoolfile' documentation saying that it is no
   longer necessary since 'spoolfile' supports descriptions now.

5 years agomerge: upstream fixes
Richard Russon [Fri, 10 May 2019 14:16:58 +0000 (15:16 +0100)]
merge: upstream fixes

 * Add a test for NULL parameter attribute too
 * Add a quick-starter config section to the manual.
 * Add sample starter muttrc to contrib.
 * Change sample muttrc path to match other manual references.
 * Add note about %r for the pgp_list_*_command vars.

5 years agoAdd note about %r for the pgp_list_*_command vars.
Kevin McCarthy [Thu, 9 May 2019 20:48:44 +0000 (13:48 -0700)]
Add note about %r for the pgp_list_*_command vars.

In this case %r is the list of search strings.

5 years agoChange sample muttrc path to match other manual references.
Kevin McCarthy [Thu, 9 May 2019 20:25:25 +0000 (13:25 -0700)]
Change sample muttrc path to match other manual references.

The other parts of the manual refer to /usr/local/share/doc in their
examples.  For consistency, change the starter muttrc and manual entry
to do the same.

In the future, we may wish to have a config variable instead, so users
don't have to worry about system vs locally installed paths when
sourcing the gpg.rc, for instance.

5 years agoAdd sample starter muttrc to contrib.
Kevin McCarthy [Thu, 9 May 2019 02:28:21 +0000 (19:28 -0700)]
Add sample starter muttrc to contrib.

Add a mini-section with a link to the manual instead, under
"Configuration".

5 years agoAdd a quick-starter config section to the manual.
Kevin McCarthy [Mon, 6 May 2019 22:35:38 +0000 (15:35 -0700)]
Add a quick-starter config section to the manual.

Co-authored-by: Richard Russon <rich@flatcap.org>