summaryrefslogtreecommitdiffstats
path: root/ChangeLog.md
blob: f556f147bf3541aa29fa34f13889194a0847a404 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2023-10-23  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - #4060 - fix crash on exit
  - #4061 - fix header colour
  - #4064 - fix 32-bit date overflow
  - #4078 - fix new mail in limited view
  - nntp: fix use-after-free
  - color: fix ansi colours
  - color: add +truecolor to version string

2023-10-06  Richard Russon  \<rich@flatcap.org\>
* Features
  - #3870 - color: allow 'alert', 'bright', 'light' prefix for colorNNN
  - #3871 - color: refactor parsing code
  - #3895 - imap: truncate large UIDVALIDITYs to support non-conforming IMAP servers
  - #3898 - hcache: shrink Email and Body caches
  - #3900 - prompt: treat complete-query as complete where it makes sense
  - #3925 - help: add message flags to help screen
  - #3932 - help: add alternating colors
  - #3982 - mailboxes: add `-label`, `-notify` and `-poll` options
  - #4046 - color_directcolor: Also set the default/initial value on startup
* Bug Fixes
  - #3897 - maildir: fix sync when a deleted file disappears
  - #3878 - gnutls: fix "certificate saved" message
  - #3895 - imap: truncate large UIDVALIDITYs to support non-conforming servers
  - #3897 - maildir: fix fix error with `<sync-mailbox>` on mbsync
  - #3901 - address: parse comments after address
  - #3915 - bind: fix truncated binding strings
  - #3956 - fix 'from' address when real name isn't set
  - #3962 - Fix crash on `<next-thread>` when the `<limit>`ed view is empty
  - #3985 - browser: fix autocompletion
  - #3988 - pager: fix search crash
  - #3999 - help: fix search highlight
  - #4049 - force mail check on current mailbox after `<shell-escape>`
  - #4051 - openssl: continue if a signal interrupts an SSL read/write 
* Config
  - #3881 - Rename `$imap_keepalive` to `$imap_keep_alive`
  - #3889 - Change defaults to use `%<...>` conditional syntax
    `$attach_format`, `$index_format`, `$mailbox_folder_format`,
    `$status_format`, `$ts_icon_format`, `$ts_status_format`
  - #3949 - Add `browser_sort_dirs_first` to always list directories first
* Code
  - #3877 - imap: factor out tagged emails
  - #3799 - address: use struct Buffer instead of plain char pointers
  - #3868 - drop notifications relay
  - #3869 - move `$delete_untag` out of the backend
  - #3873 - respect `--[disable-]fmemopen` in tests
  - hcache: optimize storage requirements, reduce config
  - logging: catch format string errors
  - colour:  refactor colour parsing
  - refactoring, cleanup
  - fixed coverity defects
  - convert many functions to use a `Buffer`
* Translations
  - 100% :tr: Turkish
  - 100% :serbia: Serbian
  - 100% :lithuania: Lithuanian
  - 100% :de: German
  - 99% :czech_republic: Czech
  - 99% :poland: Polish
  - 98% :slovakia: Slovak

2023-05-17  Richard Russon  \<rich@flatcap.org\>
* Features
  - #3699 - Support 24bit colors, aka truecolor
  - #3738 - Show complete MIME structure in attachments
  - #3842 - Allow percentages to be localized
* Bug Fixes
  - #3813 - Fix crash in `op_browser_subscribe()`
  - #3844 - Select the first email when coming from an empty limit
  - #3848 - Fix counting new mails in maildir
  - #3864 - Fix handling of bright colours
  - #3759 - bind: fix incorrect conflict report
  - #3781 - index: only refresh the menu on non-focus window changes
  - #3856 - tunnel: fix reconnection with `ssl_force=true`
  - #3860 - maildir: stop parsing headers at the end of the headers section
  - Fix sorting of labels
* Translations
  - 100% :serbia: Serbian
  - 100% :tr: Turkish
  - 100% :lithuania: Lithuanian
  - 100% :hungary: Hungarian
  - 100% :de: German
  - 99% :norway: Norwegian (Bokmål)
  - 99% :slovakia: Slovak
  - 99% :brazil: Portuguese (Brazil)
  - 99% :czech_republic: Czech
  - 99% :poland: Polish
  - 95% :fr: French
* Build
 - #3798 - Build with libidn2 by default, remove support for libidn1
* Code
  - config: dynamically create/delete variables
  - config: unify handling of NeoMutt and user (my_) variables
  - config: cache config variables used often
  - speed: various speedups in parsing emails
  - cleanups: lots of code cleanups
  - Huge refactoring towards a separation of Mailbox/MailboxView

2023-05-12  Richard Russon  \<rich@flatcap.org\>
* BROKEN - Please use 2023-05-17 instead

2023-04-07  Richard Russon  \<rich@flatcap.org\>
* Features
  - #3769 - imap : support IMAP4 ID extension (RFC2971)
  - #3753 - parse: query all changed (`set`) / all (`set all`) config variables
* Bug Fixes
  - #3785 - lua: fix command registration
  - #3793 - postpone: use colours from the right mailbox
  - #3794 - smtp: ignore oauth if it isn't configured and not requested
* Config
  - #3779 - New: `$imap_send_id` - Send IMAP ID command when logging in
* Translations
  - 100% :czech_republic: Czech
  - 100% :de: German
  - 100% :hungary: Hungarian
  - 100% :lithuania: Lithuanian
  - 100% :brazil: Portuguese (Brazil)
  - 100% :serbia: Serbian
  - 100% :slovakia: Slovak
  - 99% :poland: Polish
* Docs
  - Recommend GPGME
* Code
  - #3767 - libmutt: eliminate use of config variables
  - #3774 - fix ubsan warning
  - #3802 - mutt: optimize and inline `mutt_str_is_email_wsp()`
  - #3803 - progress: update ncurses only when there is actual progress
  - #3801 - email: Read `$assumed_charset` outside loops
  - #3805 - hcache: do less work when not in use
  - #3777 - pager: add helper for getting `$pager`
  - #3797 - hcache: remove spurious +1 from Buffer serialization.
* Build
  - #3787 - fix race condition in `make install`
  - #3780 - fallback to detect SASL manually if pkg-config fails, e.g., homebrew

2023-03-22  Richard Russon  \<rich@flatcap.org\>
* Features
  - #3372 - use DT_SLIST for charset variables
  - #3383 - support viewing html with embedded images
  - #3408 - account command, see the [feature page](https://neomutt.org/feature/account-cmd)
  - #3411 - check that `$sendmail` and `$inews` don't contain shell meta characters
  - #3412 - browser: add `$mailbox_folder_format` config variable
  - #3421 - enter: add function `<kill-whole-line>`
  - #3414 - account command: add macOS keychain sample provider
  - #3430 - account command: add GPG+JSON sample provider
  - #3474 - expose italics attribute for colour scheme
  - #3471 - allow `source` in hooks to point to relative paths
  - #3506 - resolve alternates when subscribing/unsubscribing
  - #3492 - notmuch: allow specifying configuration file
  - #3547 - notmuch: allow usage of notmuch profiles
  - #3524 - add GNU SASL support for authentication (`--gsasl` configure option)
  - #3548 - extend colour objects to support patterns
  - #3586 - detect and fixup maildirs with missing "new" and "tmp" directories
  - #3634 - generate standard MIME types as application/pkcs7-* instead of legacy application/x-pkcs7-*
  - #3639 - compose: add Smime: pseudo header
  - #3641 - handle more X-Mutt pseudo-headers with `$edit_headers`
  - #3702 - use `$socket_timeout` to time out read/write operations
  - #3717 - allow `%[fmt]` in `$folder_format`
  - #3719 - respect `$attribution_locale` in `$indent_string` and `$post_indent_string`
  - #3720 - pattern: add `~K` to search Bcc, include Bcc in `~C`, `%C`, `~L`, and `~p`
  - #3726 - colour postponed emails list
  - #3734 - allow querying user-defined variables (`$my_var`) with `-Q`
  - #3737 - dump user-defined variables (`$my_var`) with `-D`
  - #3655 - generate purely random `Message-ID` headers
  - #3752 - allow an empty `$sidebar_divider_char`
  - #3745 - fix handling and display of group addresses
* Bug Fixes
  - #3386 - fix `$status_on_top` to work on complex windows, e.g., attach
  - #3397 - imap: fix off-by-one error causing bogus "Progress message 10/9" message
  - #3423 - attach: fix segfault when viewing HTML attachment in compose mode
  - #3434 - allow for longer expansions in e.g., `$index_format`
  - #3450 - accept unpadded base64-encoded data, as some mailers produce
  - #3465 - fix hangup when trying to add email address from help screens
  - #3468 - handle corrupted header caches
  - #3518 - fix slowdown when changing folders
  - #3828 - improve error detection for invalid `color` regexes
  - #3533 - distinguish between old/new with `$mark_old` unset
  - #3539 - parse mboxes with unconventional `From` lines
  - #3572 - fix hostname detection for hostname ending with a "."
  - #3596 - fix truncated SMTP lines in case of very long lines
  - #3600 - use `$smime_sign_as` instead of `$pgp_sign_as` when signing S/MIME messages
  - #3697 - set `$smime_sign_as` instead of `$smime_default_key` when signing
  - #3609 - fix wrong message being marked as read with `$pager_read_delay = 1`
  - #3653 - fix negative new-mail count on maildir
  - #3656 - skip zero width non-joiner character in the pager
  - #3664 - handle text/vcard as not being an attachment, same as for text/x-vcard
  - #3666 - fix `hdr_order` not sorting last header correctly
  - #3673 - make exiting via SIGINT more graceful
  - #3700 - fix `unhook index-format-hook`
  - #3709 - send: delete signature when sending fails #3709
  - #3727 - SMTP: try all available methods even if SASL is not compiled in
  - #3730 - fix decryption issue when postponing S/MIME encrypted mails
  - avoid unnecessary refreshes
  - fixed a number of memory leaks and crashes
* Config
  - #3604 - rename `$ask_follow_up` to `$ask_followup_to`
  - #3659 - rename `sidebar_whitelist`/`unsidebar_whitelist` to `sidebar_pin`/`sidebar_unpin`
  - #3629 - skip line rest of line after a warning
  - #3670 - `$vfolder_format` is now deprecated, use `$folder_format`
  - #3702 - rename `$connect_timeout` to `$socket_timeout`
  - #3697 - `pgp_entry_format`: add %i expand for the key fingerprint
  - #3724 - rename `$attribution` to `$attribution_intro` and
    `$post_indent_string` to `$attribution_trailer`
  - config variables are now properly spelled with underscores between names,
    e.g., `$implicit_autoview` -> `$implicit_auto_view`, `$message_cachedir` ->
    `$message_cache_dir`; the old names were kept as synonyms
* Translations
  - 100% Czech
  - 100% German
  - 100% Hungarian
  - 100% Lithuanian
  - 100% Portuguese (Brazil)
  - 100% Serbian
  - 100% Slovak
  - 100% Turkish
  - 99% Spanish
  - 99% Ukrainian
  - 94% Polish
  - 72% Catalan
* Docs
  - lots of documentation cleanups and updates
* Code
  - a lot of refactor to make the code more organizes, especially in these
    areas: windowing, menu, browser, enter, function dispatching, key handling,
    auto-completion
  - fewer global variables
  - removal of some unmaintained contrib code
  - new maintained sample config and examples are in the `data` directory
  - the contrib script mutt_oauth2.py received a lot of love
* Build
  - #3548 - support building with Undefined Behaviour Sanitizer (`--ubsan` configure option)
  - #3722 - generate compile_commands.json (`--compile-commands` configure option)
  - use pkg-config to locate most of the 3rd party dependencies
  - fix curses for netbsd
  - improve our CI stack
  - create libparse - parsing functions that can be easily tested
  - refactor commands / icommands

2022-04-29  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - Do not crash on an invalid use_threads/sort combination
  - Fix: stuck browser cursor
  - Resolve (move) the cursor after `<edit-label>`
  - Index: fix menu size on new mail
  - Don't overlimit LMDB mmap size
  - OpenBSD y/n translation fix
  - Generic: split out OP_EXIT binding
  - Fix parsing of sendmail cmd
  - Fix: crash with `$menu_move_off=no`
  - Newsrc: bugfix; `$nntp_user` and `$nntp_pass` ignored
  - Menu: ensure config changes cause a repaint
  - Mbox: fix sync duplicates
  - Make sure the index redraws all that's needed
* Translations
  - 100% Chinese (Simplified)
  - 100% Czech
  - 100% German
  - 100% Hungarian
  - 100% Lithuanian
  - 100% Serbian
  - 100% Turkish
* Docs
  - add missing pattern modifier ~I for `$external_search_command`
* Code
  - menu: eliminate custom_redraw()
  - modernise mixmaster
  - Kill global and Propagate display attach status through State

2022-04-15  Richard Russon  \<rich@flatcap.org\>
* Security
  - Fix uudecode buffer overflow (CVE-2022-1328)
* Features
  - Colours, colours, colours
* Bug Fixes
  - Pager: fix `$pager_stop`
  - Merge colours with normal
  - Color: disable mono command
  - Fix forwarding text attachments when `$honor_disposition` is set
  - Pager: drop the nntp change-group bindings
  - Use `mailbox_check()` flags coherently, add IMMEDIATE flag
  - Fix: tagging in attachment list
  - Fix: misalignment of mini-index
  - Make sure to update the menu size after a resort
* Translations
  - 100% Hungarian
* Build
  - Update acutest
* Code
  - Unify pipe functions
  - Index: notify if navigation fails
  - Gui: set colour to be merged with normal
  - Fix: leak in `tls_check_one_certificate()`
* Upstream
  - Flush `iconv()` in `mutt_convert_string()`
  - Fix integer overflow in `mutt_convert_string()`
  - Fix uudecode cleanup on unexpected eof

2022-04-08  Richard Russon  \<rich@flatcap.org\>
* Features
  - Compose multipart emails
* Bug Fixes
  - Fix screen mode after attempting decryption
  - imap: increase max size of oauth2 token
  - Fix autocrypt
  - Unify Alias/Query workflow
  - Fix colours
  - Say which file exists when saving attachments
  - Force SMTP authentication if `$smtp_user` is set
  - Fix selecting the right email after limiting
  - Make sure we have enough memory for a new email
  - Don't overwrite with zeroes after unlinking the file
  - Fix crash when forwarding attachments
  - Fix help reformatting on window resize
  - Fix poll to use PollFdsCount and not PollFdsLen
  - regex: range check arrays strictly
  - Fix Coverity defects
  - Fix out of bounds write with long log lines
  - Apply `$fast_reply` to 'to', 'cc', or 'bcc'
  - Prevent warning on empty emails
* Changed Config
  - New default: `set rfc2047_parameters = yes`
* Translations
  - 100% German
  - 100% Lithuanian
  - 100% Serbian
  - 100% Czech
  - 100% Turkish
  - 72% Hungarian
* Docs
  - Improve header cache explanation
  - Improve description of some notmuch variables
  - Explain how timezones and `!`s work inside `%{}`, `%[]` and `%()`
  - Document config synonyms and deprecations
* Build
  - Create lots of GitHub Actions
  - Drop TravisCI
  - Add automated Fuzzing tests
  - Add automated ASAN tests
  - Create Dockers for building Centos/Fedora
  - Build fixes for Solaris 10
  - New libraries: browser, enter, envelope
  - New configure options: `--fuzzing` `--debug-color` `--debug-queue`
* Code
  - Split Index/Pager GUIs/functions
  - Add lots of function dispatchers
  - Eliminate `menu_loop()`
  - Refactor function opcodes
  - Refactor cursor setting
  - Unify Alias/Query functions
  - Refactor Compose/Envelope functions
  - Modernise the Colour handling
  - Refactor the Attachment View
  - Eliminate the global `Context`
  - Upgrade `mutt_get_field()`
  - Refactor the `color quoted` code
  - Fix lots of memory leaks
  - Refactor Index resolve code
  - Refactor PatternList parsing
  - Refactor Mailbox freeing
  - Improve key mapping
  - Factor out charset hooks
  - Expose mutt_file_seek API
  - Improve API of `strto*` wrappers
* Upstream
  - imap QRESYNC fixes
  - Allow an empty To: address prompt
  - Fix argc==0 handling
  - Don't queue IMAP close commands
  - Fix IMAP UTF-7 for code points >= U+10000
  - Don't include inactive messages in msgset generation

2021-10-29  Richard Russon  \<rich@flatcap.org\>
* Features
  - Notmuch: support separate database and mail roots without .notmuch
* Bug Fixes
  - fix notmuch crash on open failure
  - fix crypto crash handling pgp keys
  - fix ncrypt/pgp file_get_size return check
  - fix restore case-insensitive header sort
  - fix pager redrawing of long lines
  - fix notmuch: check database dir for xapian dir
  - fix notmuch: update index count after `<entire-thread>`
  - fix protect hash table against empty keys
  - fix prevent real_subj being set but empty
  - fix leak when saving fcc
  - fix leak after `<edit-or-view-raw-message>`
  - fix leak after trash to hidden mailbox
  - fix leak restoring postponed emails

2021-10-22  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - fix new mail notifications
  - fix pattern compilation error for ~( !~>(~P) )
  - fix menu display on window resize
  - Stop batch mode emails with no argument or recipients
  - Add sanitize call in print mailcap function
  - fix `hdr_order` to use the longest match
  - fix (un)setenv to not return an error with unset env vars
  - fix Imap sync when closing a mailbox
  - fix segfault on OpenBSD current
  - sidebar: restore `sidebar_spoolfile` colour
  - fix assert when displaying a file from the browser
  - fix exec command in compose
  - fix `check_stats` for Notmuch mailboxes
  - Fallback: Open Notmuch database without config
  - fix gui hook commands on startup
* Changed Config
  - Re-enable `$ssl_force_tls`
* Translations
  - 100% Serbian
  - 100% Lithuanian
  - 100% German
* Build
  - Warn about deprecated configure options

2021-10-15  Richard Russon  \<rich@flatcap.org\>
* Security
  - Fix CVE-2021-32055
* Features
  - threads: implement the `$use_threads` feature
    https://neomutt.org/feature/use-threads
  - hooks: allow a -noregex param to folder and mbox hooks
  - mailing lists: implement list-(un)subscribe using RFC2369 headers
  - mailcap: implement x-neomutt-nowrap flag
  - pager: add `$local_date_header` option
  - imap, smtp: add support for authenticating using XOAUTH2
  - Allow `<sync-mailbox`> to fail quietly
  - imap: speed up server-side searches
  - pager: improve `<skip-quoted>` and `<skip-headers>`
  - notmuch: open database with user's configuration
  - notmuch: implement `<vfolder-window-reset>`
  - config: allow `+=` modification of my_ variables
  - notmuch: tolerate file renames behind neomutt's back
  - pager: implement `$pager_read_delay`
  - notmuch: validate `$nm_query_window_timebase`
  - notmuch: make `$nm_record` work in non-notmuch mailboxes
  - compose: add `$greeting` - a welcome message on top of emails
  - notmuch: show additional mail in query windows
* Changed Config
- Renamed lots of config, e.g.  `$askbcc` to `$ask_bcc`.
* Bug Fixes
  - imap: fix crash on external IMAP events
  - notmuch: handle missing libnotmuch version bumps
  - imap: add sanity check for qresync
  - notmuch: allow windows with 0 duration
  - index: fix index selection on `<collapse-all>`
  - imap: fix crash when sync'ing labels
  - search: fix searching by Message-Id in `<mark-message>`
  - threads: fix double sorting of threads
  - stats: don't check mailbox stats unless told
  - alias: fix crash on empty query
  - pager: honor mid-message config changes
  - mailbox: don't propagate read-only state across reopens
  - hcache: fix caching new labels in the header cache
  - crypto: set invalidity flags for gpgme/smime keys
  - notmuch: fix parsing of multiple `type=`
  - notmuch: validate `$nm_default_url`
  - messages: avoid unnecessary opening of messages
  - imap: fix seqset iterator when it ends in a comma
  - build: refuse to build without pcre2 when pcre2 is linked in ncurses
* Translations
  - 100% Serbian
  - 100% Lithuanian
  - 100% German
  - 100% Czech
  - 96% Spanish
  - 92% Polish
  - 85% Norwegian
  - 80% French
  - 78% Russian
  - 74% Esperanto
  - 66% Greek

2021-02-05  Richard Russon  \<rich@flatcap.org\>
* Features
  - Add `<skip-headers>` to skip past message headers in pager
  - Add `<view-pager>` function to attachment menu
* Bug Fixes
  - Fix detection of mbox files with new mail
  - Fix crash on collapsed thread
  - Fix `<group-chat-reply>`
  - Clear the message window on resize
  - Do not crash on return from shell-exec if there's no open mailbox
  - Abort IMAP open if condstore/qresync updates fetch fails
  - Fix smtp crash on invalid `$smtp_authenticators` list
  - Fix pager dropped input on screen resize
  - Fix mime forwarding
  - Check config after hooks
  - Always recreate a mailbox after `folder-hook`
* Translations
  - 88% Slovakian
* Docs
  - Adjust doc to explicitly mention `$count_alternatives`
  - Restore correct `$sort_re` documentation
  - Clarify pattern completion
  - Man pages: Clear up "-H" and "-O"
* Build
  - Update to latest acutest
  - Update to latest autosetup
  - Make the location of /tmp configurable

2020-11-20  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - Fix crash when saving an alias
* Translations
  - 70% Russian
* Code
  - Remove redundant function call

2020-11-20  Richard Russon  \<rich@flatcap.org\>
* Security
  - imap: close connection on all failures
* Features
  - alias: add `<limit>` function to Alias/Query dialogs
  - config: add validators for `{imap,smtp,pop}_authenticators`
  - config: warn when signature file is missing or not readable
  - smtp: support for native SMTP LOGIN auth mech
  - notmuch: show originating folder in index
* Bug Fixes
  - sidebar: prevent the divider colour bleeding out
  - sidebar: fix `<sidebar-{next,prev}-new>`
  - notmuch: fix `<entire-thread>` query for current email
  - restore shutdown-hook functionality
  - crash in reply-to
  - user-after-free in `folder-hook`
  - fix some leaks
  - fix application of limits to modified mailboxes
  - write Date header when postponing
* Translations
  - 100% Lithuanian
  - 100% Czech
  - 70% Turkish
* Docs
  - Document that `$sort_alias` affects the query menu
* Build
  - improve ASAN flags
  - add SASL and S/MIME to `--everything`
  - fix contrib (un)install
* Code
  - `my_hdr` compose screen notifications
  - add contracts to the MXAPI
  - maildir refactoring
  - further reduce the use of global variables
* Upstream
  - Add `$count_alternatives` to count attachments inside alternatives

2020-09-25  Richard Russon  \<rich@flatcap.org\>
* Features
  - Compose: display user-defined headers
  - Address Book / Query: live sorting
  - Address Book / Query: patterns for searching
  - Config: Add `+=` and `-=` operators for String Lists
  - Config: Add `+=` operator for Strings
  - Allow postfix query `:setenv NAME?` for env vars
* Bug Fixes
  - Fix crash when searching with invalid regexes
  - Compose: Prevent infinite loop of `send2-hook`s
  - Fix sidebar on new/removed mailboxes
  - Restore indentation for named mailboxes
  - Prevent half-parsing an alias
  - Remove folder creation prompt for POP path
  - Show error if `$message_cachedir` doesn't point to a valid directory
  - Fix tracking LastDir in case of IMAP paths with Unicode characters
  - Make sure all mail gets applied the index limit
  - Add warnings to -Q query CLI option
  - Fix index tracking functionality
* Changed Config
  - Add `$compose_show_user_headers` (yes)
* Translations
  - 100% Czech
  - 100% Lithuanian
  - Split up usage strings
* Build
  - Run shellcheck on `hcachever.sh`
  - Add the Address Sanitizer
  - Move compose files to lib under compose/
  - Move address config into libaddress
  - Update to latest acutest - fixes a memory leak in the unit tests
* Code
  - Implement ARRAY API
  - Deglobalised the Config Sort functions
  - Refactor the Sidebar to be Event-Driven
  - Refactor the Color Event
  - Refactor the Commands list
  - Make `ctx_update_tables()` private
  - Reduce the scope/deps of some Validator functions
  - Use the Email's IMAP UID instead of an increasing number as index
  - debug: log window focus

2020-08-21  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - fix maildir flag generation
  - fix query notmuch if file is missing
  - notmuch: don't abort sync on error
  - fix type checking for send config variables
* Changed Config
  - `$sidebar_format` - Use `%D` rather than `%B` for named mailboxes
* Translations
  - 96% Lithuanian
  - 90% Polish

2020-08-14  Richard Russon  \<rich@flatcap.org\>
* Security
  - Add mitigation against DoS from thousands of parts
* Features
  - Allow index-style searching in postpone menu
  - Open NeoMutt using a mailbox name
  - Add `cd` command to change the current working directory
  - Add tab-completion menu for patterns
  - Allow renaming existing mailboxes
  - Check for missing attachments in alternative parts
  - Add one-liner docs to config items
* Bug Fixes
  - Fix logic in checking an empty From address
  - Fix Imap crash in `cmd_parse_expunge()`
  - Fix setting attributes with S-Lang
  - Fix: redrawing of `$pager_index_lines`
  - Fix progress percentage for syncing large mboxes
  - Fix sidebar drawing in presence of indentation + named mailboxes
  - Fix retrieval of drafts when `$postponed` is not in the mailboxes list
  - Do not add comments to address group terminators
  - Fix alias sorting for degenerate addresses
  - Fix attaching emails
  - Create directories for nonexistent file hcache case
  - Avoid creating mailboxes for failed subscribes
  - Fix crash if rejecting cert
* Changed Config
  - Add `$copy_decode_weed`, `$pipe_decode_weed`, `$print_decode_weed`
  - Change default of `$crypt_protected_headers_subject` to "..."
  - Add default keybindings to history-up/down
* Translations
  - 100% Czech
  - 100% Spanish
* Build
  - Allow building against Lua 5.4
  - Fix when `sqlite3.h` is missing
* Docs
  - Add a brief section on stty to the manual
  - Update section "Terminal Keybindings" in the manual
  - Clarify PGP Pseudo-header `S<id>` duration
* Code
  - Clean up String API
  - Make the Sidebar more independent
  - De-centralise the Config Variables
  - Refactor dialogs
  - Refactor: Help Bar generation
  - Make more APIs Context-free
  - Adjust the edata use in Maildir and Notmuch
  - Window refactoring
  - Convert libsend to use Config functions
  - Refactor notifications to reduce noise
  - Convert Keymaps to use STAILQ
  - Track currently selected email by msgid
  - Config: no backing global variable
  - Add events for key binding
* Upstream
  - Fix imap postponed mailbox use-after-free error
  - Speed up thread sort when many long threads exist
  - Fix ~v tagging when switching to non-threaded sorting
  - Add message/global to the list of known "message" types
  - Print progress meter when copying/saving tagged messages
  - Remove ansi formatting from autoview generated quoted replies
  - Change postpone mode to write Date header too
  - Unstuff `format=flowed`

2020-08-07  Richard Russon  \<rich@flatcap.org\>
* Devel Release - see 2020-08-14

2020-06-26  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - Avoid opening the same hcache file twice
  - Re-open Mailbox after `folder-hook`
  - Fix the matching of the `$spool_file` Mailbox
  - Fix link-thread to link all tagged emails
* Changed Config
  - Add `$tunnel_is_secure` config, defaulting to true
* Upstream
  - Don't check IMAP PREAUTH encryption if `$tunnel` is in use
  - Add recommendation to use `$ssl_force_tls`

2020-06-19  Richard Russon  \<rich@flatcap.org\>
* Security
  - Abort GnuTLS certificate check if a cert in the chain is rejected
  - TLS: clear data after a starttls acknowledgement
  - Prevent possible IMAP MITM via PREAUTH response
* Features
  - add config operations `+=`/`-=` for number,long
  - Address book has a comment field
  - Query menu has a comment field
* Contrib
  - sample.neomuttrc-starter: Do not echo promted password
* Bug Fixes
  - make "news://" and "nntp://" schemes interchangeable
  - Fix CRLF to LF conversion in base64 decoding
  - Double comma in query
  - compose: fix redraw after history
  - Crash inside empty query menu
  - mmdf: fix creating new mailbox
  - mh: fix creating new mailbox
  - mbox: error out when an mbox/mmdf is a pipe
  - Fix `<list-reply>` by correct parsing of List-Post headers
  - Decode references according to RFC2047
  - fix tagged message count
  - hcache: fix keylen not being considered when building the full key
  - sidebar: fix path comparison
  - Don't mess with the original pattern when running IMAP searches
  - Handle IMAP "NO" resps by issuing a msg instead of failing badly
  - imap: use the connection delimiter if provided
  - Memory leaks
* Changed Config
  - `$alias_format` default changed to include `%c` comment
  - `$query_format` default changed to include `%e` extra info
* Translations
  - 100% Lithuanian
  - 84% French
  - Log the translation in use
* Docs
  - Add missing commands unbind, unmacro to man pages
* Build
  - Check size of long using `LONG_MAX` instead of `__WORDSIZE`
  - Allow ./configure to not record cflags
  - fix out-of-tree build
  - Avoid locating gdbm symbols in qdbm library
* Code
  - Refactor unsafe TAILQ returns
  - add window notifications
  - flip negative ifs
  - Update to latest `acutest.h`
  - test: add store tests
  - test: add compression tests
  - graphviz: email
  - make more opcode info available
  - refactor: `main_change_folder()`
  - refactor: `mutt_mailbox_next()`
  - refactor: `generate_body()`
  - compress: add `{min,max}_level` to ComprOps
  - emphasise empty loops: "// do nothing"
  - prex: convert `is_from()` to use regex
  - Refactor IMAP's search routines

2020-05-01  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - Make sure buffers are initialized on error
  - fix(sidebar): use abbreviated path if possible
* Translations
  - 100% Lithuanian
* Docs
  - make header cache config more explicit

2020-04-24  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - Fix history corruption
  - Handle pretty much anything in a URL query part
  - Correctly parse escaped characters in header phrases
  - Fix crash reading received header
  - Fix sidebar indentation
  - Avoid crashing on failure to parse an IMAP mailbox
  - Maildir: handle deleted emails correctly
  - Ensure OP_NULL is always first
* Translations
  - 100% Czech
* Build
  - cirrus: enable pcre2, make pkgconf a special case
  - Fix finding pcre2 w/o pkgconf
  - build: `tdb.h` needs size_t, bring it in with `stddef.h`

2020-04-17  Richard Russon  \<rich@flatcap.org\>
* Features
  - Fluid layout for Compose Screen, see: https://vimeo.com/407231157
  - Trivial Database (TDB) header cache backend
  - RocksDB header cache backend
  - Add `<sidebar-first>` and `<sidebar-last>` functions
* Bug Fixes
  - add error for CLI empty emails
  - Allow spaces and square brackets in paths
  - browser: fix hidden mailboxes
  - fix initial email display
  - notmuch: fix time window search.
  - fix resize bugs
  - notmuch: fix `<entire-thread>`: update current email pointer
  - sidebar: support indenting and shortening of names
  - Handle variables inside backticks in `sidebar_pin`
  - browser: fix mask regex error reporting
* Translations
  - 100% Lithuanian
  - 99% Chinese (simplified)
* Build
  - Use regexes for common parsing tasks: urls, dates
  - Add configure option `--pcre2` -- Enable PCRE2 regular expressions
  - Add configure option `--tdb` -- Use TDB for the header cache
  - Add configure option `--rocksdb` -- Use RocksDB for the header cache
  - Create libstore (key/value backends)
  - Update to latest autosetup
  - Update to latest `acutest.h`
  - Rename `doc/` directory to `docs/`
  - make: fix location of .Po dependency files
  - Change libcompress to be more universal
  - Fix test fails on х32
  - fix uidvalidity to unsigned 32-bit int
* Code
  - Increase test coverage
  - Fix memory leaks
  - Fix null checks
* Upstream
  - Buffer refactoring
  - Fix use-after-free in `mutt_str_replace()`
  - Clarify PGP Pseudo-header `S<id>` duration
  - Try to respect MUTT_QUIET for IMAP contexts too
  - Limit recurse depth when parsing mime messages

2020-03-20  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - Fix COLUMNS env var
  - Fix sync after delete
  - Fix crash in notmuch
  - Fix sidebar indent
  - Fix emptying trash
  - Fix command line sending
  - Fix reading large address lists
  - Resolve symlinks only when necessary
* Translations
  - 100% Lithuanian
  - 96% Spanish
* Docs
  - Include OpenSSL/LibreSSL/GnuTLS version in neomutt -v output
  - Fix case of GPGME and SQLite
* Build
  - Create libcompress (lz4, zlib, zstd)
  - Create libhistory
  - Create libbcache
  - Move zstrm to libconn
* Code
  - Add more test coverage
  - Rename magic to type
  - Use `mutt_file_fopen()` on config variables
  - Change commands to use intptr_t for data

2020-03-13  Richard Russon  \<rich@flatcap.org\>
* Features
  - UI: add number of old messages to `$sidebar_format`
  - UI: support ISO 8601 calendar date
  - UI: fix commands that don’t need to have a non-empty mailbox to be valid
  - PGP: inform about successful decryption of inline PGP messages
  - PGP: try to infer the signing key from the From address
  - PGP: enable GPGME by default
  - Notmuch: use query as name for `<vfolder-from-query>`
  - IMAP: add network traffic compression (COMPRESS=DEFLATE, RFC4978)
  - Header cache: add support for generic header cache compression
* Bug Fixes
  - Fix `$uncollapse_jump`
  - Only try to perform `<entire-thread>` on maildir/mh mailboxes
  - Fix crash in pager
  - Avoid logging single new lines at the end of header fields
  - Fix listing mailboxes
  - Do not recurse a non-threaded message
  - Fix initial window order
  - Fix leaks on IMAP error paths
  - Notmuch: compose(attach-message): support notmuch backend
  - Fix IMAP flag comparison code
  - Fix `$move` for IMAP mailboxes
  - Maildir: `maildir_mbox_check_stats()` should only update mailbox stats if requested
  - Fix unmailboxes for virtual mailboxes
  - Maildir: sanitize filename before hashing
  - OAuth: if 'login' name isn't available use 'user'
  - Add error message on failed encryption
  - Fix a bunch of crashes
  - Force C locale for email date
  - Abort if run without a terminal
* Changed Config
  - `$crypt_use_gpgme`                         - Now defaults to 'yes' (enabled)
  - `$abort_backspace`                         - Hitting backspace against an empty prompt aborts the prompt
  - `$abort_key`                               - String representation of key to abort prompts
  - `$arrow_string`                            - Use an custom string for `$arrow_cursor`
  - `$crypt_opportunistic_encrypt_strong_keys` - Enable encryption only when strong a key is available
  - `$header_cache_compress_dictionary`        - Filepath to dictionary for zstd compression
  - `$header_cache_compress_level`             - Level of compression for method
  - `$header_cache_compress_method`            - Enable generic hcache database compression
  - `$imap_deflate`                            - Compress network traffic
  - `$smtp_user`                               - Username for the SMTP server
* Translations
  - 100% Lithuanian
  - 81% Spanish
  - 78% Russian
* Build
  - Add libdebug
  - Rename public headers to `lib.h`
  - Create libcompress for compressed folders code
  - Enable Cirrus CI for FreeBSD
* Code
  - Refactor Windows and Dialogs
  - Lots of code tidying
  - Refactor: `mutt_addrlist_{search,write}()`
  - Lots of improvements to the Config code
  - Use Buffers more pervasively
  - Unify API function naming
  - Rename library shared headers
  - Refactor libconn gui dependencies
  - Refactor: init.[ch]
  - Refactor config to use subsets
  - Config: add path type
  - Remove backend deps from the connection code
* Upstream
  - Allow ~b ~B ~h patterns in send2-hook
  - Rename smime oppenc mode parameter to `get_keys_by_addr()`
  - Add `$crypt_opportunistic_encrypt_strong_keys` config var
  - Fix crash when polling a closed ssl connection
  - Turn off auto-clear outside of autocrypt initialization
  - Add protected-headers="v1" to Content-Type when protecting headers
  - Fix segv in IMAP postponed menu caused by reopen_allow
  - Adding ISO 8601 calendar date
  - Fix `$fcc_attach` to not prompt in batch mode
  - Convert remaining `mutt_encode_path()` call to use struct Buffer
  - Fix rendering of replacement_char when Charset_is_utf8
  - Update to latest `acutest.h`

2019-12-07  Richard Russon  \<rich@flatcap.org\>
* Features
  - compose: draw status bar with highlights
* Bug Fixes
  - crash opening notmuch mailbox
  - crash in `mutt_autocrypt_ui_recommendation()`
  - Avoid negative allocation
  - Mbox new mail
  - Setting of DT_MAILBOX type variables from Lua
  - imap: empty cmdbuf before connecting
  - imap: select the mailbox on reconnect
  - compose: fix attach message
* Build
  - make files conditional
  - add gpgme check for RHEL6
* Code
  - enum-ify log levels
  - fix function prototypes
  - refactor virtual email lookups
  - factor out global Context

2019-11-29  Richard Russon  \<rich@flatcap.org\>
* Features
  - Add raw mailsize expando (%cr)
* Bug Fixes
  - Avoid double question marks in bounce confirmation msg
  - Fix bounce confirmation
  - fix new-mail flags and behaviour
  - fix: browser `<descend-directory>`
  - fix ssl crash
  - fix move to trash
  - fix flickering
  - Do not check hidden mailboxes for new mail
  - Fix `$new_mail_command` notifications
  - fix crash in `examine_mailboxes()`
  - fix crash in `mutt_sort_threads()`
  - fix: crash after sending
  - Fix crash in tunnel's `conn_close()`
  - fix fcc for deep dirs
  - imap: fix crash when new mail arrives
  - fix colour 'quoted9'
  - quieten messages on exit
  - fix: crash after failed `mbox_check()`
  - browser: default to a file/dir view when attaching a file
* Changed Config
  - Change `$write_bcc` to default off
* Translations
  - 100% Portuguese (Brazil)
  -  92% Polish
* Docs
  - Add a bit more documentation about sending
  - Clarify `$write_bcc` documentation.
  - Update documentation for raw size expando
  - docbook: set generate.consistent.ids to make generated html reproducible
* Build
  - fix build/tests for 32-bit arches
  - tests: fix test that would fail soon
  - tests: fix context for failing idna tests

2019-11-11  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - browser: fix directory view
  - fix crash in `parse_extract_token()`
  - force a screen refresh
  - fix crash sending message from command line
  - notmuch: use `$nm_default_url` if no mailbox data
  - fix forward attachments
  - fix: vfprintf undefined behaviour in `body_handler()`
  - Fix relative symlink resolution
  - fix: trash to non-existent file/dir
  - fix re-opening of mbox Mailboxes
  - close logging as late as possible
  - log unknown mailboxes
  - fix crash in command line postpone
  - fix memory leaks
  - fix icommand parsing
  - fix new mail interaction with `$mail_check_recent`

2019-11-02  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - Mailboxes command with empty backticks
  - Mbox save-to-trash
  - Mkdir for new maildir folders
  - Maildir: new mail detection
  - Truncation of "set" command on a path variable
  - Update crash (when changing folder)
  - Resolve symbolic links when saving a message
  - Folder-hook calling `unmailboxes *`
  - Failed ssl negotiation
  - Crash when using "alias -group"
  - LibIDN error when `$charset` wasn't set
  - Notmuch abort `<entire-thread>` if database lacks message

2019-10-25  Richard Russon  \<rich@flatcap.org\>
* Features
  - Add `$fcc_before_send`, defaulting unset
  - Deprecate TLS 1.0 and 1.1 by default
  - Turn on `$ssl_force_tls` by default
  - Command line -z and -Z options to work with IMAP
  - Add size display configuration variables
  - Summary pages: version, set, set all, bind, macro
  - CONDSTORE and QRESYNC support
  - OAUTHBEARER support
  - inotify support
  - add index-format-hook
  - Add `$auto_subscribe` variable
  - Allow relative date hour/min/sec offsets
  - Add attributes support on color declarations
  - Style Menu Options
  - Add new pattern type ~I for external searches
  - Add `<named-mailboxes>` command
* Changed Config
  - `$folder_format`
  - `$pgp_use_gpg_agent`
  - `$shell`
  - `$ssl_force_tls`
  - `$ssl_use_tlsv1`
  - `$ssl_use_tlsv1_1`
  - `$status_format`
  - `$to_chars`
  - `$user_agent`
* New Config
  - `$attach_save_dir`
  - `$attach_save_without_prompting`
  - `$autocrypt`
  - `$autocrypt_acct_format`
  - `$autocrypt_dir`
  - `$autocrypt_reply`
  - `$auto_subscribe`
  - `$crypt_chars`
  - `$crypt_protected_headers_read`
  - `$crypt_protected_headers_save`
  - `$crypt_protected_headers_subject`
  - `$crypt_protected_headers_write`
  - `$external_search_command`
  - `$fcc_before_send`
  - `$forward_attachments`
  - `$imap_condstore`
  - `$imap_fetch_chunk_size`
  - `$imap_oauth_refresh_command`
  - `$imap_qresync`
  - `$imap_rfc5161`
  - `$include_encrypted`
  - `$nm_flagged_tag`
  - `$nm_replied_tag`
  - `$pop_oauth_refresh_command`
  - `$sidebar_non_empty_mailbox_only`
  - `$size_show_bytes`
  - `$size_show_fractions`
  - `$size_show_mb`
  - `$size_units_on_left`
  - `$smtp_oauth_refresh_command`
  - `$ssl_use_tlsv1_3`
* New Commands
  - `:index-format-hook`
  - `:named-mailboxes`
  - `:unbind`
  - `:unmacro`
* New Functions
  - `<autocrypt-acct-menu>`
  - `<autocrypt-menu>`
  - `<compose-to-sender>`
  - `<create-account>`
  - `<delete-account>`
  - `<descend-directory>`
  - `<group-chat-reply>`
  - `<mailbox-cycle>`
  - `<mailbox-list>`
  - `<toggle-active>`
  - `<toggle-prefer-encrypt>`
  - `<toggle-write>`
  - `<vfolder-from-query-readonly>`
* Bug Fixes
  - Fix crashes
  - Fix memory leaks
  - Fix undefined behaviour
  - Fix coverity defects
* Translations
  - 100% Lithuanian
  - 100% Chinese (Simplified)
  - 100% Portuguese (Brazil)
  - 95% German
  - 95% Finnish
  - 95% Czech
  - 91% Polish
  - 78% Japanese
  - 73% Dutch
  - 72% Spanish
  - 62% Swedish
  - 55% Slovak
* Docs
  - OpenPGP and S/MIME configuration
  - Quick-starter config section
  - Autocrypt feature
  - "Message Composition Flow" section to manual
  - OAUTH support

2018-07-16  Richard Russon  \<rich@flatcap.org\>
* Features
  - `<check-stats>` function
* Bug Fixes
  - Lots

2018-06-22  Richard Russon  \<rich@flatcap.org\>
* Features
  - Expand variables inside backticks
  - Honour SASL-IR IMAP capability in SASL PLAIN
* Bug Fixes
  - Fix `<toggle-read>`
  - Do not truncate shell commands on ; or #
  - pager: index must be rebuilt on MUTT_REOPENED
  - Handle a BAD response in AUTH PLAIN w/o initial response
  - fcc_attach: Don't ask every time
  - Enlarge path buffers PATH_MAX (4096)
  - Move LSUB call from connection establishment to mailbox SELECTion
* Translations
  - Update Chinese (Simplified): 100%
  - Update Czech: 100%
  - Update German: 100%
  - Update Lithuanian: 100%
  - Update Portuguese (Brazil): 100%
  - Update Slovak: 59%
  - Reduce duplication of messages
* Code
  - Tidy up the mailbox API
  - Tidy up the header cache API
  - Tidy up the encryption API
  - Add doxygen docs for more functions
  - Refactor more structs to use STAILQ

2018-05-12  Richard Russon  \<rich@flatcap.org\>
* Features
  - echo command
  - Add `$browser_abbreviate_mailboxes`
  - Add ~M pattern to match mime Content-Types
  - Add support for multipart/multilingual emails
  - Jump to a collapsed email
  - Add support for idn2 (IDNA2008)
* Bug Fixes
  - Let `mutt_ch_choose()` report conversion failure
  - minor IMAP string handling fixes
* Translations
  - Chinese (Simplified) (100%)
  - Czech (100%)
  - German (100%)
  - Lithuanian (62%)
  - Portuguese (Brazil) (100%)
* Coverity defects
  - match prototypes to their functions
  - make logic clearer
  - reduce scope of variables
  - fix coverity defects
* Docs
  - development: analysis
  - development: easy tasks
  - development: roadmap
* Code
  - start refactoring libconn
  - split out progress functions
  - split out window functions
  - split out terminal setting
  - convert MyVars to use TAILQ
  - split `mutt_file_{lock,unlock}()`
  - Move IDN version string to `mutt/idna.c`
  - refactor: `init_locale()`
  - Eliminate static variable in `mutt_file_dirname()`
* Tidy
  - test int functions against 0
  - rename lots of constants
  - rename lots of functions
  - sort lots of fields/definitions
* Upstream
  - Increase account.user/login size to 128
  - Fix comparison of flags with multiple bits set
  - Change `mutt_error()` call in `mutt_gpgme_set_sender()` to dprint
  - Improve the error message when a signature is missing
  - pager specific "show incoming mailboxes list" macro
  - Improve gss debug printing of status_string
  - Remove trailing null count from gss_buffer_desc.length field
  - Add a comment in auth_gss about RFCs and null-termination
  - Change prompt string for `$crypt_verify_sig`

2018-03-23  Richard Russon  \<rich@flatcap.org\>
* Features
  - unify logging/messaging
  - add alert (blink) colors
* Contrib
  - Vim syntax for NeoMutt log files
* Bug Fixes
  - Fix progress bar range
  - notmuch: stop if db open fails
  - Improve index color cache flushing behavior
  - lua: fix crash when setting a string
* Translations
  - Update Czech translation (100%)
  - Update German translation (100%)
  - Update Polish translation (94%)
  - Update Portuguese (BR) translation (100%)
  - Update Spanish translation (64%)
  - Update Turkish translation (75%)
  - Merge similar messages
* Docs
  - Clarify precedence of settings in config files
  - Fix subjectrx example in the manual
* Website
  - Update Gentoo distro page
  - Devel: Static analysis
* Build
  - Support —with-sysroot configure arg
  - Expose EXTRA_CFLAGS_FOR_BUILD and EXTRA_LDFLAGS_FOR_BUIlD
  - Update to latest autosetup
  - Make sure `git_ver.h` doesn't eat random 'g's out of tag names
* Code
  - Refactor to reduce complexity
  - Refactor to reduce variables' scope
  - Sort functions/config to make docs more legible

2018-02-23  Richard Russon  \<rich@flatcap.org\>
* Features
  - browser: `<goto-parent>` function bound to "p"
  - editor: `<history-search>` function bound to "Ctrl-r"
  - Cygwin support: https://neomutt.org/distro/cygwin
  - openSUSE support: https://neomutt.org/distro/suse
  - Upstream Homebrew support: Very soon - https://neomutt.org/distro/homebrew
* Bug Fixes
  - gmail server-size search
  - nested-if: correctly handle "\<" and "\>" with %?
  - display of special chars
  - lua: enable myvars
  - for pgpewrap in default gpg.rc
  - `$reply_regexp` which wasn't formatted correctly.
  - parsing of urls containing '?'
  - out-of-bounds read in `mutt_str_lws_len()`
* Translations
  - Review fuzzy lt translations
  - Updated French translation
* Website
  - Installation guide for Cygwin
  - Installation guide for openSUSE
  - Installation guide for CRUX
* Build
  - check that DTDs are installed
  - autosetup improvements
  - option for which version of bdb to use
  - drop test for resizeterm -- it's always present
* Code
  - split if's containing assignments
  - doxygen: add/improve comments
  - rename functions / parameters for consistency
  - add missing {}s for clarity
  - move functions to library
  - reduce scope of variables
  - boolify more variables
  - iwyu: remove unnecessary headers
  - name unicode chars
  - tailq: migrate parameter api
  - md5: refactor and tidy
  - rfc2047: refactor and tidy
  - buffer: improvements
  - create unit test framework
  - fix several coverity defects
* Upstream
  - Fix s/mime certificate deletion bug
  - Disable message security if the backend is not available
  - Fix improper signed int conversion of IMAP uid and msn values
  - Change imap literal counts to parse and store unsigned ints
  - Fix imap status count range check
  - `cmd_handle_fatal()`: make error message a bit more descriptive
  - Create pgp and s/mime default and sign_as key vars
  - Add missing setup calls when resuming encrypted drafts
  - `mutt_pretty_size()`: show real number for small files
  - `examine_directory()`: set directory/symlink size to zero
  - Add `<history-search>` function, bound to ctrl-r
  - Avoid a potential integer overflow if a Content-Length value is huge

2017-12-15  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - Fix some regressions in the previous release

2017-12-08  Richard Russon  \<rich@flatcap.org\>
* Features
  - Enhance ifdef feature to support my_ vars
  - Add `<edit-or-view-raw-message>`
  - Remove vim syntax file from the main repo
  - Support reading FQDN from mailname files
* Bug Fixes
  - Do not turn CRLF into LF when dealing with transfer-encoding=base64
  - Cleanup "SSL is unavailable" error in mutt_conn_find
  - Don't clear the macro buffer during startup
  - Fixup smart `<modify-labels-then-hide>` for !tag case
  - Add sleep after SMTP error
  - Restore folder settings after `folder-hook`
  - Fix segfault when pipe'ing a deleted message
* Docs
  - Display_filter escape sequence
  - Correct spelling mistakes
  - Add a sentence to `<quasi-delete>` docs
  - Modify gpg.rc to accommodate GPG 2.1 changes
* Build
  - Fix build for RHEL6
  - Define NCURSES_WIDECHAR to require wide-char support from ncurses
  - Autosetup: fix check for missing sendmail
  - Respect `--with-ssl` path
  - Check that OpenSSL md5 supports -r before using it
  - Autosetup: expand `--everything` in `neomutt -v`
  - Make sure objects are not compiled before `git_ver.h` is generated
  - Build: fix update-po target
  - Fix out-of-tree builds
  - Fix stdout + stderr redirection in `hcachever.sh`
  - Build: moved the check for idn before the check for notmuch
  - Define prefix in Makefile.autosetup
  - Install stuff to $(PACKAGE) in $(libexecdir), not $(libdir)
  - Update autosetup to latest master
* Code
  - Rename files
  - Rename functions
  - Rename variables
  - Rename constants
  - Remove unused parameters
  - Document functions
  - Rearrange functions
  - Move functions to libraries
  - Add new library functions
  - Rearrange switch statements
  - Boolification
  - Drop #ifdef DEBUG
  - Fix Coverity defects
  - Insert braces
  - Split ifs
  - Fallthrough
  - Fix shadow variable
  - Replace mutt_debug with a macro
  - Return early where possible
* Upstream
  - Note which ssl config vars are GnuTLS or OpenSSL only
  - Add message count to `$move` quadoption prompt
  - Add %R (number of read messages) for `$status_format`
  - Add `$change_folder_next` option to control mailbox suggestion order
  - Fix `$smart_wrap` to not be disabled by whitespace-prefixed lines
  - Remove useless else branch in the `$smart_wrap` code
  - Fix ansi escape sequences with both reset and color parameters

2017-10-27  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - variable type when using fread
  - prevent timezone overflow
  - tags: Show fake header for all backends
  - notmuch: virtual-mailboxes should accept a limit
  - Issue 888: Fix imap mailbox flag logging
  - fix actions on tagged messages
  - call the `folder-hook` before saving to `$record`
  - Fix smart wrap in pager without breaking header
  - Add polling for the IDLE command
* Docs
  - imap/notmuch tags: Add some documentation
  - English and other cleanups
  - compressed and nntp features are now always built
* Website
  - Update Arch instructions
* Build
  - Fix update-po
  - Fix neomutt.pot location, remove from git
  - Allow to specify `--docdir` at configure time
  - Generate neomuttrc even if configured with `--disable-doc`
  - Let autosetup define PWD, do not unnecessarily try to create hcache dir
  - Use bundled wcscasecmp if an implementation is not found in libc
  - Use host compiler to build the documentation
  - Update autosetup to latest master branch
  - autosetup: delete makedoc on 'make clean'
  - Fixes for endianness detection
  - Update autosetup to latest master branch
  - Do not use CPPFLAGS / CFLAGS together with CC_FOR_BUILD
  - `--enable-everything` includes lua
  - autosetup: check for sys_siglist[]
* Code
  - move functions to library
  - lib: move MIN/MAX macros
  - simplify null checks
  - kill preproc expansion laziness
  - reduce scope of variables
  - merge: minor code cleanups
  - split up 'if' statements that assign and test
  - Refactor: Remove unused return type
  - Bool: change functions in `mx.h`
  - bool: convert function parameters in `nntp.h`
  - add extra checks to `mutt_pattern_exec()`
  - Use safe_calloc to initialize memory, simplify size_t overflow check
  - Move `mutt_rename_file()` to lib/file.[hc]
  - doxygen: fix a few warnings
  - minor code fixes
  - use `mutt_array_size()`
  - refactor out O_NOFOLLOW
  - initialise variables
  - lib: move List and Queue into library
  - url: make notmuch query string parser generic
  - Wrap dirname(3) inside a `mutt_dirname()` function

2017-10-13  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - crash using uncolor
  - Sort the folders list when browsing an IMAP server
  - Prefer a helpful error message over a BEEP
* Build
  - Do not fail if deflate is not in libz
  - Support EXTRA_CFLAGS and EXTRA_LDFLAGS, kill unused variable

2017-10-06  Richard Russon  \<rich@flatcap.org\>
* Features
  - Add IMAP keywords support
* Bug Fixes
  - set mbox_type
  - %{fmt} date format
  - Fix off-by-one buffer overflow in add_index_color
  - crash in `mbox_to_udomain()`
  - crash in `mutt_substrdup()`
  - crash looking up mime body type
  - `$digest_collapse` was broken
  - crash using notmuch expando with imap
  - imap: Fix mx.mbox leak in `imap_get_parent_path()`
  - overflow in `mutt_mktime()`
  - add more range-checking on dates/times
  - Remove spurious error message
  - Unsubscribe after deleting an imap folder
  - Do not pop from MuttrcStack what wasn't pushed
* Docs
  - replace mutt refs with neomutt
  - drop old vim syntax file
* Code
  - convert functions to use 'bool'
  - convert structs to use STAILQ
* Build
  - Autosetup-based configuration
  - drop upstream mutt references
  - rename everything 'mutt' to 'neomutt'
  - move helper programs to lib dir
  - rename regexp to regex
  - expand buffers to avoid gcc7 warnings
* Upstream
  - Remove \Seen flag setting for imap trash
  - Change imap copy/save and trash to sync flags, excluding deleted
  - Improve imap fetch handler to accept an initial UID
  - Display an error message when delete mailbox fails
  - Updated French translation
  - Fix imap sync segfault due to inactive headers during an expunge
  - Close the imap socket for the selected mailbox on error
  - Add missing IMAP_CMD_POLL flag in imap mailbox check
  - Change maildir and mh check_mailbox to use dynamic sized hash
  - Fix uses of `context->changed` as a counter
  - Make `cmd_parse_fetch()` more precise about setting reopen/check flags
  - Enable `$reply_self` for `<group-reply,>` even with $me_too unset

2017-09-12  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - broken check on resend message
  - crash in `<vfolder-from-query>`
* Build
  - Be more formal about quoting in m4 macros
  - fix warnings raised by gcc7
  - notmuch: add support for the v5 API

2017-09-07  Richard Russon  \<rich@flatcap.org\>
* Contrib
  - Add guix build support
* Bug Fixes
  - Only match real mailboxes when looking for new mail
  - Fix the printing of ncurses version in -v output
  - Bind editor `<delete>` to `<delete-char>`
  - Fix overflowing colours
  - Fix empty In-Reply-To generation
  - Trim trailing slash from completed dirs
  - Add guix-neomutt.scm
  - Fix setting custom query_type in notmuch query
* Website
  - New technical documentation LINK
  - Improve Gentoo distro page
* Build
  - Better curses identification
  - Use the system's wchar_t support
  - Use the system's md5 tool (or equivalent)
  - Clean up configure.ac
  - Teach gen-map-doc about the new opcode header
* Source
  - Rename functions (snake_case)
  - Rename constants/defines (UPPER_CASE)
  - Create library of shared functions
  - Much tidying
  - Rename globals to match user config
  - Drop unnecessary functions/macros
  - Use a standard list implementation
  - Coverity fixes
  - Use explicit NUL for string terminators
  - Drop OPS\* in favour of `opcodes.h`
* Upstream
  - Fix menu color calls to occur before positioning the cursor
  - When guessing an attachment type, don't allow text/plain if there is a null character
  - Add `$imap_poll_timeout` to allow mailbox polling to time out
  - Handle error if REGCOMP in pager fails when resizing
  - Change recvattach to allow nested encryption
  - Fix attachment check_traditional and extract_keys operations
  - Add edit-content-type helper and warning for decrypted attachments
  - Add option to run command to query attachment mime type
  - Add warning about using inline pgp with format=flowed

2017-07-14  Richard Russon  \<rich@flatcap.org\>
* Translations
  - Update German translation
* Docs
  - compile-time output: use two lists
  - doxygen: add config file
  - doxygen: tidy existing comments
* Build
  - fix `hcachever.sh` script
* Upstream
  - Fix crash when `$postponed` is on another server.

2017-07-07  Richard Russon  \<rich@flatcap.org\>
* Features
  - Support Gmail's X-GM-RAW server-side search
  - Include pattern for broken threads
  - Allow sourcing of multiple files
* Contrib
  - vombatidae colorscheme
  - zenburn colorscheme
  - black 256 solarized colorscheme
  - neonwolf colorscheme
  - Mutt logos
* Bug Fixes
  - flags: update the hdr message last
  - gpgme S/MIME non-detached signature handling
  - menu: the thread tree color
  - Uses CurrentFolder to populate LastDir with IMAP
  - stabilise sidebar sort order
  - colour emails with a '+' in them
  - the padding expando `%>`
  - Do not set old flag if `$mark_old` is false
  - maildir creation
  - Decode CRLF line endings to LF when copying headers
  - score address pattern do not match personal name
  - open attachments in read-only mode
  - Add Cc, In-Reply-To, and References to default mailto_allow
  - Improve search for mime.types
* Translations
  - Update Chinese (Simplified) translation
* Coverity defects
  - dodgy buffers
  - leaks in lua get/set options
  - some resource leaks
* Docs
  - update credits
  - limitations of new-mail %f expando
  - escape \<\>'s in nested conditions
  - add code of conduct
  - fix ifdef examples
  - update mailmap
  - Update `<modify-labels-then-hide>`
  - fix mailmap
  - drop UPDATING files
* Website
  - Changes pages (diff)
  - Update Arch distro page
  - Update NixOS distro page
  - Add new Exherbo distro page
  - Update translation hi-score table
  - Update code of conduct
  - Update Newbies page
  - Add page about Rebuilding the Documentation
  - Add page of hard problems
* Build
  - remove unnecessary steps
  - drop instdoc script
  - move smime_keys into contrib
  - fixes for Solaris
  - don't delete non-existent files
  - remove another reference to devel-notes.txt
  - Handle native Solaris GSSAPI.
  - drop configure options `--enable-exact-address`
  - drop configure option `--with-exec-shell`
  - drop configure option `--enable-nfs-fix`
  - drop configure option `--disable-warnings`
  - Completely remove dotlock
  - More sophisticated check for BDB version + support for DB6 (non default)
* Tidy
  - drop VirtIncoming
  - split `parse_mailboxes()` into `parse_unmailboxes()`
  - tidy some mailbox code
  - tidy the version strings
* Upstream
  - Add ~\<() and ~\>() immediate parent/children patterns
  - Add L10N comments to the GNUTLS certificate prompt
  - Add more description for the %S and %Z `$index_format` characters
  - Add config vars for forwarded message attribution intro/trailer
  - Block SIGWINCH during connect()
  - Improve the L10N comment about Sign as
  - Auto-pad translation for the GPGME key selection "verify key" headers
  - Enable all header fields in the compose menu to be translated
  - Force hard redraw after `$sendmail` instead of calling `mutt_endwin()`
  - Make GPGME key selection behavior the same as classic-PGP
  - Rename 'sign as' to 'Sign as'; makes compose menu more consistent
  - Change the compose menu fields to be dynamically padded

2017-06-09  Richard Russon  \<rich@flatcap.org\>
* Contrib
  - unbind mappings before overwriting in vim-keys
* Bug Fixes
  - latest coverity issues (#624)
  - don't pass colour-codes to filters
  - Don't set a colour unless it's been defined.
  - crash if no from is set or founds
  - ifdef command
* Translations
  - fix translations
  - fix some remaining translation problems
* Docs
  - explain binding warnings
  - don't document unsupported arches
* Build
  - fix make `git_ver.h`
  - allow xsltproc and w3m calls to fail
  - fix make dist
* Upstream
  - Add a `mutt_endwin()` before invoking `$sendmail`
  - Restore setenv function
  - Fix `<tag-prefix>` to not abort on `$timeout`
  - Change `km_dokey()` to return -2 on a timeout/sigwinch
  - Enable TEXTDOMAINDIR override to make translation testing easier
  - Fix "format string is not a string literal" warnings

2017-06-02  Richard Russon  \<rich@flatcap.org\>
* Features
  - Warn on bindkey aliasing
  - Drop PATCHES, tidy 'mutt -v' output
  - Add %z format strings to `$index_format`
  - Add `$debug_level`/`$debug_file` options
* Bug Fixes
  - Fix nntp group selection
  - Fix status color
  - Tidy up S/MIME contrib
  - Do not try to create Maildir if it is an NNTP URL
  - Fix missing NONULL for `mutt.set()` in Lua
* Translations
  - Fix German PGP shortkeys
* Docs
  - Remove feature muttrc files
  - Merge README.notmuch into manual
  - Remove unneeded scripts
  - Remove README.SECURITY
  - Remove BEWARE and devel-notes.txt
  - Update Makefiles
  - Delete TODO files
  - Remove legacy files
  - Don't generate vim-neomutt syntax file
  - Remove LaTeX/pdf manual generation
  - Add missing docs for expandos
  - Fix sidebar howto examples
  - Remove some upstream references
  - Drop refs to patches
  - Improve PR template and CONTRIBUTING.md
* Website
  - Fix list items in newbie-tutorial's Mailing List Guidelines
  - Remove configure options that no longer exist
  - fix newbie tutorial
  - document signing tags / releases
  - config: drop unused paginate command
  - script: split tests up into several
  - convert credits page to markdown
  - simpify 404 page
  - improve newbie tutorial
  - remove help.html and integrate its content elsewhere
  - make: "graphviz" program is needed for generating diagram
  - improve getting started guide // include legacy files
  - dev: add list of architectures/operating systems
  - numerous small fixes
* Build
  - Remove typedefs and rename ~130 structs
  - Add separate hcache dir
  - Move crypto files to ncrypt dir
  - Split up `mutt.h`, `protos.h`
  - Always build: sidebar, imap, pop, smtp, compressed, nntp
  - Remove `--enable-mailtool` configure option
  - Make dotlock optional
  - Change gpgme requirement back to 1.1.0
  - Remove `check_sec.sh`
  - Fix safe_calloc args
  - Remove unused macros
  - Remove unused option: SmimeSignOpaqueCommand
  - Move configure-generated files
  - Update distcheck build flags
  - Drop obsolete iconv check
  - Unused prototypes - unsupported systems
  - Drop many configure tests for things defined in POSIX:2001
  - Kill useless `crypthash.h` file
  - Run clang-format on the code
  - Fail early if ncursesw cannot be found
  - Add names prototype arguments
  - Abbreviate pointer tests against NULL
  - Initialise pointers to NULL
  - Reduce the scope of for loop variables
  - Coverity: fix defects
* Upstream
  - Convert all exec calls to use `mutt_envlist()`, remove setenv function
  - Note that mbox-hooks are dependent on `$move`
  - Refresh header color when updating label
  - Remove glibc-specific `execvpe()` call in `sendlib.c`
  - Add color commands for the compose menu headers and security status
  - Fix sidebar count updates when closing mailbox
  - Don't modify LastFolder/CurrentFolder upon aborting a change folder operation
  - Change message modifying operations to additively set redraw flags
  - Improve maildir and mh to report flag changes in `mx_check_mailbox()`
  - Add `$header_color_partial` to allow partial coloring of headers
  - Rename REDRAW_SIGWINCH to REDRAW_FLOW
  - Create R_PAGER_FLOW config variable flag
  - Turn IMAP_EXPUNGE_EXPECTED back off when syncing
  - Add `$history_remove_dups` option to remove dups from history ring
  - Also remove duplicates from the history file
  - Don't filter new entries when compacting history save file
  - Move the IMAP msn field to IMAP_HEADER_DATA
  - Fix imap expunge to match msn and fix index
  - Fix `cmd_parse_fetch()` to match against MSN
  - Start fixing `imap_read_headers()` to account for MSN gaps
  - Add msn_index and max_msn to find and check boundaries by MSN
  - Properly adjust fetch ranges when handling new mail
  - Small imap fetch fixes
  - Don't abort header cache evaluation when there is a hole
  - Fix mfc overflow check and uninitialized variable
  - Fix potential segv if mx_open_mailbox is passed an empty string
  - Don't clean up idata when closing an open-append mailbox
  - Don't clean up msn idata when closing an open-append mailbox
  - Fix memory leak when closing mailbox and using the sidebar
  - Change imap body cache cleanup to use the uid_hash
  - Convert classic s/mime to space delimit findKeys output
  - Add self-encrypt options for PGP and S/MIME
  - Change `$postpone_encrypt` to use self-encrypt variables first
  - Automatic post-release commit for mutt-1.8.3
  - Add note about message scoring and thread patterns

2017-04-28  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - Fix and simplify handling of GPGME in configure.ac (@gahr)
* Docs
  - Fix typo in README.neomutt (@l2dy)
* Upstream
  - Fix `km_error_key()` infinite loop and unget buffer pollution
  - Fix error message when opening a mailbox with no read permission

2017-04-21  Richard Russon  \<rich@flatcap.org\>
* Features
  - add lua scripting
  - add command-line batch mode
  - index_format: add support of %K
* Bug Fixes
  - attachment/pager: Use mailcap for test/* except plain
  - Fix `$uncollapse_new` in pager
  - fix garbage in chdir prompt due to unescaped string
  - Fix inbox-first functionality when using `mutt_pretty_mailbox()`
  - add full neomutt version to log startup
  - fix bug in uncolor for notmuch tag
  - fix broken `$from_chars` behaviour
* Coverity defects
  - strfcpy
  - add variable - function arg could be NULL/invalid
  - add variable - failed function leads to invalid variable
  - add variable - Context could become NULL
  - add variable - alloc/strdup could return NULL
  - add variable - route through code leads to invalid variable
  - remove variable test
  - test functions
  - tidy switches
  - unused variables
  - refactor only
  - check for buffer underruns
  - fix leaks
  - minor fixes
  - bug: add missing break
  - bug: don't pass large object by value
  - fix: use correct buffer size
  - shadow variables
  - 0 -\> NULL
* Docs
  - many minor updates
  - sync translations
  - delete trailing whitespace
  - indent the docbook manual
  - use w3m as default for generating UTF8 manual.txt
* Website
  - many minor updates
  - fix broken links
  - add to list of useful programs
  - test automatic html checker
  - remove trailing whitespace
  - add irc description
  - update issue labels (dev)
  - new page: closed discussions
  - new page: making neomutt (dev)
* Build
  - drop obsolete m4 scripts
  - don't look for lua libs unless asked for
  - lower the gettext requirement 0.18 -\> 0.17
  - add `keymap_alldefs.h` to BUILT_SOURCES
  - fix make dist distcheck
  - Remove -Iimap from CFLAGS and include `imap/imap.h` explicitly
  - mx: fix conditional builds
  - Make iconv mandatory (no more `--disable-iconv`)
  - refactor: Split out BUFFER-handling functions
* Tidy
  - drop control characters from the source
  - drop vim modelines
  - delete trailing whitespace
  - mark all local functions as static
  - delete unused functions
  - replace FOREVER with while (true)
  - drop #if HAVE_CONFIG_H
  - use #ifdef for potentially missing symbols
  - remove #if 0 code blocks
  - drop commented out source
  - IMAP auth functions are stored by pointer cannot be static
  - force OPS to be rebuilt after a reconfigure
  - be specific about void functions
  - expand a few more alloc macros
  - add argument names to function prototypes
  - drop local copy of regex code
  - rearrange code to avoid forward declarations
  - limit the scope of some functions
  - give the compress functions a unique name
  - use snake_case for function names
  - add missing newlines to mutt_debug
  - remove generated files from repo
  - look for translations in all files
  - fix arguments to printf-style functions
  - license text
  - unify include-guards
  - tidy makefiles
  - initialise pointers
  - make strcmp-like functions clearer
  - unify sizeof usage
  - remove forward declarations
  - remove ()s from return
  - rename files hyphen to underscore
  - remove unused macros
  - use SEEK_SET, SEEK_CUR, SEEK_END
  - remove constant code
  - fix typos and grammar in the comments
  - Switch to using an external gettext runtime
  - apply clang-format to the source code
  - boolify returns of 84 functions
  - boolify lots of struct members
  - boolify some function parameters
* Upstream
  - Add `$ssl_verify_partial_chains` option for OpenSSL
  - Move the OpenSSL partial chain support check inside configure.ac
  - Don't allow storing duplicate certs for OpenSSL interactive prompt
  - Prevent skipped certs from showing a second time
  - OpenSSL: Don't offer (a)ccept always choice for hostname mismatches
  - Add SNI support for OpenSSL
  - Add SNI support for GnuTLS
  - Add shortcuts for IMAP and POP mailboxes in the file browser
  - Change OpenSSL to use SHA-256 for cert comparison
  - Fix conststrings type mismatches
  - Pass envlist to filter children too
  - Fix `envlist_set()` for the case that envlist is null
  - Fix setenv overwriting to not truncate the envlist
  - Fix `(un)sidebar_pin` to expand paths
  - Fix `mutt_refresh()` pausing during macro events
  - Add a menu stack to track current and past menus
  - Change CurrentMenu to be controlled by the menu stack
  - Set refresh when popping the menu stack
  - Remove redraw parameter from crypt send_menus
  - Don't full redraw the index when handling a command from the pager
  - Filter other directional markers that corrupt the screen
  - Remove the OPTFORCEREDRAW options
  - Remove SidebarNeedsRedraw
  - Change `reflow_windows()` to set full redraw
  - Create R_MENU redraw option
  - Remove refresh parameter from `mutt_enter_fname()`
  - Remove redraw flag setting after `mutt_endwin()`
  - Change `km_dokey()` to pass SigWinch on for the MENU_EDITOR
  - Separate out the compose menu redrawing
  - Separate out the index menu redrawing
  - Prepare for pager redraw separation
  - Separate out the pager menu redrawing
  - Don't create query menu until after initial prompt
  - Silence imap progress messages for `<pipe-message>`
  - Ensure mutt stays in endwin during calls to `pipe_msg()`
  - Fix memleak when attaching files
  - Add `$ssl_verify_partial_chains` option for OpenSSL
  - Move the OpenSSL partial chain support check inside configureac
  - Don't allow storing duplicate certs for OpenSSL interactive prompt
  - Prevent skipped certs from showing a second time
  - OpenSSL: Don't offer (a)ccept always choice for hostname mismatches
  - Add SNI support for OpenSSL
  - Add SNI support for GnuTLS
  - Add shortcuts for IMAP and POP mailboxes in the file browser
  - Updated French translation
  - Change OpenSSL to use SHA-256 for cert comparison
  - Fix conststrings type mismatches
  - Pass envlist to filter children too
  - Fix `envlist_set()` for the case that envlist is null
  - Fix setenv overwriting to not truncate the envlist
  - Fix `mutt_refresh()` pausing during macro events
  - Add a menu stack to track current and past menus
  - Change CurrentMenu to be controlled by the menu stack
  - Set refresh when popping the menu stack
  - Remove redraw parameter from crypt send_menus
  - Don't full redraw the index when handling a command from the pager
  - Fix `(un)sidebar_pin` to expand paths
  - Filter other directional markers that corrupt the screen
  - Remove the OPTFORCEREDRAW options
  - Remove SidebarNeedsRedraw
  - Change `reflow_windows()` to set full redraw
  - Create R_MENU redraw option
  - Remove refresh parameter from `mutt_enter_fname()`
  - Remove redraw flag setting after `mutt_endwin()`
  - Change `km_dokey()` to pass SigWinch on for the MENU_EDITOR
  - Separate out the compose menu redrawing
  - Separate out the index menu redrawing
  - Prepare for pager redraw separation
  - Separate out the pager menu redrawing
  - Don't create query menu until after initial prompt
  - Silence imap progress messages for `<pipe-message>`
  - Ensure mutt stays in endwin during calls to `pipe_msg()`
  - Fix memleak when attaching files
  - automatic post-release commit for mutt-181
  - Added tag mutt-1-8-1-rel for changeset f44974c10990
  - mutt-181 signed
  - Add ifdefs around new mutt_resize_screen calls
  - Add multiline and sigwinch handling to `mutt_multi_choice()`
  - Set pager's REDRAW_SIGWINCH when reflowing windows
  - Add multiline and sigwinch handling to mutt_yesorno
  - Change the sort prompt to use (s)ort style prompts
  - Handle the pager sort prompt inside the pager
  - Fix GPG_TTY to be added to envlist
  - automatic post-release commit for mutt-182

2017-03-06  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - Get the correct buffer size under fmemopen/torify (#441)
  - Use static inlines to make gcc 4.2.1 happy
  - getdnsdomainname: cancel getaddrinfo_a if needed
  - imap: remove useless code (#434) (origin/master)
  - Fixes missing semi-colon compilation issue (#433)
* Docs
  - github: added template for Pull Requests, issues and a CONTRIBUTION.md (#339)
  - editorconfig: support for new files, fix whitespace (#439)
  - add blocking fmemopen bug on debian to manual (#422)
* Upstream
  - Increase ACCOUNT.pass field size. (closes #3921)
  - SSL: Fix memory leak in subject alternative name code. (closes #3920)
  - Prevent segv if open-appending to an mbox fails. (closes #3918)
  - Clear out extraneous errors before `SSL_connect()` (see #3916)

2017-02-25  Richard Russon  \<rich@flatcap.org\>
* Features
  - Add option `$show_multipart_alternative`
  - notmuch: Allow to use untransformed tag for color
  - Use getaddrinfo_a if possible (#420)
* Bug Fixes
  - handle sigint within socket operations (#411)
  - Avoid browsing the remote `$spool_file` by setting MUTT_SELECT_MULTI attach
  - notmuch: fix crash when completing tags (#395)
  - Fixes missing failure return of notmuch msg open (#401)
  - Fix latest Coverity issues (#387)
  - Advance by the correct number of position even for unknown characters (#368)
  - Release KyotoCabinet data with `kcfree()` (#384)
  - 22 resource leaks
* Translations
  - Update translations
  - Update the German translation (#397)
* Docs
  - fix typo in notmuch example
  - remove duplicate "default" in the sidebar intro
  - fix confusing description of notmuch operators (#371)
  - correct spelling mistakes (#412)
* Website
  - link to clang-format config in main repo (#28)
  - updated list of useful programs
  - update/improve list of useful programs
  - `$sidebar_format` has a single default value
  - fix name of GNU Guix
  - added guix distro
  - added link to new afew maintainers
  - add code of conduct
  - add mutt-addressbook to useful
  - remove unnecessary unicode non-breaking spaces
  - github merging
* Build
  - Enable and run unit-tests on the feature/unit-test branch
  - add notmuch to default, feature
  - new dbs for mutt
  - master is now the main branch
  - streamline builds
  - fix doc generator
  - add a few includes (prelude to clang-format)
  - `slcurses.h` defines its own bool type
  - travis: use container build
  - add clang-format file
  - Remove ugly macros and casts from `crypt_gpgme.c`
  - fix minor reflow issues in some comments
  - editorconfig: use spaces to indent in *.[ch] files
  - added comment-blocks for clang-format to ignore
  - fix 80 column limit, align statements
  - Remove `snprintf.c` from EXTRA_DIST (#406)
  - Kill homebrew (v)snprintf implementations, as they are C99 (#402)
  - Display charset + small refactoring
  - Do not cast or check returns from safe_calloc (#396)
  - refactor: create a generic base64 encode/decode
  - debug: remove dprint in favor of mutt_debug (#375)
  - Fix dubious use macro for `_()` / `gettext()` (#376)
  - Use buf_init instead of memset
  - Make the heap method and datatype a plain list
  - Reverts making AliasFile into a list_t (#379)
  - Turn mutt_new_* macros into inline functions
  - Do not cast return values from malloc (or similar)
* Upstream
  - Simplify `mutt_label_complete()`
  - Permit tab completion of pattern expressions with ~y (labels)
  - Fix the `mutt_label_complete()` pos parameter
  - Fix the x-label update code check location
  - Improve the label completion hash table usage
  - Adds label completion
  - Add `hash_find_elem()` to get the hash element
  - Minor fixes to the x-label patch from David
  - Adds capability to edit x-labels inside mutt, and to sort by label
  - Allow "unsubjectrc *" to remove all patterns
  - Add subjectrx command to replace matching subjects with something else
  - Abstract the SPAM_LIST as a generic REPLACE_LIST
  - Improve Reply-to vs From comparison when replying
  - Fix sidebar references to the "new count" to be "unread"
  - Fix several alias hashtable issues
  - Add casecmp and strdup_key flags to hash_create()
  - Improve error handling in mbox magic detection
  - Allow initial blank lines in local mailboxes
  - Fix minor documentation issues
  - Convert cmd_parse_search to use the uid hash
  - Create a uid hash for imap
  - Convert HASH to be indexable by unsigned int
  - Fix imap server-side search to call `uid2msgno()` only once
  - Add a pattern_cache_t to speed up a few repeated matches
  - Canonicalize line endings for GPGME S/MIME encryption
  - Fix build for bdb
  - Create function to free header cache data
  - Add Kyoto Cabinet support to the header cache
  - Prevent null pointer exception for `h->ai_canonname`
  - Show SHA1 fp in interactive cert check menu
  - Fix potential cert memory leak in `check_certificate_by_digest()`
  - Plug memory leak in weed-expired-certs code
  - Filter expired local certs for OpenSSL verification
  - Change "allow_dups" into a flag at hash creation

2017-02-06  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - Unicode 0x202F is a non-break space too (#358)
  - improve readability of `find_subject()`
  - Import hcache-lmdb fixes from upstream (#363)
  - Rework the "inbox-first" implementation to make code self-explanatory (#356)
  - If possible, only redraw after gpgme has invoked pinentry (#352)
  - Remove two use-after free in global hooks (#353)
  - Handle BAD as IMAP_AUTH_UNAVAIL (#351)
  - Do not crash when closing a non-opened mailbox
  - Import hcache benchmark
  - fix: bug introduced by mkdir changes (#350)
  - change pager to allow timehook-hook to fire
* Docs
  - Update documentation about `<modify-labels-then-hide>`

2017-01-28  Richard Russon  \<rich@flatcap.org\>
* Features
  - Add option for missing subject replacement
  - notmuch: Allow `<modify-labels>` to toggle labels
  - Support for aborting mailbox loading
  - Do a mailbox check after shell escape
  - Support of relative paths sourcing and cyclic source detection
  - Support of multiple config files as CLI arguments
  - Extend the ~m pattern to allow relative ranges
  - Implement SASL's PLAIN mechanism as a standalone authenticator
  - Add support for sensitive config options
  - Searching with a window over notmuch vfolders
* Contrib
  - fix vim syntax file for index-color commands
  - add .editorconfig
* Bug Fixes
  - fix global hooks to not take a pattern
  - Avoid breaking relative paths when avoiding cyclic checks on
  - Fix sorting when using '/' as a namespace separator
* Docs
  - Added waffle badges to readme
  - Describe the new message ranges
  - add documentation for -DS command line switch
  - fix typos in section on config locations
  - remove reference to missing keybinding
  - fix docbook validation
* Build
  - Start migrating to stdbool logic
  - add recursive `mkdir()`
  - reformat the source to mutt standards
  - appease `check_sec.sh`

2017-01-13  Richard Russon  \<rich@flatcap.org\>
* Features
  - Allow custom status flags in `$index_format`
  - `$from_chars` highlights differences in authorship
  - notmuch: make 'Folder' and 'Tags' respect (un)ignore
  - notmuch: add "virtual-unmailboxes" command
* Bug Fixes
  - pick smarter default for `$sidebar_divider_char`
  - status color breaks "mutt -D"
  - Enable `<reconstruct-thread>` in the pager
  - manually touch 'atime' when reading a mbox file
  - allow `$to_chars` to contain Unicode characters
  - increase the max lmdb database size
  - restore limit current thread
  - don't reset the alarm unless we set it
  - some more places that may get NULL pointers
  - rework initials to allow unicode characters
* Translations
  - Spanish translation
  - German translation
* Docs
  - Improve whitespace and grammar on the NNTP feature page
  - make `$to_chars` docs more legible
  - de-tab the DocBook
  - fix 301 redirects
* Build
  - New configure option `--enable-everything`
  - add a constant for an aborted question
  - enhance `mutt_to_base64()` (and callers)
  - Fix configure.ac to require md5 if hcache is enabled
  - Bail if a selected hcache backend cannot be found
  - refactor mutt_matches_ignore
  - fix hcache + make dist
  - add unicode string helper function
  - Re-indent configure.ac
  - generate devel version suffix
  - fix `check_sec.sh` warnings
  - remove unnecessary #ifdef's
  - add missing #ifdef for nntp
  - ignore some configure temp files
  - fix "make dist" target
  - fix function prototypes
  - fix coverity warnings
  - notmuch: drop strndup, replace with mutt_substrdup
* Upstream
  - Fix failure with GPGME 1.8: do not steal the gpgme_ prefix.
  - search muttrc file according to XDG Base Specification (closes #3207)
  - Improve openssl interactive_check_cert. (closes #3899)
  - Add mutt_array_size macro, change `interactive_check_cert()` to use it. (see #3899)
  - Return to pager upon aborting a jump operation. (closes #3901)
  - Change sidebar_spool_file coloring to be lower precedence.
  - Move '@' pattern modifier documentation to the right section.
  - Add setenv/unsetenv commands.
  - Rework OpenSSL certificate verification to support alternative chains. (closes #3903)
  - Add option to control whether threads uncollapse when new mail arrives.
  - In the manual, replaced 2 para by example (similar to the first example).
  - Create MbTable type for multibyte character arrays. (see #3024)
  - Make `$to_chars` and `$status_chars` accept mulitibyte characters. (closes #3024)

2016-11-26  Richard Russon  \<rich@flatcap.org\>
* Features
  - Upstream adoption of compress
  - Multiple hcache backends and run-time selection
  - `$forward_references` includes References: header on forwards
  - Hooks: define hooks for startup and shutdown
  - Add `$collapse_all` to close threads automatically
* Bug Fixes
  - Index in pager crash
  - Tag with multiple labels
  - Make sure gdbm's symbols are not resolved in QDBM's compatibility layer
  - Fix crash when doing collapse_all on an empty folder
  - Fix: crash when browsing empty dir
  - Initialize imap_authenticate's return value to something meaningful
* Translations
  - Update German translation
  - Update Slovak translation
  - Update French translation
  - Add English (British) translation
  - Convert files to utf-8
  - Mass tidy up of the translation messages
* Docs
  - new-mail bug is fixed
  - add since date for features
  - expand example command options for compress
  - fix entries for `$beep` and `new-mail-command`
  - add a version number to the generated vimrc
  - fix links in README
  - don't use smart quotes in manual examples
  - `<escape>` and `\e` means refers to both alt and escape key
* Build
  - Travis: test messages
  - Add option to disable translation messages
  - Split hcache code into per-backend files
  - Doc/Makefile clean neomutt-syntax.vim
  - Improve discovery for the Berkeley Database
  - Fix nntp/notmuch conditionals
  - Implement `mutt_strchrnul()`
  - Rename vim-keybindings to vim-keys
* Upstream
  - `$attach_format`: add new %F placeholder
  - Compose: add operation to rename an attachment
  - Chain `%d->%F->%f` in the attachment menu
  - Move mbox close-append logic inside `mbox_close_mailbox()`
  - When `$flag_safe` is set, flagged messages cannot be deleted
  - Adds the '@' pattern modifier to limit matches to known aliases
  - Adds `<mark-message>` binding to create "hotkeys" for messages
  - Updated requirement on the C compiler
  - Fix `<mark-message>` translation and keybind menu
  - More openssl1.1 fixes: remove uses of `X509->name` in debugging. (closes #3870)
  - Don't close stderr when opening a tunnel. (closes #3726)
  - Minor resource and error logic cleanup in tunnel_socket_open()
  - Make sure that the output of X509_NAME_oneline is null-terminated

2016-11-04  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - don't crash when the imap connection dies
* Upstream
  - Add `<root-message>` function to jump to root message in thread.
  - Updated French translation.
  - Prevent an integer overflow in `mutt_mktime()` (closes #3880)
  - Fix pager segfault when lineInfo.chunks overflows. (closes #3888)
  - Perform charset conversion on text attachments when piping. (closes #3773) (see #3886)
  - Add a `--disable-doc` configuration option.
  - Make ncurses and ncursesw header checking the same.
  - Attempt to silence a clang range warning. (closes #3891)
  - Fixed issue from changeset 4da647a80c55. (closes #3892)
  - Define PATH_MAX, it's missing on the GNU Hurd. (closes #3815)

2016-10-28  Richard Russon  \<rich@flatcap.org\>
* Features
  - nntp: use safe_{fopen,fclose}
  - nntp: fix resource leak
  - forgotten-attachment: Ignore lines matching `$quote_regex`
  - forgotten-attachment: Fix checking logic.
  - forgotten-attachment: Update docs regarding `$quote_regex`
  - notmuch: Add a fake "Folder" header to viewed emails
  - sidebar: consider description when using pinning
  - skip-quoted: skip to body
* Bug Fixes
  - sensible-browser/notmuch changing mailbox
  - "inbox" sorting function
  - overhaul the index/pager updates
  - crash in hdrline
  - remove stray line introduced by pager fix
  - Possible fix for random pager crashes.
* Docs
  - use a more expressive coverity scan badge
  - light tidying
* Build
  - replace the ugly `strfcpy()` macro with a function
  - build: Look for tgetent in ncurses, fallback to tinfo only if not found
  - build: fix a couple of build warnings
  - travis: install doc dependencies
  - build: fix install/dist/distcheck targets
* Upstream
  - Fix POP3 SASL authentication mechanism DIGEST-MD5. (closes #3862)
  - Add a few explanatory comments to `pop_auth_sasl()`  (see #3862)
  - Fix GPGME signature zero timestamp and locale awareness issues. (closes #3882)
  - Handle presence of '--' delimiter in `$sendmail` (closes #3168)
  - Allow IPv6 literal addresses in URLs. (closes #3681)
  - Fix gpgme segfault in `create_recipient_set()`
  - Use `mutt_strlen()` and `mutt_strncmp()` in `sidebar.c`
  - Change sidebar to only match `$folder` prefix on a `$sidebar_divider_char.` (closes #3887)
  - Actually fix gpgme segfault in `create_recipient_set()`

2016-10-14  Richard Russon  \<rich@flatcap.org\>
* Features
  - sidebar: Make sure INBOX appears first in the list.
  - notmuch: Synchronise tags to flags
* Bug Fixes
  - updates when pager is open
  - crash when neither `$spool_file`, `$folder` are set
  - forgotten-attachment: fix empty regex expression
  - status-color when `$pager_index_lines > 0`
  - buffer underrun when no menu item is selected
  - crash handling keywords/labels
* Docs
  - update notmuch references
* Build
  - update references to 1.7.1
  - `strfcpy()` improvement
* Upstream
  - automatic post-release commit for mutt-1.7.1
  - Mark IMAP fast-trash'ed messages as read before copying. (see #3860)
  - Updated Czech translation.
  - Preserve forwarded attachment names in d_filename.

2016-10-03  Richard Russon  \<rich@flatcap.org\>
* Build
  - Fix install and dist targets

2016-10-02  Richard Russon  \<rich@flatcap.org\>
* Features
  - Kyoto Cabinet header cache
  - Compose to Sender
  - Forgotten Attachment uses a regex
  - Optimize LMDB's hcache backend
  - Sensible-browser behaviour fixes
* Bug Fixes
  - Fixes repaint problem with `$pager_index_lines` #159
  - Quasi-Delete: check there's a selection
  - Bulletproof the pager
  - Typo in the version string
* Docs
  - Add badges to README.neomutt
  - Document the Kyoto cabinet hcache backend
  - Fix the layout of the syntax file
  - Make the license clear to github
  - Fix the alignment in a 'nested-if' example
  - Fix notmuch vim syntax file
  - Added Mailinglist mailto links to "Where is NeoMutt" section
  - Fix build of neomutt-syntax.vim
  - Fixed typo of devel mailinglist name
* Build
  - Travis: install the kyoto-cabinet dev files
  - Build source before docs
  - Build fix for strndup / malloc
  - Change gcc build options to prevent crashes
* Upstream
  - Ensure signatures exist when verifying multipart/signed emails (closes #3881)
  - RFC2047-decode mailto url headers after RFC2822 parsing (closes #3879)
  - RFC2047-decode mailto header values (closes #3879)
  - Reset invalid parsed received dates to 0  (closes #3878)
  - Clear pager position when toggling headers
  - Don't abort the menu editor on sigwinch (closes #3875)
  - Mark some gpgme pgp menu keybinding translations as fuzzy (closes #3874)
  - Check for NULL mx_ops in mxc
  - Use body color for gpgme output (closes #3872)
  - Fix gpgme segfault when querying candidates with a '+' in the address (closes #3873)

2016-09-16  Richard Russon  \<rich@flatcap.org\>
* Bug Fixes
  - Avoid segfault when listing mailboxes on startup
    John Swinbank
  - Fix buffer overrun in search for attach keyword
    James McCoy
  - Fix off-by-one in error message
    Antonio Radici
  - fix AC_INIT tarname parameter
  - fix crash when exiting the pager
  - fix another crash in the pager
  - nntp: close message handles
  - fix: make the pager more robust
  - fix sidebar sort order
  - fix notmuch tag completion
* Docs
  - doc: Removes bug entry in new-mail docs
    Santiago Torres
  - fix some translations in `crypt_gpgme.c`
    Antonio Radici
  - docs: mass tidy up
* Upstream
  - Fix sidebar documentation a bit
  - Add sidebar_pin command
  - Remove the $locale configuration variable
  - Add `$attribution_locale` configuration variable
  - Add missing include `<locale.h>` to `send.c` and `edit.c`
  - Filter out zero width no-break space (U+FEFF)
  - Update a confusing and obsolete comment
  - Moves `mutt_copy_list()` to `muttlib.c`, where it belongs
  - Redraw screen after an SSL cert prompt
  - Preserve message-id and mft headers for recalled messages
  - Fix openssl 1.1 compilation issues

2016-09-10  Richard Russon  \<rich@flatcap.org\>
* New Features
  - Colouring Attachments with Regex
    Guillaume Brogi
  - PGP Encrypt to Self
    Guillaume Brogi
  - Sensible Browser
    Pierre-Elliott Bécue
  - Reply using X-Original-To: header
    Pierre-Elliott Bécue
  - Purge Thread
    Darshit Shah
  - Forgotten attachment
    Darshit Shah
  - Add `sidebar_ordinary` color
* Bug Fixes
  - align the nntp code with mutt
    Fabian Groffen
  - check for new mail while in pager when idle
    Stefan Assmann
  - Allow the user to interrupt slow IO operations
    Antonio Radici
  - keywords: check there are emails to tag
  - fix duplicate saved messages
  - flatten contrib/keybase dir to fix install
  - restore the pager keymapping 'i' to exit
  - proposed fix for clearing labels
  - notmuch: sync `$vfolder_format` to `$folder_format`
* Docs
  - Update List of Features and Authors
* Build
  - fix configure check for fmemopen
  - use fixed version strings
* Upstream
  - Increase date buffer size for `$folder_format`
  - Disable ~X when message scoring
  - Fix pgpring reporting of DSA and Elgamal key lengths
  - Stub out `getdnsdomainname()` unless HAVE_GETADDRINFO
  - Autoconf: always check for `getaddrinfo()`
  - Add missing sidebar contrib sample files to dist tarball

2016-08-27  Richard Russon  \<rich@flatcap.org\>
* NeoMutt for Mutt 1.7.0
* Build
  - Disable fmemopen until bug is fixed
* Contrib
  - Keybase portability improvements
    Joshua Jordi (JakkinStewart)

2016-08-21  Richard Russon  \<rich@flatcap.org\>
* Contrib
  - Updates to Keybase Support
    Joshua Jordi (JakkinStewart)
* Bug Fixes
  - Fix data-loss when appending a compressed file
  - Don't paint invisible progress bars
  - Revert to Mutt keybindings
  - Don't de-tag emails after labelling them
  - Don't whine if `getrandom()` fails
    Adam Borowski (kilobyte)
  - Fix display when 'from' field is invalid
* Config
  - Support for $XDG_CONFIG_HOME and $XDG_CONFIG_DIRS
    Marco Hinz (mhinz)
* Docs
  - Fix DocBook validation
  - Document Notmuch queries
* Build
  - More Autoconf improvements
    Darshit Shah (darnir)
  - Create Distribution Tarballs with autogen sources
    Darshit Shah (darnir)

2016-08-08  Richard Russon  \<rich@flatcap.org\>
* New Features
  - Timeout Hook - Run a command periodically
  - Multiple fcc - Save multiple copies of outgoing mail
* Contrib
  - Keybase Integration
    Joshua Jordi (JakkinStewart)
* Devel
  - Attached - Prevent missing attachments
    Darshit Shah (darnir)
  - Virtual Unmailboxes - Remove unwanted virtual mailboxes
    Richard Russon (flatcap)
* Bug Fixes
  - Sidebar's inbox occasionally shows zero/wrong value
  - Fix crash opening a second compressed mailbox
* Config
  - Look for /etc/neomuttrc and ~/.neomuttrc
* Docs
  - Fix broken links, typos
  - Update project link
  - Fix version string in the manual
* Build
  - Add option to disable fmemopen
  - Install all the READMEs and contribs
  - Big overhaul of the build
    Darshit Shah (darnir)

2016-07-23  Richard Russon  \<rich@flatcap.org\>
* New Motto: "Teaching an Old Dog New Tricks"
  - Thanks to Alok Singh
* New Features
  - New Mail Command - Execute a command on receipt of new mail
  - vim-keys - Mutt config for vim users
  - LMDB: In-memory header caching database
  - SMIME Encrypt to Self - Secure storage of sensitive email
* Bug Fixes
  - rework `mutt_draw_statusline()`
  - fix cursor position after sidebar redraw
  - Add `$sidebar_format` flag '%n' to display 'N' on new mail.
  - fix `$index_format` truncation problem
  - Fix compiler warnings due to always true condition
  - Change sidebar next/prev-new to look at `mailbox->new` too.
  - Change the default for `$sidebar_format` to use %n.
  - sidebar "unsorted" order to match Mailbox list order.
  - Include ncurses tinfo library if found.
  - Sidebar width problem
  - sidebar crash for non-existent mailbox
  - Temporary compatibility workaround
  - Reset `mailbox->new` for the current mailbox in IMAP.
  - `version.sh` regression
  - crash when notmuch tries to read a message
  - status line wrapping
* Docs
  - Mass tidy up of the docs
  - Fix xml validation
  - Add missing docs for new features
* Travis
  - New build system:
    https://github.com/neomutt/travis-build
    Now we have central control over what gets built

2016-07-09  Richard Russon  \<rich@flatcap.org\>
* Bug-fixes
  - This release was a temporary measure

2016-06-11  Richard Russon  \<rich@flatcap.org\>
* Change in behaviour
  - Temporarily disable `$sidebar_refresh_time`
    Unfortunately, this was causing too many problems.
    It will be fixed and re-enabled as soon as possible.
* Bug Fixes
  - Fix several crashes, on startup, in Keywords
  - Reflow text now works as it should
  - Lots of typos fixed
  - Compress config bug prevented it working
  - Some minor bug-fixes from mutt/default
  - Single quote at line beginning misinterpreted by groff
  - Setting `$sidebar_width` to more than 128 would cause bad things to happen.
  - Fix alignment in the compose menu.
  - Fix sidebar mailbox stats updating on mailbox close.
* Build Changes
  - Sync whitespace to mutt/default
  - Alter ChangeLog date format to simplify Makefiles
  - Use the new notmuch functions that return a status
  - Rename sidebar functions `sb_*` -\> `mutt_sb_*`

2016-05-23  Richard Russon  \<rich@flatcap.org\>
* New Features:
  - Keywords: Email Label/Keywords/Tagging
  - Compress: Compressed mailboxes support
  - NNTP: Talk to a usenet news server
  - Separate mappings for `<enter>` and `<return>`
  - New configure option: `--enable-quick-build`
  - Various build fixes

2016-05-02  Richard Russon  \<rich@flatcap.org\>
* Update for Mutt-1.6.0
* Bug Fixes:
  - Build for Notmuch works if Sidebar is disabled
  - Sidebar functions work even if the Sidebar is hidden
  - `<sidebar-next-new>`, etc, only find *new* mail, as documented
  - Notmuch supports *very* long queries

2016-04-16  Richard Russon  \<rich@flatcap.org\>
* Big Bugfix Release
* Bug Fixes:
  - Fix crash caused by `$sidebar_folder_indent`
  - Allow the user to change mailboxes again
  - Correct sidebar's messages counts
  - Only sort the sidebar if we're asked to
  - Fix refresh of pager when toggling the sidebar
  - Compose mode: make messages respect the TITLE_FMT
  - Conditional include if `sys/syscall.h`
  - Build fix for old compilers
  - Try harder to keep track of the open mailbox
* Changes to Features
  - Allow `$sidebar_divider_char` to be longer
    (it was limited to one character)
  - Ignore case when sorting the sidebar alphabetically
* Other Changes
  - Numerous small tweaks to the docs
  - Lots of minor code tidy-ups
  - Enabling Notmuch now forcibly enables Sidebar
    (it is dependent on it, for now)
  - A couple of bug fixes from mutt/stable

2016-04-04  Richard Russon  \<rich@flatcap.org\>
* Update for Mutt-1.6.0
* No other changes in this release

2016-03-28  Richard Russon  \<rich@flatcap.org\>
* New Features
  - `<skip-quoted>`          - skip quoted text
  - `<limit-current-thread>` - limit index view to current thread
* Sidebar Intro - A Gentle Introduction to the Sidebar (with pictures).

2016-03-20  Richard Russon  \<rich@flatcap.org\>
* Numerous small bugfixes
* TravisCI integration

2016-03-17  Richard Russon  \<rich@flatcap.org\>
* New Features
  - notmuch - email search support
  - ifdef   - improvements

2016-03-07  Richard Russon  \<rich@flatcap.org\>
* First NeoMutt release
* List of Features:
  - bug-fixes    - various bug fixes
  - cond-date    - use rules to choose date format
  - fmemopen     - use memory buffers instead of files
  - ifdef        - conditional config options
  - index-color  - theme the email index
  - initials     - expando for author's initials
  - nested-if    - allow deeply nested conditions
  - progress     - show a visual progress bar
  - quasi-delete - mark emails to be hidden
  - sidebar      - overview of mailboxes
  - status-color - theming the status bar
  - tls-sni      - negotiate for a certificate
  - trash        - move 'deleted' emails to a trash bin